Средства форматирования C99 printf против пользовательских C++11 -определяемых -литералов

Этот код:

#define __STDC_FORMAT_MACROS
#include 
#include 
#include 
#include 
int main(int argc,char **argv)
{
   uint64_t val=1234567890;
   printf("%"PRId64"\n",val);
   exit(0);
}

Работает для C99 , C++03 , C++11 в соответствии с GCC 4.5 , но не работает в C++11 в соответствии с GCC 4.7.1 . Добавление пробела перед PRId64позволяет GCC 4.7.1 скомпилировать его.

Который правильный?

23
задан Xeo 8 August 2012 в 19:24
поделиться