C++中`using A = struct A{};`语法的作用是什么?
聊聊
using A = struct A{};的实际作用 首先得明确C和C在结构体命名上的区别:在C里,定义struct A{};之后,必须用struct A来指代这个类型,要想直接用A得加typedef struct A A;。但C不一样,struct A{};本身就把A作为类型名直接放到作用域里了,不需要额外的别名声明。
所以你看到的using A = struct A{};里的using部分确实完全没用——它只是给已经存在的类型A又起了一个一模一样的别名,既不会改变类型的任何特性,也不会带来任何额外的作用,纯粹是冗余代码。
这种写法大概率是两种情况造成的:要么是写代码的人带着C语言的习惯,把C里的typedef写法换成了C的using但没意识到在C里根本不需要;要么是代码重构后留下的无用残留,或者自动生成工具输出的多余内容。
内容的提问来源于stack exchange,提问作者Benjamin Buch
相关产品推荐
相关产品推荐

