我无法编译任何琐碎的C ++别名声明。 这是我的开发环境:
g++ (Ubuntu 5.4.0-6ubuntu1~16.04.11) 5.4.0 20160609
这是我的代码段(文件tstFrameProd.cpp):
template<typename T = double>
struct mystruct {};
template<typename T = double> using myalias = mystruct<T>;
int main(int argc, char *argv[])
{
return 0;
}
这是我的编译过程:
g++ -g -std=c++11 -W -Wall -I../include -I../../../Toolbox/CShmRingBuf/ -I/opt/matrox_imaging/mil/include -Woverloaded-virtual -ansi -pipe -fno-for-scope -DGNU_GCC -DDEBUG -c -o tstFrameProd.o tstFrameProd.cpp
这是我的编译错误消息:
tstFrameProd.cpp:20:31: error: expected unqualified-id before ‘using’
template<typename T = double> using myalias = mystruct<T>;
任何提示都非常欢迎。
干杯!
西尔万
答案 0 :(得分:1)
您正在使用-ansi
进行编译,这会抵消-std=c++11
的影响。只需将其删除。