爲「自動」介紹同義詞「自動」
我想使用"Almost always auto"風格的C++,但在一個更具描述性的形式介紹同義詞,反映初始化的語義。
要做到這一點,我想介紹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(瘋狂):是否有任何根本原因不允許在typedefs中使用auto(可執行性,與其他功能的不良交互)? (假設「typedef auto」可用,問題可以簡單地解決)
Q4。由於'auto'不是某個類型的名稱,因此不能使用'typedef'來引入新名稱。與宏不同,'typedef'不能通過文本替換工作。 – molbdnilo