使用模板时,是否可以确定左值的类型?

R.D*_*.D. 0 c++ templates type-deduction

把它写成文字很难,所以这里是一个例子:

int (*foo)(int) = load_sym<decltype(foo)>("foo");

template <typename T>
T load_sym(char *sym) {
    /* some other stuff */
    return (T)dlsym(sym);
}
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我想省略该decltype(foo)部分以使其简洁.问题是,我可以确定T而无需将其明确指定为模板参数吗?

Gut觉得这可能是不可能的,但我很想知道人们是否已经找到了解决方法.

Bri*_*ian 5

这个怎么样?

auto foo = load_sym<int (*)(int)>("foo");
Run Code Online (Sandbox Code Playgroud)