C/ c++下划线t/type (_t/_type)和类名
C/C++ underscore t/type (_t/_type) and class names?
我理解下划线t (_t
)用于识别类型,正如下划线类型(_type
)一样,通常在typedef
语句中。
-
是否有稍微不同的用法(例如,下划线类型用于模板,但下划线t用于非模板)?
-
为什么不在声明中使用它们?例句:
class person_t { }; enum error_t { };
这与之前关于下划线t的问题不同,因为它还询问了下划线类型之间的区别。而且,很明显,这两个后缀都只是惯例,但为什么它们都在c++标准中使用却并不明显。例如,std:: size_t vs std:: istream:: pos_type。
我不知道你的第一个问题有什么答案,我相信这只是c++标准中存在的两种不同的约定。
对于你的第二个问题,我知道在c++标准中使用_t
或_type
的地方,它们被用作一些底层类型的类型定义。例如,uint32_t
是当前实现的32位无符号整数类型的typedef。它们从不用于实际类型。
我相信POSIX使用_t
作为实际类型,但这是一个不同的约定,与c++标准中的使用是分开的。
相关文章:
- 使用 [] 运算符时"binding reference of type discards qualifiers"
- 在 QVector<std::unique_ptr 上使用 std::find<Type>>
- 在类型和包装器之间reinterpret_cast是否安全<Type>?
- 使用 cmake 的 Linux 终端上的"Conversion to non-scalar type is requested"错误
- 控制到达非空函数clang(-Wreturn-type)的末尾
- std::unordered_map 类型对象声明期间出现"field has incomplete type"错误
- 将系数存储在头文件的数组中("does not name a type"错误)
- 尝试打开 ifstream 时出现"Incomplete type"错误
- 将成员函数作为构造函数参数调用时出错 "Variable is not a type name"
- 在"结构提升::enable_if<提升::is_pod<T>,无效>"中没有名为"type"的类型
- "Missing type specifier - int assumed"无法通过向主函数添加"return 0"来解决
- OpenCV CV_16F type
- C++ "错误:在'类 std::result_of< ... >"中没有名为'type'的类型"
- 将内存分配返回值强制转换为 TYPE 数组
- C++ 一个lambda浅拷贝const Type&如果它被赋予一个命名捕获,如[copy=val](){}?
- reference_wrapper导致"incomplete type is not allowed"
- 继承类时"invalid use of incomplete type ‘class tree_node_t’"
- 由于"error C4430: missing type specifier - int assumed. Note: C++ does not support default-int",我现在无法编
- 如何解决"'mutex' in namespace 'std' does not name a type"?
- 结构中的错误"Incomplete type is not allowed"