我找到了结构
using A = struct A{};
在 C++ 代码库中。这有什么用?我的猜测是
using A
在这种情况下根本没有效果。
至于为什么它是有效的 C++,我想这是由于与
typedef
的奇偶校验。许多 C 代码库都有这样的东西:
typedef struct A {
// ...
} A;
这是有效的 C,为了兼容性,C++ 标准有措辞来接受这个结构(没有效果)。由于带有
using
的类型别名声明与等效的 typedef
完全相同,因此您所看到的有效性可能是一个紧急属性。
至于你为什么看到它,它可能只是一个 C-ism(它经常进入 C++ 代码)被翻译成“现代 C++”。这当然是愚蠢的,如果代码只是 C++ 的话,一个简单的结构声明就可以了1.