Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
a constexpr függvény nem eredményezhet konstans kifejezést
Megjegyzések
A függvény fordítási időben nem értékelhető ki constexpr. A constexpr függvény csak más constexpr függvényeket hívhat meg.
Example
A Visual Studio 2017 helyesen jelez hibát, ha egy feltételes kiértékelési művelet bal oldali operandusa érvénytelen egy constexpr környezetben. Az alábbi kód a Visual Studio 2015-ben lefordul, de a Visual Studio 2017-ben nem.
// 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
}
A probléma megoldásához vagy deklarálja a array::size() függvényt, mint constexpr, vagy távolítsa el a constexpr minősítőt f-ből.