下面的代碼編譯我的版本VC9的():結構參考操作符對類名VC9
wstring test2;
if (test2.find(L'c') == wstring.npos)
{
}
但本身
wstring.npos;
沒有。 (wstring::npos;
工作正常)在我看來,這是100%錯誤。起初我還以爲可能正在構建一個wstring,並且npos成員正在被訪問ala wstring().npos
,但是很快嘗試着進入其他地方。用我自己的一類結果模擬這種情況
警告C4832:token'。'在UDT'Foo'後是非法的
但仍然編譯。
只是爲了我的理智 - 這種語法不應該工作,對吧?並且鑑於它確實有效,爲什麼表達式wstring.npos;
會失敗?
你確定它是'wstring.npos'編譯而不是'test2.npos'嗎? – chris
我相信,只是非常驚訝! – Rollie
然後它是非標準的行爲,說實話,這是預期的MSVC。 – chris