سؤال

وأريد قالب تتخصص في قضية مؤشر إلى عضو وظيفة. هل هناك طريقة للكشف عن هذا؟ الآن أعلن البنية isPtrToMemberFunc، ثم إضافة قالب إضافي (الطبقة TType = باطل) لكل فئة (الآن فقط 1) وتتخصص القالب إضافية لمعرفة ما إذا isPtrToMemberFunc لها. هل هناك طريقة للكشف عن هذا تلقائيا؟ إن لم يكن هو بلدي الطريقة الحالية أفضل حل؟

هل كانت مفيدة؟

المحلول

وهناك وسيلة، ولكنه يشمل ذلك كنت أكرر تخصصك لكل وعدد من الحجج وCONST / المعدلات المتقلبة لوظائف الأعضاء. أسهل طريقة للقيام بذلك هو استخدام 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";
        // ...
    }
}

والاستيلاء عليها من هنا .

scroll top