- " ?" ++ , . , E o, - , *o = std::declval<decltype((E))>() .
++ 14, , :
template <class...> using void_t = void;
template <class, class, class = void>
constexpr bool is_output_iterator = false;
template <class I, class E>
constexpr bool is_output_iterator<I, E, void_t<
typename std::iterator_traits<I>::iterator_category,
decltype(*std::declval<I>() = std::declval<E>())>> = true;
++ , , , , ++ - - TS github OutputIterator<I, E>() .