簡體   English   中英

提高:: is_member_function_pointer_of?

[英]boost::is_member_function_pointer_of?

Boost有is_member_function_pointer,但不是is_member_function_pointer_of,它將確定該類型是否是另一個類的成員函數指針。 所以,例如,

boost::is_member_function_pointer_of<void(ClassA::*)(), ClassA>::value == true
boost::is_member_function_pointer_of<void(ClassA::*)(), ClassB>::value == false

這有可能寫嗎?

指向成員函數類型的指針只是指向恰好從函數類型構建的成員類型的指針。

#include <type_traits>

template <typename T, class C>
struct is_member_function_pointer_of
    : public std::false_type
{};

template <typename FT, class C>
struct is_member_function_pointer_of<FT C::*, C>
    : public std::is_function<FT>::type
{};

在不支持C ++ 11的情況下,可以替換Boost版本。

請注意,這忽略了從T Base::*T Derived::*的隱式轉換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM