我想尝试新的 Hinnant 的 short_alloc 分配器,据我所知,它取代了旧的stack_alloc分配器。但是,我无法编译矢量示例。g++
说:
~# g++ -std=c++11 stack-allocator-test.cpp -o stack-allocator-test
In file included from stack-allocator-test.cpp:6:0:
short_alloc.h:11:13: error: ‘alignment’ is not a type
short_alloc.h:11:22: error: ISO C++ forbids declaration of ‘alignas’ with no type [-fpermissive]
short_alloc.h:11:22: error: expected ‘;’ at end of member declaration
据我所知,g++
抱怨line 10
and 11
:
static const std::size_t alignment = 16;
alignas(alignment) char buf_[N];
似乎编译器不喜欢alignas的“表达式版本”,但它只需要“type-id 版本”。
我g++ 4.7.2
在 Ubuntu 12.10 下使用。
~# g++ --version
g++ (Ubuntu/Linaro 4.7.2-2ubuntu1) 4.7.2
可能我错过了一些明显的东西,但我无法弄清楚。任何帮助,将不胜感激。(请不要告诉我我必须升级到更新g++
,我懒得这样做:)