私は以下のヘッダファイルを宣言しました。 CPPファイルでstatic_assertで名前空間にconstexprを使用するとエラーが発生します
namespace G1
{
inline namespace V1
{
constexpr float getV();
}
}
、私は私が示したように、バージョンを比較するstatic_assert
を使用していますメインで
constexpr float G1::V1::getV()
{
return 0.1f;
}
としてgetV
機能を定義しています。
int main()
{
static_assert(G1::getV() == 1.0f, "Error"); // Please Ignore the way I am comparing the floats
return 0;
}
しかし、私はコードをコンパイルするとき、私はexpression did not evaluate to a constant
を取得しています。
ここで何か間違っていますか?私はVS2015を使用しています。事前
'=='の代わりに '='を比較してください。 – Jarod42
オススメして申し訳ありません、私は比較を変更しました。 – NJMR
両方の機能は同じファイルにありますか?さもなければ、 'main'関数は' getV() 'が返すものをどのように知るべきでしょうか? –