例如,我有一堂课
struct A {int a; bool b;};
我想生成一个模板函数来获取它的元素(比如 std::get 来获取一个元组元素)
template<unsigned i, class T>
auto Get(T& t);
template<>
int& Get<0, A>(A& a)
{
return a.a;
}
template<>
bool& Get<1, A>(A& a)
{
return a.b;
}
int main()
{
A a;
Get<0>(a) = 10;
Get<1>(a) = true;
return 0;
}
上面的代码不起作用。挑战在于我不知道任意类的 Get 返回类型。有什么方法可以实现吗?谢谢。