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.
'if constexpr' is een C++17-taalextensie
Opmerkingen
De compiler heeft een if constexpr expressie gevonden in code die is gecompileerd met behulp van de standaard C++14-standaard. Deze expressie wordt opgegeven vanaf de C++17-standaard. Als u C++11- of C++14-compatibiliteit nodig hebt, is deze expressie niet draagbaar.
C4984 wordt standaard als een fout uitgegeven, maar is onderdrukt. Als u deze expressie wilt inschakelen door uw code te compileren als C++17, gebruikt /std:c++17 u de modus of hoger. Als u de if constexpr expressie wilt gebruiken in code die is gecompileerd voor C++14 als Microsoft-extensie, kunt u het waarschuwingsniveau van het foutbericht onderdrukken, uitschakelen of wijzigen. U kunt /wd4984 gebruiken om C4984 of /wN4984 in te schakelen als een waarschuwing op niveau N in plaats van een fout. Of gebruik #pragma warning(suppress:4984) deze voor de regel die de waarschuwing in het bronbestand veroorzaakt.
Deze waarschuwing is beschikbaar vanaf Visual Studio 2017 versie 15.3. Zie Compilerwaarschuwingen per compilerversie voor meer informatie over het uitschakelen van waarschuwingen die zijn geïntroduceerd in een bepaalde compilerversie of hoger.
Example
In dit voorbeeld wordt C4984 gegenereerd en ziet u manieren om dit op te lossen:
// C4984.cpp
// compile with: cl /EHsc C4984.cpp
#include <iostream>
int main()
{
constexpr bool compile_time = true;
// Uncomment the following line or use /std:c++17 to fix
// #pragma warning(suppress:4984)
if constexpr (compile_time)
{
std::cout << "compile_time is true";
}
else
{
std::cout << "compile_time is false";
}
}