次の方法で共有


コンパイラ エラー C2178

'identifier' の宣言に、'specifier' 指定子を使用することはできません

注釈

宣言で mutable 指定子が使用されましたが、このコンテキストでは指定子は許可されていません。 非静的、非 const、および非参照データ メンバーにのみ適用できます。 詳細については、「 変更可能なデータ メンバー」を参照してください。

consteval、割り当て関数、または割り当て解除関数で、指定子が使用されました。

例: mutable

次の例は、 mutable 指定子で C2178 がどのように発生する可能性があり、それを解決する方法を示しています。

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

例: consteval

次の例は、 consteval 指定子で C2178 がどのように発生するかを示しています。 このエラーを解決するには、すべての consteval 指定子を削除します。

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