コンパイラの警告 (レベル 1) C4822

'member': ローカル クラスのメンバー関数は本体がありません

解説

ローカル クラス メンバー関数が宣言されましたが、クラスに定義されていません。 ローカル クラス メンバー関数を使用するには、その関数をクラスに定義する必要があります。 クラス内で宣言する関数をクラス外で定義することはできません。

ローカル クラス メンバー関数をクラス外で定義すると、エラーになります。

Visual Studio 2019 以降では、C4822 は既定でオフの警告です。

次の例では C4822 が生成されます。

// C4822.cpp
// compile with: /W1
int main() {
   struct C {
      void func1(int);   // C4822
      // try the following line instead
      // void func1(int){}
  };
}