]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/hana/include/boost/hana/detail/operators/adl.hpp
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / hana / include / boost / hana / detail / operators / adl.hpp
1 /*!
2 @file
3 Defines `boost::hana::detail::operators::adl`.
4
5 @copyright Louis Dionne 2013-2016
6 Distributed under the Boost Software License, Version 1.0.
7 (See accompanying file LICENSE.md or copy at http://boost.org/LICENSE_1_0.txt)
8 */
9
10 #ifndef BOOST_HANA_DETAIL_OPERATORS_ADL_HPP
11 #define BOOST_HANA_DETAIL_OPERATORS_ADL_HPP
12
13 #include <boost/hana/config.hpp>
14
15
16 BOOST_HANA_NAMESPACE_BEGIN namespace detail { namespace operators {
17 //! @ingroup group-details
18 //! Enables [ADL](http://en.cppreference.com/w/cpp/language/adl) in the
19 //! `hana::detail::operators` namespace.
20 //!
21 //! This is used by containers in Hana as a quick way to automatically
22 //! define the operators associated to some concepts, in conjunction
23 //! with the `detail::xxx_operators` family of metafunctions.
24 //!
25 //! Note that `adl` can be passed template arguments to make it unique
26 //! amongst a set of derived classes. This allows a set of derived classes
27 //! not to possess a common base class, which would disable the EBO when
28 //! many of these derived classes are stored in a Hana container. If EBO
29 //! is not a concern, `adl<>` can simply be used.
30 template <typename ...>
31 struct adl { };
32 }} BOOST_HANA_NAMESPACE_END
33
34 #endif // !BOOST_HANA_DETAIL_OPERATORS_ADL_HPP