通常有的时候,我们在使用C++编码需要判断一个类是否具有某个方法(成员函数),此时就可以使用Boost.TTI模块来实现。
普通函数和静态函数都可以用来检测。
1)检测普通成员函数
首先声明要检测的成员函数名称,如这里检测类算法具有toString这个成员函数。
然后,调用boost的方法has_member_function_xx来判定是否具有此方法,其中xx表示要检测的方法的名称,T表示要检测的类。
#include// Generate the metafunction BOOST_TTI_HAS_MEMBER_FUNCTION(toString) // Check whether T has a member function toString // which takes no parameter and returns a std::string constexpr bool foo = has_member_function_toString ::value;
2)检测静态成员函数
对于静态成员函数,则声明是有区别的。
// In header:BOOST_TTI_HAS_STATIC_MEMBER_FUNCTION(name)



