diff options
Diffstat (limited to 'boost/fusion/container/list/cons_iterator.hpp')
-rw-r--r-- | boost/fusion/container/list/cons_iterator.hpp | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/boost/fusion/container/list/cons_iterator.hpp b/boost/fusion/container/list/cons_iterator.hpp index da694756e5..58b7fd9e36 100644 --- a/boost/fusion/container/list/cons_iterator.hpp +++ b/boost/fusion/container/list/cons_iterator.hpp @@ -36,8 +36,8 @@ namespace boost { namespace fusion typename add_const<Cons>::type> identity; - BOOST_FUSION_GPU_ENABLED - explicit cons_iterator(cons_type& in_cons) + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED + explicit cons_iterator(cons_type& in_cons) BOOST_NOEXCEPT : cons(in_cons) {} cons_type& cons; @@ -55,47 +55,57 @@ namespace boost { namespace fusion typedef cons_iterator_identity< add_const<nil_>::type> identity; + BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED - nil_iterator() {} + nil_iterator() BOOST_NOEXCEPT {} BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED - explicit nil_iterator(nil_ const&) {} + explicit nil_iterator(nil_ const&) BOOST_NOEXCEPT {} }; template <> struct cons_iterator<nil_> : nil_iterator { BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED - cons_iterator() {} + cons_iterator() BOOST_NOEXCEPT {} BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED - explicit cons_iterator(nil_ const&) {} + explicit cons_iterator(nil_ const&) BOOST_NOEXCEPT {} }; template <> struct cons_iterator<nil_ const> : nil_iterator { BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED - cons_iterator() {} + cons_iterator() BOOST_NOEXCEPT {} BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED - explicit cons_iterator(nil_ const&) {} + explicit cons_iterator(nil_ const&) BOOST_NOEXCEPT {} }; template <> struct cons_iterator<list<> > : nil_iterator { BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED - cons_iterator() {} + cons_iterator() BOOST_NOEXCEPT {} BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED - explicit cons_iterator(nil_ const&) {} + explicit cons_iterator(nil_ const&) BOOST_NOEXCEPT {} }; template <> struct cons_iterator<list<> const> : nil_iterator { BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED - cons_iterator() {} + cons_iterator() BOOST_NOEXCEPT {} BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED - explicit cons_iterator(nil_ const&) {} + explicit cons_iterator(nil_ const&) BOOST_NOEXCEPT {} }; }} +#ifdef BOOST_FUSION_WORKAROUND_FOR_LWG_2408 +namespace std +{ + template <typename Cons> + struct iterator_traits< ::boost::fusion::cons_iterator<Cons> > + { }; +} +#endif + #endif |