ath*_*hos 66 c++ visual-studio
我不小心写了
std::set<string> keys;
Run Code Online (Sandbox Code Playgroud)
如:
std:set<string> keys;
Run Code Online (Sandbox Code Playgroud)
但奇怪的是,Visual Studio 2013仍然可以编译.
为什么会这样?
实际上keys
不仅定义了,而且后来用作一组字符串,例如
if(keys.find(keystr)==keys.end()){
keys.insert(keystr);
toret.push_back(tempv);
}
Run Code Online (Sandbox Code Playgroud)
Bri*_*ian 99
在块范围内,后跟单个冒号的标识符会引入标签.因此,您的陈述相当于:
set<string> keys;
Run Code Online (Sandbox Code Playgroud)
除了它带有标签std
并且可以通过声明跳转到goto std;
.
由于某种原因,set
编译器知道这个名称- 也许你做过using namespace std;
,或者using std::set;
,或类似的东西,或者你可能在set
某处定义了自己的类型.
归档时间: |
|
查看次数: |
3637 次 |
最近记录: |