Was std::string.npos
ever valid? (As opposed to the correct std::string::npos
.)
I am seeing it a lot in an old project I'm working on, and it does not compile with VS2010.
Is it something from the pre-standard days?
The C with classes syntax for naming a class member was, in fact, a dot:
class X {
public:
void f();
};
void X.f() // a dot! see D&E 2.3
{
}
However, the ::
syntax had not yet been invented. The std
namespace didn't exist yet either. Thus the std::string.npos
wasn't ever valid as either C with classes or standard C++.
I suspect std::string.npos
is purely Microsoft's extension (or a bug?). It might be inspired by the old syntax, and might be not.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With