"using"关键字是否可以继承更少的函数?

iam*_*ind 5 c++ inheritance using

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;
};
Run Code Online (Sandbox Code Playgroud)

现在,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) ?
Run Code Online (Sandbox Code Playgroud)

简而言之,我想要一个效果:

using Base::foo(int);
Run Code Online (Sandbox Code Playgroud)

可能吗 ?以上只是一个例子.

Xeo*_*Xeo 6

using将所有重载都纳入范围.只是将它隐藏在派生类中,写入更多但是完成工作:

struct Derived : Base
{
  template<typename T> void foo (T x) {}
  void foo(int x){
    Base::foo(x);
  }
};
Run Code Online (Sandbox Code Playgroud)