是否可以使用功能?

use*_*020 5 c++ using function c++11

例如

template<class T, class U>
void f();

template<class T> using g = f<T, int>;
Run Code Online (Sandbox Code Playgroud)

或任何类似的功能的想法?

rig*_*old 9

不,你不能这样做.您需要创建一个新函数来调用f,转发所有参数和模板参数.

template<class T, class U>
void f();

template<class T>
void g() {
    f<T, int>();
}
Run Code Online (Sandbox Code Playgroud)

C++ 14替代是函数指针类型的变量模板:

template<typename T>
void (*g)() = &f<T, int>;
Run Code Online (Sandbox Code Playgroud)

虽然这种方法忽略了默认参数,但也可能有其他怪癖.我强烈推荐更详细的包装方法.