Подскажите как в приведенном ниже коде
(он же на ideone) правильно объяснить компилятору что тип элемента находится в Table::Meta::type?
#include <list>
#include <tuple>
struct RawTable { };
struct Table
{
template<class Type>
struct Meta
{
Meta(const char * columnName) : columnName(columnName) { }
using type = Type;
const char * const columnName;
// . . .
};
template<class... MetaArgs>
auto parse(RawTable&&, MetaArgs&&...) -> std::list<std::tuple<typename MetaArgs::type...>>
{
return std::list<std::tuple<typename MetaArgs::type...>>();
}
};
int main()
{
for (std::tuple<bool,int> & tuple : Table::parse(RawTable(),
Table::Meta<bool>("field1"),
Table::Meta<int>("field2")))
{
(void)tuple;
//TODO
}
return 0;
}