Back to Arangodb

bitxor_

3rdParty/boost/1.78.0/libs/mpl/doc/refmanual/bitxor.html

3.12.9.13.9 KB
Original Source

| Prev Next | Back Along | Up Home | Full TOC | Front Page / Metafunctions / Bitwise Operations / bitxor_ |

bitxor_

Synopsis

template<
      typename T1
    , typename T2
    , typename T3 =_unspecified__..._, typename T_n_=_unspecified_>
struct[bitxor\_](./bitxor.html){
    typedef_unspecified_type;
};

Description

Returns the result of bitwise xor (^) operation of its arguments.

#include <[boost/mpl/bitxor.hpp](../../../../boost/mpl/bitxor.hpp)>
#include <[boost/mpl/bitwise.hpp](../../../../boost/mpl/bitwise.hpp)>

Model of

Numeric Metafunction

Parameters

ParameterRequirementDescription
T1, T2,... TnIntegral ConstantOperation's arguments.

[Note: The requirements listed in this specification are the ones imposed by the default implementation. See Numeric Metafunction concept for the details on how to provide an implementation for a user-defined numeric type that does not satisfy the Integral Constant requirements. — end note]

Expression semantics

For any Integral Constants _c_1,_c_2,... _c_n:

typedef[bitxor\_](./bitxor.html)<c1,_..._c_n_>::type r;

| Return type: |

Integral Constant.

| | Semantics: |

Equivalent to

typedef[integral\_c](./integral-c.html)<
      typeof(c1::value ^ c2::value)
    , ( c1::value ^ c2::value )
    > c;

typedef[bitxor\_](./bitxor.html)<c,c3,_..._c_n_>::type r;

|

typedef[bitxor\_](./bitxor.html)<c1,_..._c_n_> r;

| Return type: |

Integral Constant.

| | Semantics: |

Equivalent to

struct r :[bitxor\_](./bitxor.html)<c1,_..._c_n_>::type {};

|

Complexity

Amortized constant time.

Example

typedef[integral\_c](./integral-c.html)<unsigned,0> u0;
typedef[integral\_c](./integral-c.html)<unsigned,1> u1;
typedef[integral\_c](./integral-c.html)<unsigned,2> u2;
typedef[integral\_c](./integral-c.html)<unsigned,8> u8;
typedef[integral\_c](./integral-c.html)<unsigned,0xffffffff> uffffffff;[BOOST\_MPL\_ASSERT\_RELATION](./assert-relation.html)( ([bitxor\_](./bitxor.html)<u0,u0>::value), ==, 0 );[BOOST\_MPL\_ASSERT\_RELATION](./assert-relation.html)( ([bitxor\_](./bitxor.html)<u1,u0>::value), ==, 1 );[BOOST\_MPL\_ASSERT\_RELATION](./assert-relation.html)( ([bitxor\_](./bitxor.html)<u0,u1>::value), ==, 1 );[BOOST\_MPL\_ASSERT\_RELATION](./assert-relation.html)( ([bitxor\_](./bitxor.html)<u0,uffffffff>::value), ==, 0xffffffff ^ 0 );[BOOST\_MPL\_ASSERT\_RELATION](./assert-relation.html)( ([bitxor\_](./bitxor.html)<u1,uffffffff>::value), ==, 0xffffffff ^ 1 );[BOOST\_MPL\_ASSERT\_RELATION](./assert-relation.html)( ([bitxor\_](./bitxor.html)<u8,uffffffff>::value), ==, 0xffffffff ^ 8 );

See also

Bitwise Operations, Numeric Metafunction, numeric_cast, bitand_, bitor_, shift_left

| Prev Next | Back Along | Up Home | Full TOC |

Copyright © 2001-2009 Aleksey Gurtovoy and David Abrahams Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |