是否可以为可变参数模板类使用类型化的getter? 即像下面这样的东西,但它编译:
template<class... T>
class A {
public:
A(T... params) {
_params = { params... };
}
T... get(const size_t index) {
return _params.at(index);
}
private:
std::vector<T...> _params;
};
然后可以使用:
A<std::string, int> foo(std::string("a"), 2);
std::string bar = foo.get(0).append("b");
int bar2 = foo.get(1) + 2;
答案 0 :(得分:1)
这正是std::tuple
的用途。
auto foo = std::make_tuple(std::string("a"), 2);
std::string bar = std::get<0>(foo).append("b");
int bar2 = std::get<1>(foo) + 2;