字符串隐式转换运算符到const char*/wchar_t*

5 c++ stl

我发现CString在Win32 C++代码中MFC/ATL 类非常方便; 特别是我发现我们可以直接传递CStringWin32 API LPCWSTR(即const wchar_t *)参数的实例这一事实,这要归功于定义的隐式转换运算符CString.

相反,在使用时std::wstring,需要显式调用.c_str()方法.

那么,为什么STL字符串类(both std::stringstd::wstring)需要显式方法调用(c_str())而不是定义隐式const char*/ const wchar_t *转换运算符?

隐式转换运算符是否隐藏了严重的陷阱?

Mar*_*som 2

无论理论上的问题是什么,我只会指出,在使用 CString 的多年中,我从未被这个功能所困扰。便利远远大于危险。