したがって、三項演算子を使用した const/non-const に関する以前の質問に対してtest
、C++11 標準に関して次の関数は問題ありません。
template<bool UseConst> class MyClass
{
public:
constexpr bool test()
{
return (UseConst) ? (_constvar) : (_var);
}
protected:
int _var;
static const int _constvar;
}
全体の問題は、それ_constvar
が const であり、const で_var
ないことです。同じ関数を介してテンプレート パラメーターに応じてこれら 2 つのデータにアクセスする必要があり、const を使用するときにコンパイル時の関数が必要です。
test()
機能は要件を満たしていますか?