On 09/18/2011 08:58 PM, Paolo Carlini wrote:
On 09/18/2011 08:36 PM, Joseph S. Myers wrote:
__int128_t and __uint128_t are legacy typedefs for __int128 and
unsigned __int128.
I didn't realize this. Thus I guess, for 50441 and also for 40856
(which I'm about to do) better doing everything in terms of __int128
and unsigned __int128.
I'm currently blocked by the following issue. If I try to compile, with
-std=gnu++98 (the default for C++) and -pedantic-errors:
template<typename T>
struct limits;
template<>
struct limits<__int128> { };
template<>
struct limits<unsigned __int128> { };
I get:
a.cc:8:26: error: ISO C++ does not support ‘__int128’ for ‘type name’
[-pedantic]
a.cc:8:10: error: redefinition of ‘struct limits<__int128>’
a.cc:5:10: error: previous definition of ‘struct limits<__int128>’
this of course does *not* happen with __int128_t and __uint128_t.
Apparently I can suppress such -pedantic and -pedantic-errors issues in
pragma system_header headers, but then resurface when using PCHs. Please
let me know if the above is supposed to work in a gnu++98 (or gnu++0x)
system header also together with any -pedantic options, or I should
really use __int128_t and __uint128_t for the time being, I would be
certainly ok with the latter.
Thanks!
Paolo.