我想知道是否可以使用模板来做到这一点:
template <typename T, (something here)>
void DoSomething(T& class_object)
{
std::cout << class_object.(something here) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
换句话说,您能否以某种方式传递您想要访问模板的成员对象?我似乎在任何地方都找不到任何例子。我知道你可以用宏来做到这一点:
#define DO_SOMETHING(T, member)
void DoSomething(T& class_object)
{
std::cout << class_object.member << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
但如果可能的话我想使用模板。
沿着这些思路:
template <typename T, auto T::*m>
void DoSomething(T& class_object)
{
std::cout << (class_object.*m) << std::endl;
}
Run Code Online (Sandbox Code Playgroud)