模板调用类中函数方法

2023-12-14 22:09:18
class TestA
{
public:
	void Get(int a, int b) { std::cout << a <<std::endl; }

};


template<class _Editor, class _Ret, class ..._Arg>
_Ret GOElevationFollowsBoard(_Ret(_Editor::* pMemFunc)(_Arg...), std::remove_cv_t<_Arg>... args)
{
	_Editor spEditor;
	if constexpr (std::is_same_v<_Ret, void>)
	{
		(spEditor.*pMemFunc)(std::forward<_Arg>(args)...);
	}
	else
	{
		return (spEditor.*pMemFunc)(std::forward<_Arg>(args)...);
	}
}

int main() {
	int a = 10, b = 20;
	GOElevationFollowsBoard(&TestA::Get,a,b);
	return 0;
}

文章来源:https://blog.csdn.net/qq_38409301/article/details/135003836
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。