Compilerfout C2178

'id' kan niet worden gedeclareerd met de aanduiding 'specifier'

Opmerkingen

Er is een specifier mutable gebruikt in een verklaring, maar de specifier is in deze context niet toegestaan. Het kan alleen worden toegepast op niet-statische, niet-constante en niet-referentie-gegevensleden. Zie Mutable Data Members voor meer informatie.

Er is een consteval specificatie gebruikt op een destructor, allocatiefunctie of deallocatiefunctie.

Voorbeeld: mutable

In het volgende voorbeeld ziet u hoe C2178 kan optreden met de mutable aanduiding en hoe u dit kunt oplossen:

// 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

Voorbeeld: consteval

In het volgende voorbeeld ziet u hoe C2178 kan optreden met de consteval aanduiding. Verwijder alle consteval aanduidingen om deze fout op te lossen:

// 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
};