如果我在一个类中存储一个元组:
class BaseA { } //So that I can store A in a class
template <typename Args...>
class A : public BaseA {
public:
//I'm omitting the constructors
private:
std::tuple<Args...> storedTup;
}
您是否可以稍后通过执行此操作来检索这些值?
//Change BaseA
class BaseA {
public:
virtual ~BaseA(){}
auto returnTuple();
}
//Change A
template <typename Args...>
class A : public BaseA {
public:
auto returnTuple() -> decltype(storedTup) {
return storedTup;
}
private:
std::tuple<Args...> storedTup;
}
我知道这不起作用,但有一个我忽略的简单修复方法。据我所见,decltype 可以使用通过函数传递的成员(在我的情况下为 returnTuple),但由于我的元组已经存储,这并没有真正的帮助。是否有另一种方法可以使自动返回类型成为元组的类型?