2012-03-27 3 views
4

Я нашел несколько вопросов о шаблоне typedefs в C++ 0x, которые разрешены с помощью ключевого слова using; Однако, с GCC 4.6.1 (работает g++ -std=c++0x), я получаю следующее сообщение об ошибке:template typedef C++ 0x

ошибка: ожидается безоговорочную идентификатор перед «с помощью»

Можете ли вы помочь мне найти, где я неправильно? Я пытался решить эту проблему в течение нескольких часов ...

Код:

#include <map> 

template<typename INDEX, typename VALUE> 
class GenericSparseVector 
{ 
protected: 
    std::map<INDEX, VALUE> indices_to_values; 
}; 

template <typename VALUE> 
using StandardSparseVector = GenericSparseVector<int, VALUE>; 
+0

Просто догадайтесь, попробуйте 'template с помощью StandardSparseVector = GenericSparseVector ;' –

+0

Хм ... еще не повезло. Похоже, у меня нет новой версии GCC. – user

ответ

7

шаблон псевдонимы поддерживаются начиная с GCC 4.7.

+0

+1: См. Http://gcc.gnu.org/projects/cxx0x.html –

+0

О, я не могу поверить, что я так долго пробовал! Я был уверен, что у меня пропала точка с запятой, как и все остальные ... Спасибо за помощь. – user

+0

Спасибо за ссылку. Я прототипировал некоторый код, используя clang (Apple clang version 4.1), но когда я переключился на Linux с помощью gcc 4.6.1, он больше не компилировался. – Joel