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)
Do you have any suggestions?