};
template <typename I, typename DFn>
-struct iterator_is_mutable<dereference_iterator_adaptor<I,DFn> > : public mpl::bool_<DFn::is_mutable> {};
+struct iterator_is_mutable<dereference_iterator_adaptor<I, DFn>>
+ : std::integral_constant<bool, DFn::is_mutable>
+{};
template <typename I, typename DFn>
-struct is_iterator_adaptor<dereference_iterator_adaptor<I,DFn> > : public mpl::true_{};
+struct is_iterator_adaptor<dereference_iterator_adaptor<I, DFn>> : std::true_type {};
template <typename I, typename DFn>
-struct iterator_adaptor_get_base<dereference_iterator_adaptor<I,DFn> > {
+struct iterator_adaptor_get_base<dereference_iterator_adaptor<I, DFn>>
+{
using type = I;
};