// header
int extern has_a_type; // (1) extern declaration
// implementation
decltype(has_a_type) // (2) unnecessarily verbose type inference code
has_a_type; // (3) definition
我了解我可以使用decltype
,因此在定义(3)(并可能进行初始化)时,实际上不必键入(甚至在某种程度上知道)声明的外部变量(1)的类型。 )。但是decltype
迫使我两次(2)写出变量的名称(可能是完全限定且很长)。
如何避免写两次?与auto has_a_type;
相似(当然不起作用)。
答案 0 :(得分:3)
您不能-刻薄地进行,因为没有人说服标准委员会认为可以写作的优点
int extern has_a_type;
auto has_a_type;
尽管具有易处理性。可能会发现
decltype(auto) has_a_type;
为了使类型推导与初始化方法毫无歧义,将是必要的,然后,不幸的是,我们与已经存在的重复的decltype(has_a_type)
相距不远。