【问题标题】:is it possible to detect pointer-to-member-function?是否可以检测指向成员函数的指针?
【发布时间】:2009-01-04 13:59:27
【问题描述】:

我想要一个在指向成员函数的情况下的专门模板。有没有办法检测到这一点?现在我声明 struct isPtrToMemberFunc,然后为每个类(现在只有 1 个)添加一个额外的模板(类 TType=void)并专门化额外的模板以查看它是否为 isPtrToMemberFunc。有没有办法自动检测到这个?如果不是,我目前的方法是最好的解决方案吗?

【问题讨论】:

    标签: c++ templates specialization


    【解决方案1】:

    有一种方法,但它包括您对每个数量的参数和这些成员函数的 const/volatile 修饰符重复您的专业化。一个更简单的方法是使用boost.functiontypes,它会为你做到这一点:

    template<typename T>
    void doit(T t) {
        if(boost::function_types::is_member_function_pointer<T>::value) {
            std::cout << "it is";
            // ...
        } else {
            std::cout << "it is not";
            // ...
        }
    }
    

    here获取它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多