summaryrefslogtreecommitdiff
path: root/boost/convert/detail/range.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/convert/detail/range.hpp')
-rw-r--r--boost/convert/detail/range.hpp29
1 files changed, 15 insertions, 14 deletions
diff --git a/boost/convert/detail/range.hpp b/boost/convert/detail/range.hpp
index 345321039e..82d105f949 100644
--- a/boost/convert/detail/range.hpp
+++ b/boost/convert/detail/range.hpp
@@ -14,7 +14,7 @@ namespace boost { namespace cnv
{
namespace detail
{
- template<typename T, bool is_class> struct is_range : mpl::false_ {};
+ template<typename T, bool is_class> struct is_range : std::false_type {};
template<typename T> struct is_range<T, /*is_class=*/true>
{
@@ -24,7 +24,7 @@ namespace boost { namespace cnv
static bool const value = has_begin<T>::value && has_end<T>::value;
};
}
- template<typename T> struct is_range : detail::is_range<typename remove_const<T>::type, boost::is_class<T>::value> {};
+ template<typename T> struct is_range : detail::is_range<typename boost::remove_const<T>::type, boost::is_class<T>::value> {};
template<typename T, typename enable =void> struct range;
template<typename T, typename enable =void> struct iterator;
@@ -38,9 +38,9 @@ namespace boost { namespace cnv
template<typename T>
struct iterator<T*, void>
{
- typedef typename remove_const<T>::type value_type;
- typedef T* type;
- typedef value_type const* const_type;
+ typedef typename boost::remove_const<T>::type value_type;
+ typedef T* type;
+ typedef value_type const* const_type;
};
template<typename T>
struct range_base
@@ -74,20 +74,21 @@ namespace boost { namespace cnv
range (T& r) : base_type(r.begin(), r.end()) {}
- iterator end () { return base_type::end_; }
- const_iterator end () const { return base_type::end_; }
- sentry_type sentry () const { return base_type::end_; }
- bool empty () const { return base_type::begin_ == base_type::end_; }
+ iterator end () { return base_type::end_; }
+ const_iterator end () const { return base_type::end_; }
+ sentry_type sentry () const { return base_type::end_; }
+ std::size_t size () const { return base_type::end_ - base_type::begin_; }
+ bool empty () const { return base_type::begin_ == base_type::end_; }
};
template<typename T>
struct range<T*, typename enable_if<cnv::is_char<T> >::type> : public range_base<T*>
{
- typedef range this_type;
- typedef range_base<T*> base_type;
- typedef typename remove_const<T>::type value_type;
- typedef T* iterator;
- typedef value_type const* const_iterator;
+ using this_type = range;
+ using base_type = range_base<T*>;
+ using value_type = typename boost::remove_const<T>::type;
+ using iterator = T*;
+ using const_iterator = value_type const*;
struct sentry_type
{