проблемка при построении компилятором std::tuple
От: _niko_ Россия  
Дата: 12.11.15 07:41
Оценка:
Подскажите как в приведенном ниже коде (он же на 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;
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.