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

标签 c++ stl

我发现 MFC/ATL CString 类在 Win32 C++ 代码中非常方便;特别是我发现我们可以将 CString 的实例直接传递给 Win32 API 的 LPCWSTR(即 const wchar_t *)参数很方便,感谢CString 定义的隐式转换运算符。

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

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

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

最佳答案

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

关于c++ - 字符串隐式转换运算符到 const char*/wchar_t *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8913796/

相关文章:

c++ - 用 C++ 表示离散傅里叶变换的复数

c++ - Josuttis 书中的 PersonSortCriterion(第一版与第二版)

c++ - 是否有可能在 C++ 中获取 std::array 的子数组?

c++ - 启动 n 次 启动配置 C/C++

c++ - QTextEdit 中的水平线

c++ - std::unordered_map 的递增迭代器

c++ - 将字符串存储到 vector 中

C++ multimap 导致程序退出缓慢?

c++ - 从Boost属性树中提取STL映射

c++ - Singleton 类中的初始化和清理