0
Я не уверен, почему я получаю сообщение об ошибке в этой строке.remove_pointer + typename is error
Я компиляции с
$CPP -g -std=c++0x -Wall
Где $ CPP является г ++ - 4.7. Я включаю type_traits (C++ 11, а не boost). Это еще не подтверждено в 4.7.2?
typedef typename remove_pointer<typename T>::type &U;
Ошибка
file.h:222:44: error: template argument 1 is invalid
file.h:222:19: error: expected nested-name-specifier
file.h:222:47: error: typedef name may not be a nested-name-specifier
file.h:222:47: error: expected ‘;’ at end of member declaration
file.h:222:53: error: ISO C++ forbids declaration of ‘U’ with no type [-fpermissive]
Не могли бы вы показать код вокруг этого утверждения? Например, откуда «Т»? –
Что вы пытаетесь сделать? Этот синтаксис определенно плохо сформирован в C++ 11. Если 'T' является параметром типа шаблона в области видимости, перед ним следует удалить' typename'. – JohannesD