C ++ 11 typedef别名编译错误

时间:2014-04-07 18:08:53

标签: c++ c++11 alias typedef

当我尝试编译时,我收到以下错误:

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;
}

1 个答案:

答案 0 :(得分:3)

您的错误is caused是因为template aliases with using是C ++ 11功能而您的编译器不支持它。您应该在编译时添加相应的标志。最有可能的是:

-std=c++11

(至少g++clang++)。

Live demo

否则你的编译器还不支持它们。 GCC supports them from 4.7