【发布时间】:2017-03-16 16:56:04
【问题描述】:
是否可以从类T指向成员T::*f的指针推断出类的类型,如下所示。
struct Foo
{
void func(){}
};
template<typename T, void (T::*f)()>
void bar()
{
}
int main()
{
bar<Foo,Foo::func>();
// bar<Foo::func>(); // Desired
}
【问题讨论】:
-
你没有推导出任何东西,你明确地指定了模板参数。您可以使用
template <class T> void bar(void (T::*f)()){/*do something with T*/}之类的方式推断模板参数。
标签: c++ templates pointer-to-member type-deduction template-argument-deduction