Sì che funzionano nel main()
Se ti serve proprio una variabile bool, puoi fare così
bool test = isinf(1.0/0.0);
std::cout << test << std::endl;
Se usi un int al posto del bool va bene lo stesso: i bool non esistono in linguaggio macchina. Nel caso, la variabile intera è nello stato "true" quando è diversa da zero, mentre è nello stato "false" quando è uguale a zero.
Se hai dei dubbi sulle funzioni o sulle macro che utilizzi, comunque fa fede lo standard
https://en.wikipedia.org/wiki/Single-precision_floating-point_format
https://en.wikipedia.org/wiki/Double-precision_floating-point_format
Per un double (floating point a 64 bit), in rappresentazione esadecimale +infinito=0x7FF0000000000000, mentre -infinito=0xFFF0000000000000