В Derived
есть template foo(T)
. Есть 2 перегрузки foo()
в Base
.
struct Base
{
void foo (int x) {}
void foo (double x) {}
};
struct Derived : Base
{
template<typename T> void foo (T x) {}
using Base::foo;
};
Теперь, когда foo()
вызывается с Derived
объектом; Я хочу использовать только Base::foo(int)
, если применимо, в противном случае он должен вызывать Derived::foo(T)
.
Derived obj;
obj.foo(4); // calls B::foo(int)
obj.foo(4.5); // calls B::foo(double) <-- can we call Derived::foo(T) ?
Короче говоря, я хочу эффект:
using Base::foo(int);
Возможно ли это? Выше приведен только пример.