C++ 标准库中的几个类的名称中都有“base”或“basic”。例如 std::ios_base
和 std::basic_ios
。我对约定有大致的了解,但我希望看到它们的详细说明,但我找不到相关资源。
对于名称中带有“base”或“basic”的类,关于类层次结构、模板和类型定义的约定是什么?
最佳答案
std::basic_foo
是以某种方式处理文本的类的类模板,可以专门用于各种字符类型。
std::foo
是 std::basic_foo<char>
的类型定义.
std::wfoo
是 std::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/