mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2025-05-10 09:23:30 +00:00
fix container_range_traits overloads
This commit is contained in:
parent
909ccfe73a
commit
c995ffd177
2 changed files with 16 additions and 2 deletions
|
@ -348,6 +348,12 @@ namespace sprout {
|
||||||
, public sprout::detail::container_range_traits_range_at_impl<Container>
|
, public sprout::detail::container_range_traits_range_at_impl<Container>
|
||||||
, public sprout::detail::container_range_traits_range_at_const_impl<Container>
|
, public sprout::detail::container_range_traits_range_at_const_impl<Container>
|
||||||
{
|
{
|
||||||
|
using sprout::detail::container_range_traits_range_front_impl<Container>::range_front;
|
||||||
|
using sprout::detail::container_range_traits_range_front_const_impl<Container>::range_front;
|
||||||
|
using sprout::detail::container_range_traits_range_back_impl<Container>::range_back;
|
||||||
|
using sprout::detail::container_range_traits_range_back_const_impl<Container>::range_back;
|
||||||
|
using sprout::detail::container_range_traits_range_at_impl<Container>::range_at;
|
||||||
|
using sprout::detail::container_range_traits_range_at_const_impl<Container>::range_at;
|
||||||
public:
|
public:
|
||||||
// iterators:
|
// iterators:
|
||||||
static SPROUT_CONSTEXPR typename sprout::container_traits<Container>::iterator
|
static SPROUT_CONSTEXPR typename sprout::container_traits<Container>::iterator
|
||||||
|
|
|
@ -33,11 +33,19 @@ namespace sprout {
|
||||||
typedef iterator const_iterator;
|
typedef iterator const_iterator;
|
||||||
typedef typename std::iterator_traits<Iterator>::value_type value_type;
|
typedef typename std::iterator_traits<Iterator>::value_type value_type;
|
||||||
typedef typename std::iterator_traits<Iterator>::reference reference;
|
typedef typename std::iterator_traits<Iterator>::reference reference;
|
||||||
typedef typename std::remove_reference<reference>::type const& const_reference;
|
typedef typename std::conditional<
|
||||||
|
std::is_reference<reference>::value,
|
||||||
|
typename std::remove_reference<reference>::type const&,
|
||||||
|
reference
|
||||||
|
>::type const_reference;
|
||||||
typedef typename std::iterator_traits<Iterator>::difference_type difference_type;
|
typedef typename std::iterator_traits<Iterator>::difference_type difference_type;
|
||||||
typedef typename std::make_unsigned<difference_type>::type size_type;
|
typedef typename std::make_unsigned<difference_type>::type size_type;
|
||||||
typedef typename std::iterator_traits<Iterator>::pointer pointer;
|
typedef typename std::iterator_traits<Iterator>::pointer pointer;
|
||||||
typedef typename std::remove_pointer<pointer>::type const* const_pointer;
|
typedef typename std::conditional<
|
||||||
|
std::is_pointer<pointer>::value,
|
||||||
|
typename std::remove_pointer<pointer>::type const*,
|
||||||
|
pointer
|
||||||
|
>::type const_pointer;
|
||||||
private:
|
private:
|
||||||
iterator first_;
|
iterator first_;
|
||||||
iterator last_;
|
iterator last_;
|
||||||
|
|
Loading…
Add table
Reference in a new issue