たとえば、私はクラスを持っています
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 の型がわからないことです。それを実装する方法はありますか?ありがとう。