私はこのようなクラスを持っています:
template<typename ...Els>
class Istr {
std::tuple<Els...> Vals
}
class Istr1 : public Istr<std::string> {
void Do() { std::get<0>(Vals) = "Meh."; }
}
このように使用できる関数テンプレートを定義する方法はありますか?
Tok(0) = "Meh."
Istr i; i.Tok(0) = "Meh."
または、それが不可能な場合は、このように?
Tok<0>() = "Meh."
私の素朴なアプローチでは、間違ったコードを思いつきました:
template<typename T>
T Tok(size_t i) { return std::get<i>(Vals); }
T
そして、それを使用してテンプレートを暗黙的にインスタンス化するとき、コンパイラーは実際に型を推測できません。