Błąd kompilatora C2534

"identifier": konstruktor nie może zwrócić wartości

Konstruktor nie może zawierać instrukcji z wyrażeniem return (nawet jeśli wyrażenie ma typ void). Różni się to od regularnej funkcji zwracanej przez pustkę, w której dozwolone jest wyrażenie zwracane typu void . Jednak użycie instrukcji return bez wyrażenia jest dozwolone dla wczesnych zwrotów w konstruktorze.

Poniższy przykład generuje C2534:

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

Powyższe błędy mogą zostać naprawione przez usunięcie całej return instrukcji lub pominięcie wyrażenia zwracanego, jeśli jest wymagany wczesny zwrot.