Я хотел инициализировать переменную-член constexpr с помощью функции-члена constexpr, но она не скомпилировалась. Это было нормально, когда я переместил функцию из класса. Почему это происходит? Есть ли способ использовать функции-члены класса constexpr для инициализации переменных-членов constexpr?Инициализация переменной constexpr с помощью функции constexpr member
Я использую Apple LLVM версии 8.0.0 (clang-800.0.38).
Спасибо за любую помощь.
constexpr static int Add_Ext(int a, int b) { return a + b; }
class Foo
{
public:
constexpr static int Add_InClass(int a, int b) { return a + b; }
// This is OK.
constexpr static int kConstantX = Add_Ext(1, 2);
// This results in a compile error.
constexpr static int kConstantY = Add_InClass(1, 2);
};
лязг сообщение об ошибке:
Constexpr variable 'kConstantY' must be initialized by a constant expression
http://www.open-std.org/jtc1/sc22/wg21/docs/cwg_active.html#1626 – Danh