我想在指向成员函数的情况下使用特殊模板.有没有办法检测到这个?现在我声明struct isPtrToMemberFunc,然后为每个类添加一个额外的模板(类TType = void)(现在只是1)并专门化额外的模板以查看它是否为isPtrToMemberFunc.有没有办法自动检测到这个?如果不是我当前的方法是最好的解决方案?
有一种方法,但它包括为这些成员函数重复每个和每个参数以及const/volatile修饰符的专门化.更简单的方法是使用boost.functiontypes
哪种方法:
templatevoid doit(T t) { if(boost::function_types::is_member_function_pointer ::value) { std::cout << "it is"; // ... } else { std::cout << "it is not"; // ... } }
从这里抓住它.