在cpp定义中,wstring :: npos是否等于-1?

时间:2015-05-08 08:17:15

标签: c++

int FDString::
ReverseFind(const FDString& searchString, int rend) const
 { 
return static_cast(mString.rfind(searchString.mString), rend == nPos ? String::npos : rend);
 }

我在这里定义了

ifdef UNICODE
#define String std::wstring
#else
#define String std::string
#endif

我确定std :: string :: npos在cpp引用中定义为-1但在wstring中我不确定它是否明确定义为-1?所以我可以假设std :: wstring :: npos也是-1?

2 个答案:

答案 0 :(得分:2)

是的,你可以。

wstringtypedefbasic_string

typedef basic_string<wchar_t> wstring;

另一方面,string也是typedefbasic_string

typedef basic_string<char> string;
{p> nopsbasic_string中定义,因此两种类型都应该相同。

,定义为,

static const size_type npos = -1;

参考

答案 1 :(得分:1)

npos std::basic_string中定义,std::stringstd::wstring的基类。
所以两个班级都是一样的。