在构造函数中:
CSVBMFBlockModelReader(const wchar_t * const FileNameWithPath, char Delimiter)
{
_FileNameWithPath = FileNameWithPath;
_Delimiter = Delimiter;
}
智能感知然后报告 {npos = 18446744073709551615} 立即窗口报告类似的东西:
{npos = 18446744073709551615} (错误):0 (错误):0
我做错了什么或这只是智能感知?代码按预期工作,_FileNameWithPath.data()返回正确的结果。编译器不发出任何警告。当地的私人声明是:
private:
std::wstring _FileNameWithPath;
char _Delimiter;
我必须说明我在从c#启动后调试代码。我正在使用VS 2015 Enterprise。
请注意我知道0XFFFFFFFFFFFFFFFF是相同的值。我感兴趣的是为什么intellisense会向我展示这个价值。
答案 0 :(得分:1)
您只是看到std::string
/ std::wstring
的一部分。 std::string::npos
是一个sentinel值,用于指示成员函数何时在字符串中找不到有效位置。它被定义为
size_type npos = -1;
并且由于size_type
是无符号整数类型,因此它包装为类型可容纳的最大数字。在这种情况下,您将看到64位无符号整数可以容纳的最大值。