diff options
Diffstat (limited to 'boost/hana/ext/boost/fusion/tuple.hpp')
-rw-r--r-- | boost/hana/ext/boost/fusion/tuple.hpp | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/boost/hana/ext/boost/fusion/tuple.hpp b/boost/hana/ext/boost/fusion/tuple.hpp new file mode 100644 index 0000000000..d3e0757911 --- /dev/null +++ b/boost/hana/ext/boost/fusion/tuple.hpp @@ -0,0 +1,49 @@ +/*! +@file +Adapts `boost::fusion::tuple` for use with Hana. + +In the current version of Boost.Fusion, `boost::fusion::tuple` is basically +an alias to `boost::fusion::vector`, so both data types share the same +implementation in Hana. + +@copyright Louis Dionne 2013-2016 +Distributed under the Boost Software License, Version 1.0. +(See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt) + */ + +#ifndef BOOST_HANA_EXT_BOOST_FUSION_TUPLE_HPP +#define BOOST_HANA_EXT_BOOST_FUSION_TUPLE_HPP + +#include <boost/hana/config.hpp> +#include <boost/hana/ext/boost/fusion/vector.hpp> + + +#ifdef BOOST_HANA_DOXYGEN_INVOKED +namespace boost { namespace fusion { + //! @ingroup group-ext-fusion + //! Adapter for Boost.Fusion tuples. + //! + //! + //! Modeled concepts + //! ---------------- + //! A Fusion tuple is a model of the `Sequence` concept, and all the + //! concepts it refines. That makes it essentially the same as a Hana + //! tuple, although the complexity of some operations might differ from + //! that of a tuple. + //! + //! @include example/ext/boost/fusion/tuple.cpp + template <typename ...T> + struct tuple { }; +}} +#endif + + +BOOST_HANA_NAMESPACE_BEGIN + namespace ext { namespace boost { namespace fusion { + // In the current version of Boost.Fusion, `boost::fusion::tuple` is + // basically an alias to `boost::fusion::vector`, hence the alias. + using tuple_tag = vector_tag; + }}} +BOOST_HANA_NAMESPACE_END + +#endif // !BOOST_HANA_EXT_BOOST_FUSION_TUPLE_HPP |