Linux 2.6.32
Intel compiler: icpc version 13.0.1 (gcc version 4.4.6 compatibility)
#include <iostream> #include <sys/types.h> int main() { std::cerr << sizeof (__uint128_t) << std::endl; return 0; } Output: 16
So, type __uint128_t exists. However, working with __uint128_t produces compilation and run errors.
Programs:
------------------ File int01.cpp #include <cstdint> int main() { uint128_t val128 = 0; return 0; }
------------------ File int02.cpp #include <cstdint> int main() { __uint128_t val128 = 0; return 0; }
------------------ File int03.cpp #include <iostream> #include <cstdint> int main() { __uint128_t val128 = 0; std::cerr << val128 << std::endl; return 0; }
Compilations:
> icpc int01.cpp /usr/include/c++/4.4.6/c++0x_warning.h(31): catastrophic error: #error directive: This file requires compiler and library support for the upcoming ISO C++ standard, C++0x. This support is currently experimental, and must be enabled with the -std=c++0x or -std=gnu++0x compiler options. #error This file requires compiler and library support for the upcoming \ ^
compilation aborted for int01.cpp (code 4)
> icpc int01.cpp -std=c++0x int01.cpp(4): error: identifier "uint128_t" is undefined uint128_t val128 = 0; ^
compilation aborted for int01.cpp (code 2)
> icpc int02.cpp -std=c++0x // No errors
> icpc int03.cpp -std=c++0x
int03.cpp(6): error: more than one operator "<<" matches these operands: function "std::basic_ostream<_CharT, _Traits>::operator<<(long) [with _CharT=char, _Traits=std::char_traits<char>]" function "std::basic_ostream<_CharT, _Traits>::operator<<(unsigned long) [with _CharT=char, _Traits=std::char_traits<char>]" function "std::basic_ostream<_CharT, _Traits>::operator<<(bool) [with _CharT=char, _Traits=std::char_traits<char>]" function "std::basic_ostream<_CharT, _Traits>::operator<<(short) [with _CharT=char, _Traits=std::char_traits<char>]" function "std::basic_ostream<_CharT, _Traits>::operator<<(unsigned short) [with _CharT=char, _Traits=std::char_traits<char>]" function "std::basic_ostream<_CharT, _Traits>::operator<<(int) [with _CharT=char, _Traits=std::char_traits<char>]" function "std::basic_ostream<_CharT, _Traits>::operator<<(unsigned int) [with _CharT=char, _Traits=std::char_traits<char>]" function "std::basic_ostream<_CharT, _Traits>::operator<<(long long) [with _CharT=char, _Traits=std::char_traits<char>]" function "std::basic_ostream<_CharT, _Traits>::operator<<(unsigned long long) [with _CharT=char, _Traits=std::char_traits<char>]" function "std::basic_ostream<_CharT, _Traits>::operator<<(double) [with _CharT=char, _Traits=std::char_traits<char>]" function "std::basic_ostream<_CharT, _Traits>::operator<<(float) [with _CharT=char, _Traits=std::char_traits<char>]" function "std::basic_ostream<_CharT, _Traits>::operator<<(long double) [with _CharT=char, _Traits=std::char_traits<char>]" operand types are: std::ostream << __uint128_t std::cerr << val128 << std::endl; ^
compilation aborted for int03.cpp (code 2)



