我真的找不到它的任何用处。我的第一个想法是,我可以使用它来实现'按合同设计'而不使用像这样的宏:
struct S
{
S(constexpr int i) : S(i) { static_assert( i < 9, "i must be < 9" ); }
S(int i); //external defintion
char *pSomeMemory;
};
但这段代码不能编译通过。我原以为我们可以使用它来引用同一变量,而无需在避免使用get / set函数使用户实例中某个成员只读时创建额外的内存:
class S
{
private:
int _i;
public:
const int & constexpr i = _i;
};
但是以上所有内容均未编译。有人能否给我一些见解,为什么要引入这个关键字?