介绍" auto"的同义词

时间:2014-03-19 09:31:30

标签: c++ coding-style auto

介绍" auto"

的同义词

我想在C ++中使用"Almost always auto"样式,但是以更具描述性的形式,反映初始化的语义。
要做到这一点,我想介绍汽车的4种不同用途的同义词 从示例中可以理解一般的想法:

#define Val const auto // initialize (immutable) value
#define MVal auto // initialize mutable value
#define Ref const auto& // initialize (immutable) reference 
#define MRef auto&& // initialize mutable reference

Val num = 2 + 2;

MVal count = 0;
++count;

Ref widget = GetWidget();

MRef gadget = GetGadget();
gadget.ChangeState();

出现了几个问题:

Q1 :可以在没有宏的情况下引入同义词吗? Q2 :如果宏是不可避免的,我如何减轻使用它们的危害(假设同义词应该非常短)?
Q3 (主要基于意见):从可读性/风格的角度来看,它是否是一个好主意(与裸AAA风格相比)? Q4 (疯狂):在typedef中是否存在禁止自动的基本原因(可实现性,与其他功能的不良交互)? (假设" typedef auto"可用问题可以解决这个问题)

2 个答案:

答案 0 :(得分:3)

Q1。是的同义词可以这种方式介绍。 Q2。使用ALLUPPERCASE遵循约定。 Q3。但通常这不是一个好主意,我会发现const autoVAL Q4更具可读性。我认为它不受支持,因为typedef是一个已定义的类型,const auto不是。

答案 1 :(得分:3)

Q1。没有。 Q2。通过尽可能少地使用它们。 Q3。非常糟糕。 C ++程序员习惯于给定的语法。 Q4。我不知道你想要什么,或者为什么。