コンパイラ エラー C2688
'C2::fgrv': covariant は varargs 関数でサポートされていない複数の、または仮想継承を返します。
関数に変数引数が含まれている場合、共変の戻り値の型は Visual C++ ではサポートされません。
このエラーを解決するには、変数引数を使用しないように関数を定義するか、すべての仮想関数で戻り値を同じにします。
次の例では、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&
};