代码改变世界

error C2143: syntax error : missing ';' before '<' 错误的解决

2017-08-04 15:47  雄风狂飙  阅读(1904)  评论(0)    收藏  举报

之前在移植X86代码的时候遇到一个类似错误,半天没找到原因,后来仔细一想是个小问题导致。

后来自己在vc上面再复现一下,记录一下问题,下次别再犯错。

 

原来代码:

#include <iostream>
#include <vector>

int main()
{
typedef vector<int> vi;

return 0;
}

乍一看,确实没有什么错误,vector也包含了进来。但是忘记了using namespace std;

为什么忘记了就有问题呢。其实我们一直所说的std标准库就是一个命名空间,只不过它可能跨越了多个文件,比如<iostream>和<vector>可能其实都是std这个命名空间的。C++是允许命名空间跨越多个文件的,于是稍作修改就ok了。

 

#include <iostream>
#include <vector>

using namespace std;

int main()
{
typedef vector<int> vi;

return 0;
}