Почему статические переменные члены класса можно инициализировать внутри класса если они const и интегрального типа или перечисления?

Почему статические переменные члены класса можно инициализировать внутри класса если они const и интегрального типа или перечисления?

class Any {
private:
    static const double x = 1.0; //нельзя
};

class Any {
private:
    static const int a = 1; //можно
};

Почему double например нельзя?

в с++11 добавили возможность инициализировать статические поля класса любого типа следующим образом:

class Any {
private:
    static constexpr double x = 1.0;
};

Как это работает? Не понимаю логику


Ответы (0 шт):