c++ - C++ 标准库中名为 "base"和 "basic"的类的约定是什么?

标签 c++ naming-conventions c++-standard-library

C++ 标准库中的几个类的名称中都有“base”或“basic”。例如 std::ios_basestd::basic_ios。我对约定有大致的了解,但我希望看到它们的详细说明,但我找不到相关资源。

对于名称中带有“base”或“basic”的类,关于类层次结构、模板和类型定义的约定是什么?

最佳答案

std::basic_foo是以某种方式处理文本的类的类模板,可以专门用于各种字符类型。

std::foostd::basic_foo<char> 的类型定义.

std::wfoostd::basic_foo<wchar_t> 的类型定义.

示例:std::basic_ios , std::basic_string , std::basic_regex .

另一方面,std::ios_base是一个特例。没有约定说基类应该以这种方式命名,而且我不知道任何其他示例。我想他们就是想不出更好的名字。

关于c++ - C++ 标准库中名为 "base"和 "basic"的类的约定是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25375398/

相关文章:

c++ - 日志(PCTSTR 格式,...)和日志(PCTSTR 文本): error C2668 ambiguous call to overloaded function

naming-conventions - 命名包含驼峰命名法品牌名称的驼峰命名函数名称

c++ - 友元函数无法访问私有(private)数据成员

java - 是否应该为 Java 中的线程命名以便于调试?

language-agnostic - 非虚拟和抽象方法的命名约定

visual-studio-2012 - 如何修复 Visual Studio 2012 错误 LNK2019:无法解析的外部符号“__declspec(dllimport) public: class std::basic_string?

c++ - C++ 数学特殊函数中的 std::complex<>:技术规范或提案

c++ - 从标准库中重新定义一个函数是否违反了一个定义规则?

c++ - 如果 bool 为 false,则停止程序在 C++ 中运行

c++ - Ncurses 用户指针