C++(11):基于函数指针检查类中是否有某个成员函数

#include 
#include 
using namespace std;

struct has_3_param_f_member
{
    template
    struct get
    {};
};

template
struct is_member_f_has_3_param
{
    template
    static std::true_type f(typename has_3_param_f_member::get* p);

    template
    static std::false_type f(...);

public:
    static constexpr bool value = decltype(f(nullptr))::value;
};

class A
{
public:
	void f(int i, string s)
	{
	}
};

class B{
public:
	void f(int i, double d, string s)
	{
	}
};

template 
void doCheck()
{
	if(is_member_f_has_3_param::value)
	{
		cout<<"f_has_3_param"<();
	doCheck();
	return 0;
}

has_3_

你可能感兴趣的:(C/C++,c++)