Lig*_*ica 5 c++ string standards
是std::string.npos以往任何时候都有效吗?(与正确相反std::string::npos.)
我在一个正在研究的旧项目中看到了很多,而且它不能用VS2010编译.
它是否属于标准前的日子?
曾几何时,当开发C语言时,::语法尚未发明.代码看起来像:
class X {
public:
void f();
};
void X.f() // a dot! see D&E 2.3
{
}
Run Code Online (Sandbox Code Playgroud)
但是,std那些日子里名字空间不存在.因此,我怀疑std::string.npos是纯粹的微软扩展(或一个错误?).它可能受旧语法的启发,可能不是.
不,std::string.npos从来都不是有效的,不,这不是标准前时代的东西。
我看到其他答案提到 MSVC 已允许使用该表示法。
然而,MSVC 并不是一个非常合规的编译器。例如,它允许您自由地将临时值绑定到对非const. 另一个例子,对于 Windows GUI 子系统应用程序,您必须使用没有详细记录的开关来使其接受标准main. 自从微软聘请 Herb Sutter(以及其他我现在不记得名字的人)来修复他们可怕的编译器以来,已经有了很大的改进。从相对而言,它确实很棒,但从绝对角度来看,编译器仍然有点缺乏。
| 归档时间: |
|
| 查看次数: |
1189 次 |
| 最近记录: |