Если я храню кортеж в классе как таковой:
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), но поскольку мой кортеж уже сохранен, это не очень поможет. Есть ли другой способ сделать тип автоматического возврата типом кортежа?
BaseA::returnTuple()
? - person Barry   schedule 21.01.2015