Sdílet prostřednictvím


Chyba kompilátoru C2688

'C2::fgrv' : kovariantní vrácení s více nebo virtuální dědičností nepodporuje funkce varargs

Kovariantní návratové typy nejsou v jazyce Visual C++ podporovány, pokud funkce obsahuje argumenty proměnných.

Pokud chcete tuto chybu vyřešit, definujte funkce tak, aby nepoužívali argumenty proměnných, nebo aby návratové hodnoty byly stejné pro všechny virtuální funkce.

Následující ukázka vygeneruje C2688:

// C2688.cpp
struct G1 {};
struct G2 {};
struct G3 : G1, G2 {};
struct G4 {};
struct G5 {};
struct G6 : G4, G5 {};
struct G7 : G3, G6 {};

struct C1 {
   virtual G4& fgrv(int,...);
};

struct C2 : C1 {
   virtual G7& fgrv(int,...);   // C2688, does not return G4&
};