我正在对一个大型的遗留 MFC 代码库进行现代化改造,其中包含一个名副其实的字符串类型混合体:
- 字符串
- 标准::字符串
- 标准::wstring
- 字符*
- wchar_t*
- _bstr_t
我想在内部对单个字符串类型进行标准化,并且仅在第三方 API(即 COM 或 MFC 函数)绝对需要时才转换为其他类型。我和我的同事正在辩论的问题;我们应该标准化哪种字符串类型?
我更喜欢 C++ 标准字符串之一:std::string 或 std::wstring。我个人倾向于std::string,因为我们不需要宽字符——它是一个内部代码库,没有面向客户的UI(即不需要多语言支持)。“普通”字符串允许我们使用简单、朴素的字符串文字(“Hello world” vs L“Hello world”或_T(“Hello world”))。
编程界有官方立场吗?当面对多种字符串类型时,通常使用什么作为标准的“内部”存储格式?