2013-08-30 4 views

ответ

4

С the __uint128_t type is a GCC extension надлежащей вещью, вероятно, является проверка какой-либо известной версии GCC.

See this page для получения информации о макросах, используемых для проверки версий компилятора GCC.

+0

Clang знает об этом, чтобы поддержать код GCC, так что я склоняюсь к решению Спарки – user2913094

3

Я еще не имел дело с __uint128_t, но на основе существующего использования шаблона я ожидал бы следующего.

#include <stdint.h> 

#ifndef UINT128MAX 
    #error "__uint128_t not defined" 
#endif 

Надеется, что это помогает

5

Вы можете попробовать следующее. Я не знаю, насколько это надежно, но это может быть самым простым способом.

#ifdef __SIZEOF_INT128__ 
    // do some fancy stuff here 
#else 
    // do some fallback stuff here 
#endif 
-1

найти свой cc1 в/USR/libexec/ССАГПЗ дерева, а затем допросить его:

 
$ strings /usr/libexec/gcc/x86_64-redhat-linux/4.6.3/cc1 | grep uint128_t 
__uint128_t   (or not) 
Смежные вопросы