Erreur du compilateur C2178

'identifier' ne peut pas être déclaré avec le déterminant 'specifier'

Remarques

Un mutable spécificateur a été utilisé dans une déclaration, mais le spécificateur n’est pas autorisé dans ce contexte. Elle ne peut être appliquée qu’aux membres de données non statiques, non const et non de référence. Pour plus d’informations, consultez Membres de données mutables.

Un consteval spécificateur a été utilisé sur un destructeur, une fonction d’allocation ou une fonction de désallocation.

Exemple : mutable

L’exemple suivant montre comment C2178 peut se produire avec le mutable spécificateur et comment le résoudre :

// C2178_mutable.cpp
// compile with: /c

struct S
{
    mutable const int i;   // C2178, remove mutable or const to resolve
};

mutable int x = 4;   // C2178, remove mutable to resolve

Exemple : consteval

L’exemple suivant montre comment C2178 peut se produire avec le consteval spécificateur. Pour résoudre cette erreur, supprimez tous les consteval spécificateurs :

// C2178_consteval.cpp
// compile with: /c /std:c++20

#include <cstddef>

struct S
{
    consteval ~S() {}   // C2178

    consteval static void* operator new(std::size_t size);   // C2178
    consteval static void operator delete(void* ptr);        // C2178
};