匿名类的Typedef
Typedef of anonymous class
本文关键字:Typedef 更新时间:2023-10-16
以下两个定义在任何方面(语法限制、性能等)有区别吗?
using Foo = struct { int a, b, c; };
struct Foo { int a, b, c; };
(我之所以这么问,是因为当把第一种形式放在很多using
声明中时,在美学上更统一。)
编辑:评论中链接到的帖子并不能完全回答我的问题。我更关心的是上面两个定义在用法方面的差异,而那篇文章主要回答了它们在什么方面的差异。
以下是我能想到的一些差异:
- (显而易见)不能为未命名类声明任何构造函数、析构函数或赋值运算符
- 不能转发声明未命名的类,包括作为另一个类的朋友
- 不能将未命名的类标记为
final
struct Foo
可以在与名为Foo
的函数或变量相同的声明性区域中声明,尽管显然不应该这样做。using Foo = ...
不允许你有这种自由
相关文章:
- C++:TypeDef使用元组
- 有没有一种方法可以通过"typedef"为重新定义的基本类型定义特征和强制转换运算符
- 为什么在使用typedef时类推导指南会失败
- 尝试根据类中 typedef 的存在来专门化模板函数
- 如何重新定义MPI_FLOAT,MPI_DOUBLE以 typedef 的方式
- typedef 枚举和枚举类有什么区别?
- 在类模板中使用 typedef 时出错
- 模板类中的 typedef 语句
- 在 typedef 内部使用 const 关键字和在 typedef 外部使用 const 关键字之间有区别吗?
- 如何将成员函数作为回调参数传递给需要"typedef-ed"自由函数指针的函数?
- C++中"typedef"、"using"、"namespace"和"using namespace"有什么区别?
- 向前声明指向类的 typedef 指针
- 使用typedef'ed返回类型声明友元函数时出现编译器错误
- 如何创建 typedef 结构的前向声明
- 从 Typedef 数据类型中删除常量
- typedef vector size_type in header file
- typedef 别名的析构函数
- 如何使用 typedef 创建多个数组?
- 使用智能指针指向 C 库中的结构,该结构通过 typedef 隐藏实现(即不完整的类型)
- 模板类编译问题与 typedef 变量