This question already has answers here:
Why is (18446744073709551615 == -1) true?
(4个答案)
2年前关闭。
在构造函数中:
然后,Intellisense报告
{npos = 18446744073709551615}
并且立即窗口报告类似的内容:
{npos = 18446744073709551615}
(错误):0
(错误):0
我是在做错什么,还是仅仅是智能感知?该代码按预期工作,并且_FileNameWithPath.data()返回正确的结果。编译器不会发出任何警告。本地私人声明为:
我必须声明从c#启动代码后,我正在调试代码。我正在使用VS 2015 Enterprise。
请注意,我知道0XFFFFFFFFFFFFFFFFFF是相同的值。我的兴趣在于为何intellisense向我显示此价值。
并且由于
(4个答案)
2年前关闭。
在构造函数中:
CSVBMFBlockModelReader(const wchar_t * const FileNameWithPath, char Delimiter)
{
_FileNameWithPath = FileNameWithPath;
_Delimiter = Delimiter;
}
然后,Intellisense报告
{npos = 18446744073709551615}
并且立即窗口报告类似的内容:
{npos = 18446744073709551615}
(错误):0
(错误):0
我是在做错什么,还是仅仅是智能感知?该代码按预期工作,并且_FileNameWithPath.data()返回正确的结果。编译器不会发出任何警告。本地私人声明为:
private:
std::wstring _FileNameWithPath;
char _Delimiter;
我必须声明从c#启动代码后,我正在调试代码。我正在使用VS 2015 Enterprise。
请注意,我知道0XFFFFFFFFFFFFFFFFFF是相同的值。我的兴趣在于为何intellisense向我显示此价值。
最佳答案
您只是看到std::string
/ std::wstring
的一部分。 std::string::npos
是一个标记值,用于指示成员函数何时在字符串中找不到有效位置。定义为
size_type npos = -1;
并且由于
size_type
是无符号整数类型,因此它环绕起来是该类型可以容纳的最大数字。在这种情况下,您将看到一个64位无符号整数可以容纳的最大值。09-06 19:53