Совместимость с IPv6 не зависит от поддержки компилятора, а зависит от ОС-заголовочных файлов.Не существует стандартного способа проверки этого как такового.(Как уже было отмечено, вы, вероятно, захотите, чтобы CMake / AutoConf / Какая-то другая система сборки обнаружила это).
Вы также можете достичь того, что вам кажется более прямым, в Linux, например, вы, вероятно, можетеdo:
#include <sys/socket.h>
#ifdef AF_INET6
....
#endif
Я не уверен, что хотел бы сделать ставку на то, насколько это портативно / надежно, но я бы предположил, что это сработает с любой реализацией sys/socket.h
, и быстрый просмотрwinsock2.h
, похоже, тоже имеет #define
из AF_INET6
.