Compiler Error C2688


For the latest documentation on Visual Studio 2017 RC, see Visual Studio 2017 RC Documentation.

'C2::fgrv' : covariant returns with multiple or virtual inheritance not supported for varargs functions

Covariant return types are not supported in Visual C++ when a function contains variable arguments.

To resolve this error, either define your functions so that they do not use variable arguments or make the return values the same for all virtual functions.

The following sample generates 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&