Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
"if constexpr" är ett C++17-språktillägg
Anmärkningar
Kompilatorn hittade ett if constexpr uttryck i kod som kompilerats med standardstandarden C++14. Det här uttrycket anges med början i C++17-standarden. Om du behöver C++11- eller C++14-kompatibilitet är det här uttrycket inte portabelt.
C4984 utfärdas som ett fel som standard, men det är undertryckbart. Om du vill aktivera det här uttrycket genom att kompilera koden som C++17 använder du /std:c++17 läge eller senare. Om du vill använda if constexpr uttrycket i kod som kompilerats för C++14 som ett Microsoft-tillägg kan du ignorera, inaktivera eller ändra varningsnivån för felmeddelandet. Du kan använda /wd4984 för att inaktivera C4984 eller /wN4984 för att aktivera den som en nivå N-varning i stället för ett fel. Eller använd #pragma warning(suppress:4984) före raden som orsakar varningen i källfilen.
Den här varningen är tillgänglig från och med Visual Studio 2017 version 15.3. Information om hur du inaktiverar varningar som introduceras i en viss kompilatorversion eller senare finns i Kompilatorvarningar efter kompilatorversion.
Example
Det här exemplet genererar C4984 och visar sätt att åtgärda det:
// 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";
    }
}