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 次 |
| 最近记录: |