C++11 からデータメンバ宣言場所で非静的メンバの初期化が出来るようになりましたが,この初期化は初期化子リストによる初期化が省略されたときのみ行われます.
#include <iostream> struct X{ int const i = 42; X(){} // 初期化子リスト無し X(char) : i(-42){} // 初期化子リスト有り }; int main() { X x1{}; // 初期化子リスト無し std::cout << x1.i << '\n'; // 42 X x2{'a'}; // 初期化子リスト有り std::cout << x2.i << '\n'; // -42 return 0; }