Тип значений контейнера и std::iterator_traits
От: xobotik Россия  
Дата: 11.11.15 11:27
Оценка:
Добрый день!

Можно как то проще вот в таком коде:
template<class Data, class OuputIterator>
static bool deserializeByIterator(const std::string &filePath, OutputIterator output) { 
    // ... 
}

template<class Container>
static bool deserializeContainer(const std::string &filePath, Container &container) { 
    typedef typename std::iterator_traits<typename Container::iterator>::value_type ContainerValueType;
    return deserializeByIterator<ContainerValueType>(filePath, std::back_inserter(container));
}

проще имеется ввиду не использовать
typedef typename std::iterator_traits<typename Container::iterator>::value_type ContainerValueType;

Заранее спасибо!
С уважением!
template std::iterator_traits
Re: Тип значений контейнера и std::iterator_traits
От: Vamp Россия  
Дата: 11.11.15 12:11
Оценка: 3 (1)
Container::value_type? Или я не понял чего?
Да здравствует мыло душистое и веревка пушистая.
Re[2]: Тип значений контейнера и std::iterator_traits
От: xobotik Россия  
Дата: 11.11.15 12:26
Оценка:
Здравствуйте, Vamp, Вы писали:

V>Container::value_type? Или я не понял чего?

Точно, спасибо!
template<class Container>
static bool deserializeContainer(const std::string &filePath, Container &container) {
    return deserializeByIterator<typename Container::value_type>(
        filePath, 
        std::back_inserter(container));
}

P.S. Как же так мог забыть =(
С уважением!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.