Замена boost::has_range_const_iterator на stdC++

Программы на C++. Форум разработчиков
Anonymous
Замена boost::has_range_const_iterator на std

Сообщение Anonymous »


У меня есть большая библиотека сериализации, основанная на boost::has_range_const_iterator. Приведенный ниже код является частью библиотеки сериализации, используемой в игровой сети.

шаблон autooperator()(T const& vals) const -> имя типа std::enable_if::type { auto length = std::distance(std::begin(vals), std::end(vals)); if (length > std::numeric_limits::max()) throw BadMessage("Длина слишком велика, чтобы соответствовать переменной длины"); (*this)(static_cast(длина)); for (auto& val: vals) (*это)(вал); } Есть ли какая-нибудь замена в std для boost::has_range_const_iterator в приведенном выше контексте?

РЕДАКТИРОВАТЬ: Что я пробовал?

#include #include #include #include #include шаблон структура has_const_iterator { частный: шаблон статический тест std::true_type(typename std::add_const::type*); шаблон статический std::false_type test(...); публика: static const bool value = decltype(test(nullptr))::value; }; интервал основной() { // Пример использования: std::vector vec; if ( has_const_iterator::value ) std::cout

Вернуться в «C++»