Erro do Compilador C2688
“C2::fgrv”: retorna a covariante com as várias ou herança virtual não há suporte para funções de varargs
Os tipos de retorno de covariante não têm suporte no Visual C++ quando uma função contém argumentos variáveis.
Para resolver este erro, o define suas funções de modo que não usam variáveis ou argumentos não faz para retornar valores da mesma forma para todas as funções virtuais.
O seguinte exemplo gera 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&
};