Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
constexpr function 'function' nemůže vést k konstantnímu výrazu.
Poznámky
Funkci nelze vyhodnotit jako constexpr v době kompilace.
constexprFunkce může volat pouze jiné constexpr funkce.
Příklad
Visual Studio 2017 správně vyvolá chybu, když levý operand operace podmíněného vyhodnocení není v constexpr kontextu platný. Následující kód se zkompiluje v sadě Visual Studio 2015, ale ne v sadě Visual Studio 2017.
// C3615.cpp
// Compile with: /c
template<int N>
struct myarray
{
int size() const { return N; }
};
constexpr bool f(const myarray<1> &arr)
{
return arr.size() == 10 || arr.size() == 11; // C3615 starting in Visual Studio 2017
}
Chcete-li tento problém vyřešit, deklarujte array::size() funkci jako constexpr nebo odeberte constexpr kvalifikátor z f.