2012-03-27 52 views
4

我发现了几个关于C++ 0x中的模板typedefs的问题,这些问题用using关键字解决;然而,与GCC 4.6.1(运行g++ -std=c++0x),我收到以下错误:template typedef C++ 0x

错误:“使用”之前预期不合格-ID

你能帮我找到我要去哪里错了吗?我一直在试图解决这个问题了几个小时......

代码:

#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

只是一个猜测,尝试'模板使用StandardSparseVector = GenericSparseVector ;' – 2012-03-27 02:25:40

+0

嗯...仍然没有运气。看起来我没有足够新的GCC版本。 – user 2012-03-27 02:31:23

回答

7

模板别名在GCC 4.7开始支持。

+0

+1:看http://gcc.gnu.org/projects/cxx0x.html – 2012-03-27 02:27:38

+0

哦,我不敢相信我试了这么久!我确定像其他人一样,我错过了一个分号问...感谢您的帮助。 – user 2012-03-27 02:32:11

+0

感谢您的链接。我使用clang(Apple clang版本4.1)原型化了一些代码,但是当我使用gcc 4.6.1切换到Linux时,它不再编译。 – Joel 2012-11-29 15:29:15