当我尝试编译它时,出现以下错误:
error: expected unqualified-id before ‘using’
我知道,这个问题之前被问过好几次了,但我没有找到答案。通常他们说头文件之一缺少分号。但现在情况并非如此。当然,我使用 -std=c++0x
标志
#include <iostream>
#include <string>
#include <vector>
template <typename T>
using stringpair = std::pair<std::string, T>;
int main (int argc, char* argv[]) {
return 0;
}
最佳答案
您的错误is caused事实上template aliases with using
是 C++11 功能,但您的编译器不支持它。您应该在编译时添加相应的标志。最有可能的是:
-std=c++11
(至少对于 g++
和 clang++
)。
否则你的编译器还不支持它们。海湾合作委员会supports them from 4.7 .
关于C++11 typedef 别名编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22919912/