[Error] a template declaration cannot appear at block scope
测试 C++11中 Alias Template 时出现出现报错
程序:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
template <typename T>
using Vec = vector<T>;
Vec<int> nums;
nums.push_back(1);
return 0;
}
报错:

查阅相关资料,发现 C++标准有:
Template declarations are only permitted at global, namespace, or class scope.
表示 template 只能在全局,命名空间和类内声明。程序错误的将其声明在了函数内部。
修改为:
#include <iostream>
#include <vector>
using namespace std;
template <typename T>
using Vec = vector<T>;
int main()
{
Vec<int> nums;
nums.push_back(1);
return 0;
}

浙公网安备 33010602011771号