annotate DEPENDENCIES/generic/include/boost/fusion/support/sequence_base.hpp @ 125:34e428693f5d vext

Vext -> Repoint
author Chris Cannam
date Thu, 14 Jun 2018 11:15:39 +0100
parents c530137014c0
children
rev   line source
Chris@16 1 /*=============================================================================
Chris@16 2 Copyright (c) 2001-2011 Joel de Guzman
Chris@16 3 Copyright (c) 2007 Tobias Schwinger
Chris@16 4
Chris@16 5 Distributed under the Boost Software License, Version 1.0. (See accompanying
Chris@16 6 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 7 ==============================================================================*/
Chris@16 8 #if !defined(FUSION_SEQUENCE_BASE_04182005_0737)
Chris@16 9 #define FUSION_SEQUENCE_BASE_04182005_0737
Chris@16 10
Chris@101 11 #include <boost/config.hpp>
Chris@101 12 #include <boost/fusion/support/config.hpp>
Chris@16 13 #include <boost/mpl/begin_end_fwd.hpp>
Chris@16 14
Chris@16 15 namespace boost { namespace fusion
Chris@16 16 {
Chris@16 17 namespace detail
Chris@16 18 {
Chris@16 19 struct from_sequence_convertible_type
Chris@16 20 {};
Chris@16 21 }
Chris@16 22
Chris@16 23 template <typename Sequence>
Chris@16 24 struct sequence_base
Chris@16 25 {
Chris@101 26 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@16 27 Sequence const&
Chris@101 28 derived() const BOOST_NOEXCEPT
Chris@16 29 {
Chris@16 30 return static_cast<Sequence const&>(*this);
Chris@16 31 }
Chris@16 32
Chris@101 33 BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@16 34 Sequence&
Chris@101 35 derived() BOOST_NOEXCEPT
Chris@16 36 {
Chris@16 37 return static_cast<Sequence&>(*this);
Chris@16 38 }
Chris@16 39
Chris@101 40 BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
Chris@101 41 operator detail::from_sequence_convertible_type() const BOOST_NOEXCEPT
Chris@16 42 {
Chris@16 43 return detail::from_sequence_convertible_type();
Chris@16 44 }
Chris@16 45 };
Chris@16 46
Chris@16 47 struct fusion_sequence_tag;
Chris@16 48 }}
Chris@16 49
Chris@16 50 namespace boost { namespace mpl
Chris@16 51 {
Chris@16 52 // Deliberately break mpl::begin, so it doesn't lie that a Fusion sequence
Chris@16 53 // is not an MPL sequence by returning mpl::void_.
Chris@16 54 // In other words: Fusion Sequences are always MPL Sequences, but they can
Chris@16 55 // be incompletely defined.
Chris@16 56 template<> struct begin_impl< boost::fusion::fusion_sequence_tag >;
Chris@16 57 }}
Chris@16 58
Chris@16 59 #endif