typedef decltype(true ? (long&&)0 : (long&&)0) T;
Каким должно быть Т?
Согласно gcc (4.7), это long
. Судя по лязгу (багажник), это long&&
. Это различие приводит к тому, что clang не может скомпилировать код, использующий libstdc++ gcc 4.7. Кто прав?
ОБНОВЛЕНИЕ: как указывает ildjarn, Clang прав, и, как указывает Richard Smith, ошибка libstdc++ связана с ошибкой в стандарте . Вот соответствующая ошибка GCC и соответствующий отчет о дефектах.
&&
? - person Nicol Bolas   schedule 28.04.2012