Compilerfehler C2534

'Identifier': Der Konstruktor kann keinen Wert zurückgeben.

Ein Konstruktor kann keine return Anweisung mit einem Ausdruck enthalten (auch wenn der Ausdruck Typ voidhat). Dies unterscheidet sich von der regulären Funktion für die Rückgabe von Void-Returning, bei der ein Rückgabeausdruck vom Typ void zulässig ist. Die Verwendung der return Anweisung ohne ausdruck ist jedoch für frühe Rückgaben im Konstruktor zulässig.

Im folgenden Beispiel wird C2534 generiert:

// C2534.cpp
// compile with: /c
void void_func() {}

class A {
public:
   int i;
   A() {
      return i;   // C2534
      return 123;   // C2534
      return (void)0;   // C2534
      return void_func();   // C2534

      return;   // OK
   }
};

Die vorherigen Fehler können behoben werden, indem die gesamte return Anweisung entfernt oder der Rückgabeausdruck weggelassen wird, wenn eine frühe Rückgabe gewünscht wird.