沒有與宏觀常量的這樣一個很長的列表中的C頭:查找模板類的constexpr功能正確的宏觀恆
#define MODE_1_A 101
#define MODE_1_AB 21
#define MODE_1_ABC 9901
#define MODE_2_A 1031
#define MODE_2_AB 347
#define MODE_2_ABC 692
...
雖然宏名都遵循一個規律,可惜沒有可靠計算常數的方法。
我想寫一個模板類,它可以返回正確的模式整數作爲constexpr
。
template<unsigned C, unsigned M>
struct MyClass
{
constexpr int mode() {
// C = 1 & M == 1 => return MODE_1_A
// C = 1 & M == 2 => return MODE_1_AB
// and so on
}
... // a lot of additional code
};
什麼是寫constexpr
功能mode
的最佳方式?
使用條件運算符。 –
@ R.MartinhoFernandes:對於很多常量,這可能會變得雜亂...... – Danvil
如果你沒有注意到,這已經是凌亂了。 –