constexprとメンバ関数の呼び分け問題 小ネタ - constexpr の文脈でconstメンバ関数と非constメンバ関数を呼び分ける - ボレロ村上 - ENiyGmaA Code このエントリで指摘されているように、constexprとメンバ関数の呼び分け問題があります。一時オブジェクトはconst修飾されていないために、constexprであるconst修飾メンバ関数が呼ばれないのが原因です。 template<typename T> struct X { T t; T& get() { /* 非const版 */ return t; } constexpr T const& get() const { /* const版 */ return t; } }; template<typename T> constexpr auto get(T&& t) -> decltype(