basic_string類具有聲明爲靜態常量的npos。 爲什麼它聲明爲靜態常量,因爲C++ 11,爲什麼不能簡單:C++中的std :: basic_string :: npos聲明11
class basic_string{
................................
enum: size_type { npos = static_cast<size_type>(-1) };
.........................>
};
???
這是好的,靜態const或枚舉?
爲什麼**你認爲枚舉更好? –
因爲,static const變量也需要定義,不僅僅是聲明。 請參閱basic_string源文件,必須使用以下代碼: 模板< ..... > const basic_string < ... > :: size_type basic_string <.....> :: npos; – Khurshid
如果它是'enum',則不能使用'npos'的地址。這可能會破壞一些舊地址的代碼;這可能是爲什麼它沒有定義爲'enum'。 – Nawaz