2 // Copyright Aleksey Gurtovoy 2000-2004
3 // Copyright Jaap Suter 2003
5 // Distributed under the Boost Software License, Version 1.0.
6 // (See accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt)
10 // Preprocessed version of "boost/mpl/bitor.hpp" header
11 // -- DO NOT modify by hand!
13 namespace boost
{ namespace mpl
{
21 ( BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag1
)
22 > BOOST_MPL_AUX_NESTED_VALUE_WKND(int, Tag2
)
25 , aux::cast2nd_impl
< bitor_impl
< Tag1
,Tag1
>,Tag1
, Tag2
>
26 , aux::cast1st_impl
< bitor_impl
< Tag2
,Tag2
>,Tag1
, Tag2
>
31 /// for Digital Mars C++/compilers with no CTPS/TTP support
32 template<> struct bitor_impl
< na
,na
>
34 template< typename U1
, typename U2
> struct apply
37 BOOST_STATIC_CONSTANT(int, value
= 0);
41 template< typename Tag
> struct bitor_impl
< na
,Tag
>
43 template< typename U1
, typename U2
> struct apply
46 BOOST_STATIC_CONSTANT(int, value
= 0);
50 template< typename Tag
> struct bitor_impl
< Tag
,na
>
52 template< typename U1
, typename U2
> struct apply
55 BOOST_STATIC_CONSTANT(int, value
= 0);
59 template< typename T
> struct bitor_tag
61 typedef typename
T::tag type
;
65 typename
BOOST_MPL_AUX_NA_PARAM(N1
)
66 , typename
BOOST_MPL_AUX_NA_PARAM(N2
)
67 , typename N3
= na
, typename N4
= na
, typename N5
= na
70 : bitor_
< bitor_
< bitor_
< bitor_
< N1
,N2
>, N3
>, N4
>, N5
>
72 BOOST_MPL_AUX_LAMBDA_SUPPORT(
75 , ( N1
, N2
, N3
, N4
, N5
)
80 typename N1
, typename N2
, typename N3
, typename N4
82 struct bitor_
< N1
,N2
,N3
,N4
,na
>
84 : bitor_
< bitor_
< bitor_
< N1
,N2
>, N3
>, N4
>
86 BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
89 , ( N1
, N2
, N3
, N4
, na
)
94 typename N1
, typename N2
, typename N3
96 struct bitor_
< N1
,N2
,N3
,na
,na
>
98 : bitor_
< bitor_
< N1
,N2
>, N3
>
100 BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
103 , ( N1
, N2
, N3
, na
, na
)
108 typename N1
, typename N2
110 struct bitor_
< N1
,N2
,na
,na
,na
>
112 typename bitor_tag
<N1
>::type
113 , typename bitor_tag
<N2
>::type
114 >::template apply
< N1
,N2
>::type
116 BOOST_MPL_AUX_LAMBDA_SUPPORT_SPEC(
119 , ( N1
, N2
, na
, na
, na
)
124 BOOST_MPL_AUX_NA_SPEC2(2, 5, bitor_
)
128 namespace boost
{ namespace mpl
{
130 struct bitor_impl
< integral_c_tag
,integral_c_tag
>
132 template< typename N1
, typename N2
> struct apply
135 typename
aux::largest_int
<
136 typename
N1::value_type
137 , typename
N2::value_type
139 , ( BOOST_MPL_AUX_VALUE_WKND(N1
)::value
140 | BOOST_MPL_AUX_VALUE_WKND(N2
)::value