Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iterator>
- #include <type_traits>
- template<class Iterator>
- using move_if_noexcept_iterator = typename std::conditional<
- !std::is_nothrow_move_constructible<
- typename std::iterator_traits<Iterator>::value_type
- >::value && std::is_copy_constructible<
- typename std::iterator_traits<Iterator>::value_type
- >::value,
- Iterator,
- std::move_iterator<Iterator>
- >::type;
- template<class Iterator>
- constexpr move_if_noexcept_iterator<Iterator> make_move_if_noexcept_iterator(Iterator i) {
- return move_if_noexcept_iterator<Iterator>(i);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement