Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
constexpr functie 'functie' kan niet resulteren in een constante uitdrukking
Opmerkingen
De functie kan niet worden geƫvalueerd als constexpr tijdens de compilatietijd. Om te zijn constexpr, kan een functie alleen andere constexpr functies aanroepen.
Example
Visual Studio 2017 genereert een fout wanneer de linkeroperand van een voorwaardelijk evaluerende bewerking niet geldig is in een constexpr context. De volgende code wordt gecompileerd in Visual Studio 2015, maar niet in 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
}
Als u dit probleem wilt oplossen, declareert u de array::size() functie als constexpr of verwijdert u de constexpr kwalificatie van f.