typedef - 基元类型到基元类型
typedef - Primitive type to primitive type
将一个基元类型的 typedef C++到另一个基元类型是否有效?
typedef int long;
在VS 2012上,发出警告,但编译正常。
警告 C4091:"typedef":未声明任何变量时,在"long"左侧被忽略
但是在 gcc-4.3.4 上,它失败了。
错误:声明不声明任何内容。
哪个编译器符合标准?
PS:我不会在生产代码中写这样的东西。只是想出了这个想法和检查。
它是否有效C++
No. C++11, § 7.1.3.6:
在给定的作用域中,不应使用 typedef 说明符来重新定义在该作用域中声明的任何类型的名称以引用不同的类型。
他们都在说同样的事情,但其中一个报告为错误。请注意,VS 警告显示"typedef 被忽略"。问题是int long
和long int
是同义词,所以你基本上是在创建一个未命名的typedef
到一个long
。
两者都按照标准的要求去做。该 typedef 无效,两个编译器都会发出诊断程序。
相关文章:
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 使用typedef'ed返回类型声明友元函数时出现编译器错误
- 从 Typedef 数据类型中删除常量
- 使用智能指针指向 C 库中的结构,该结构通过 typedef 隐藏实现(即不完整的类型)
- 是否可以分别专注于 typedef 及其基础类型?
- 如何对绑定的成员方法进行typedef,然后将该类型用作模板参数
- 显式调用 typedef'd 类类型的析构函数的正式正确方法
- "typedef"类型名称是否可以像"struct"定义那样声明指向结构的指针?
- 具有未声明/未定义类型的 typedef 结构
- 使用 pybind11 绑定 typedef 类型的正确语法是什么?
- 通过 typedef 模板<类型名 T、T> 强制模板实例化 - 为什么有效?
- C和C 类型(TypeDEF)之间的差异
- 如何通过从变量中获取类型来访问内部 typedef
- C 通过Typedef定义新类型
- 使用#Define和Typedef与数据类型A一起使用
- typedef 类型不匹配,将其传递到函数中
- 如何使用函数签名的 typedef 作为 std::function 的类型参数
- 从 csv 文件中获取不同类型的数据,并将其放入 C++ 中的 typedef 结构中
- typedef 中的自定义类型为 Qt MetaType
- Swig 简单类型 typedef 参数