Я действительно не могу его использовать. Моя первая идея заключалась в том, что я мог использовать его для реализации "Design by Contract" без использования таких макросов, как это:
struct S
{
S(constexpr int i) : S(i) { static_assert( i < 9, "i must be < 9" ); }
S(int i); //external defintion
char *pSomeMemory;
};
Но это не скомпилировалось. Я думал, что мы также можем использовать его для ссылки на одну и ту же переменную без необходимости создания дополнительной памяти, когда мы хотим избежать get/seters, чтобы сделать экземпляры для одного члена из пользователей доступными только для чтения:
class S
{
private:
int _i;
public:
const int & constexpr i = _i;
};
Но ни одно из вышеперечисленных фактически не скомпилировано. Может ли кто-нибудь дать мне некоторое представление о том, почему это ключевое слово вводилось?