Пусть вас не пугает название вопроса! Я считаю, что это просто вопрос синтаксиса.
у меня есть этот класс
template<typename ... Types>
class test_class{
public:
template<typename T>
T &get(){return std::get<T>(m_values);}
template<typename T>
void set(T &&t){std::get<T>(m_values) = t;}
// scary part
std::pair<std::tuple</* trouble */ Types&(*)()...>, std::tuple<void(*)(Types)...>> &getters_setters(){
static std::pair<std::tuple<Types&&(*)()...>, std::tuple<void(*)(Types)...>> ret{
std::make_tuple(get<Types>...),
std::make_tuple(set<Types>...)
};
return ret;
}
private:
std::tuple<Types...> m_values;
};
И хотелось бы знать правильный синтаксис для расширения пакета параметров шаблона, чтобы я мог получить кортеж из T &get()
указателей на функции.