Publishing R3
[platform/upstream/dldt.git] / inference-engine / thirdparty / clDNN / common / boost / 1.64.0 / include / boost-1_64 / boost / mpl / set / aux_ / set0.hpp
1
2 #ifndef BOOST_MPL_SET_AUX_SET0_HPP_INCLUDED
3 #define BOOST_MPL_SET_AUX_SET0_HPP_INCLUDED
4
5 // Copyright Aleksey Gurtovoy 2003-2004
6 // Copyright David Abrahams 2003-2004
7 //
8 // Distributed under the Boost Software License, Version 1.0. 
9 // (See accompanying file LICENSE_1_0.txt or copy at 
10 // http://www.boost.org/LICENSE_1_0.txt)
11 //
12 // See http://www.boost.org/libs/mpl for documentation.
13
14 // $Id$
15 // $Date$
16 // $Revision$
17
18 #include <boost/mpl/long.hpp>
19 #include <boost/mpl/void.hpp>
20 #include <boost/mpl/aux_/na.hpp>
21 #include <boost/mpl/set/aux_/tag.hpp>
22 #include <boost/mpl/aux_/yes_no.hpp>
23 #include <boost/mpl/aux_/overload_names.hpp>
24 #include <boost/mpl/aux_/config/operators.hpp>
25
26 #include <boost/preprocessor/cat.hpp>
27
28 namespace boost { namespace mpl {
29
30 #if defined(BOOST_MPL_CFG_USE_OPERATORS_OVERLOADING)
31
32 #   define BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T) \
33     friend R BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f)(X const&, T) \
34 /**/
35
36 #   define BOOST_MPL_AUX_SET_OVERLOAD(R, f, X, T) \
37     BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T) \
38 /**/
39
40 #else
41
42 #   define BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T) \
43     static R BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f)(X const&, T) \
44 /**/
45
46 #   define BOOST_MPL_AUX_SET_OVERLOAD(R, f, X, T) \
47     BOOST_MPL_AUX_SET0_OVERLOAD(R, f, X, T); \
48     using Base::BOOST_PP_CAT(BOOST_MPL_AUX_OVERLOAD_,f) \
49 /**/
50
51 #endif
52
53 template< typename Dummy = na > struct set0
54 {
55     typedef set0<>          item_;
56     typedef item_           type;
57     typedef aux::set_tag    tag;
58     typedef void_           last_masked_;
59     typedef void_           item_type_;
60     typedef long_<0>        size;
61     typedef long_<1>        order;
62
63     BOOST_MPL_AUX_SET0_OVERLOAD( aux::no_tag, ORDER_BY_KEY, set0<>, void const volatile* );
64     BOOST_MPL_AUX_SET0_OVERLOAD( aux::yes_tag, IS_MASKED, set0<>, void const volatile* );
65 };
66
67 }}
68
69 #endif // BOOST_MPL_SET_AUX_SET0_HPP_INCLUDED