forked from boostorg/utility
Compare commits
38 Commits
svn-branch
...
svn-branch
Author | SHA1 | Date | |
---|---|---|---|
bc671e76ad | |||
fc6da6ab10 | |||
ebbda4cd1d | |||
b3cb363206 | |||
bf640847bc | |||
f4612715e5 | |||
22f46679ad | |||
8bc5f4ea49 | |||
7e3e326faf | |||
7019e18149 | |||
49faf23433 | |||
62836f2928 | |||
1ecf3ceb74 | |||
2aa48414c9 | |||
d215f2176c | |||
c286d62223 | |||
3fd0ea6e75 | |||
b050431638 | |||
b311fcefb2 | |||
899c92420c | |||
64a0e0cb20 | |||
ece6992540 | |||
6098304ea8 | |||
28fff2d821 | |||
0ce3885d59 | |||
1823481d96 | |||
cce5d77d2b | |||
3c5c2bc107 | |||
177ee78bbb | |||
f1ec0c4d04 | |||
4a564744fe | |||
5f06636929 | |||
c5d979561d | |||
8416a6f99b | |||
7b85472325 | |||
cc02692ee2 | |||
cefd52543b | |||
5a94dd1bf0 |
31
CMakeLists.txt
Normal file
31
CMakeLists.txt
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# This file was automatically generated from the original CMakeLists.txt file
|
||||||
|
# Add a variable to hold the headers for the library
|
||||||
|
set (lib_headers
|
||||||
|
assert.hpp
|
||||||
|
call_traits.hpp
|
||||||
|
checked_delete.hpp
|
||||||
|
compressed_pair.hpp
|
||||||
|
current_function.hpp
|
||||||
|
operators.hpp
|
||||||
|
throw_exception.hpp
|
||||||
|
utility.hpp
|
||||||
|
utility
|
||||||
|
)
|
||||||
|
|
||||||
|
# Add a library target to the build system
|
||||||
|
boost_library_project(
|
||||||
|
utility
|
||||||
|
# SRCDIRS
|
||||||
|
TESTDIRS test
|
||||||
|
HEADERS ${lib_headers}
|
||||||
|
# DOCDIRS
|
||||||
|
DESCRIPTION "Various small utilities for C++ programming."
|
||||||
|
MODULARIZED
|
||||||
|
AUTHORS "David Abrahams <dave -at- boostpro.com>"
|
||||||
|
"Brad King"
|
||||||
|
"Douglas Gregor <doug.gregor -at- gmail.com>"
|
||||||
|
# MAINTAINERS
|
||||||
|
)
|
||||||
|
|
||||||
|
|
643
binary_test.cpp
Normal file
643
binary_test.cpp
Normal file
@ -0,0 +1,643 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
Copyright (c) 2006, 2007 Matthew Calabrese
|
||||||
|
|
||||||
|
Use, modification and distribution is subject to 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)
|
||||||
|
==============================================================================*/
|
||||||
|
|
||||||
|
#include <boost/test/minimal.hpp>
|
||||||
|
#include <boost/utility/binary.hpp>
|
||||||
|
#include <algorithm>
|
||||||
|
#include <cstddef>
|
||||||
|
|
||||||
|
/*
|
||||||
|
Note: This file tests every single valid bit-grouping on its own, and some
|
||||||
|
random combinations of bit-groupings.
|
||||||
|
*/
|
||||||
|
|
||||||
|
std::size_t const num_random_test_values = 32;
|
||||||
|
|
||||||
|
// Note: These hex values should all correspond with the binary array below
|
||||||
|
unsigned int const random_unsigned_ints_hex[num_random_test_values]
|
||||||
|
= { 0x0103u, 0x77ebu, 0x5f36u, 0x1f18u, 0xc530u, 0xa73au, 0xd6f8u, 0x0919u
|
||||||
|
, 0xfbb0u, 0x3e7cu, 0xd0e9u, 0x22c8u, 0x724eu, 0x14fau, 0xd98eu, 0x40b5
|
||||||
|
, 0xeba0u, 0xfe50u, 0x688au, 0x1b05u, 0x5f9cu, 0xe4fcu, 0xa7b8u, 0xd3acu
|
||||||
|
, 0x1dddu, 0xbf04u, 0x8352u, 0xe89cu, 0x7506u, 0xe767u, 0xf489u, 0xe167
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned int const random_unsigned_ints_binary[num_random_test_values]
|
||||||
|
= { BOOST_BINARY( 0 00010000 0011 ), BOOST_BINARY( 0 11101 1111 101011 )
|
||||||
|
, BOOST_BINARY( 010111 1100110 1 1 0 ), BOOST_BINARY( 000 1 11110 00 11000 )
|
||||||
|
, BOOST_BINARY( 110 001010 0110 000 ), BOOST_BINARY( 1010 01110011 1010 )
|
||||||
|
, BOOST_BINARY( 11 010 1 101111 1000 ), BOOST_BINARY( 0000 100100 0110 01 )
|
||||||
|
, BOOST_BINARY( 1111 101110 11 0000 ), BOOST_BINARY( 00111110 01111100 )
|
||||||
|
, BOOST_BINARY( 11 010 000111 01001 ), BOOST_BINARY( 00100 010110 01000 )
|
||||||
|
, BOOST_BINARY( 01 11001001 001110 ), BOOST_BINARY( 0010 1001111 1010 )
|
||||||
|
, BOOST_BINARY( 1101 1 00110 0 01110 ), BOOST_BINARY( 100 000 01011010 1 )
|
||||||
|
, BOOST_BINARY( 11 1010 1110 1000 00 ), BOOST_BINARY( 11111 110010 10000 )
|
||||||
|
, BOOST_BINARY( 01101 00010 001010 ), BOOST_BINARY( 000 11011 000001 01 )
|
||||||
|
, BOOST_BINARY( 01 01111 1100111 00 ), BOOST_BINARY( 1 110010 0111111 00 )
|
||||||
|
, BOOST_BINARY( 101 0011 11 01110 00 ), BOOST_BINARY( 110100 1 110101 100 )
|
||||||
|
, BOOST_BINARY( 00 1110111 011 101 ), BOOST_BINARY( 1011 1111 00000 100 )
|
||||||
|
, BOOST_BINARY( 1000 00110 101 0010 ), BOOST_BINARY( 1110 10001 001110 0 )
|
||||||
|
, BOOST_BINARY( 011 1010100 000 110 ), BOOST_BINARY( 1110 0111 01100 111 )
|
||||||
|
, BOOST_BINARY( 11110 10010 001001 ), BOOST_BINARY( 11 1000010 1100 111 )
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned int const unsigned_ints_1_bit[2] =
|
||||||
|
{ BOOST_BINARY( 0 )
|
||||||
|
, BOOST_BINARY( 1 )
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned int const unsigned_ints_2_bits[4] =
|
||||||
|
{ BOOST_BINARY( 00 )
|
||||||
|
, BOOST_BINARY( 01 )
|
||||||
|
, BOOST_BINARY( 10 )
|
||||||
|
, BOOST_BINARY( 11 )
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned int const unsigned_ints_3_bits[8] =
|
||||||
|
{ BOOST_BINARY( 000 )
|
||||||
|
, BOOST_BINARY( 001 )
|
||||||
|
, BOOST_BINARY( 010 )
|
||||||
|
, BOOST_BINARY( 011 )
|
||||||
|
, BOOST_BINARY( 100 )
|
||||||
|
, BOOST_BINARY( 101 )
|
||||||
|
, BOOST_BINARY( 110 )
|
||||||
|
, BOOST_BINARY( 111 )
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned int const unsigned_ints_4_bits[16] =
|
||||||
|
{ BOOST_BINARY( 0000 )
|
||||||
|
, BOOST_BINARY( 0001 )
|
||||||
|
, BOOST_BINARY( 0010 )
|
||||||
|
, BOOST_BINARY( 0011 )
|
||||||
|
, BOOST_BINARY( 0100 )
|
||||||
|
, BOOST_BINARY( 0101 )
|
||||||
|
, BOOST_BINARY( 0110 )
|
||||||
|
, BOOST_BINARY( 0111 )
|
||||||
|
, BOOST_BINARY( 1000 )
|
||||||
|
, BOOST_BINARY( 1001 )
|
||||||
|
, BOOST_BINARY( 1010 )
|
||||||
|
, BOOST_BINARY( 1011 )
|
||||||
|
, BOOST_BINARY( 1100 )
|
||||||
|
, BOOST_BINARY( 1101 )
|
||||||
|
, BOOST_BINARY( 1110 )
|
||||||
|
, BOOST_BINARY( 1111 )
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned int const unsigned_ints_5_bits[32] =
|
||||||
|
{ BOOST_BINARY( 00000 )
|
||||||
|
, BOOST_BINARY( 00001 )
|
||||||
|
, BOOST_BINARY( 00010 )
|
||||||
|
, BOOST_BINARY( 00011 )
|
||||||
|
, BOOST_BINARY( 00100 )
|
||||||
|
, BOOST_BINARY( 00101 )
|
||||||
|
, BOOST_BINARY( 00110 )
|
||||||
|
, BOOST_BINARY( 00111 )
|
||||||
|
, BOOST_BINARY( 01000 )
|
||||||
|
, BOOST_BINARY( 01001 )
|
||||||
|
, BOOST_BINARY( 01010 )
|
||||||
|
, BOOST_BINARY( 01011 )
|
||||||
|
, BOOST_BINARY( 01100 )
|
||||||
|
, BOOST_BINARY( 01101 )
|
||||||
|
, BOOST_BINARY( 01110 )
|
||||||
|
, BOOST_BINARY( 01111 )
|
||||||
|
, BOOST_BINARY( 10000 )
|
||||||
|
, BOOST_BINARY( 10001 )
|
||||||
|
, BOOST_BINARY( 10010 )
|
||||||
|
, BOOST_BINARY( 10011 )
|
||||||
|
, BOOST_BINARY( 10100 )
|
||||||
|
, BOOST_BINARY( 10101 )
|
||||||
|
, BOOST_BINARY( 10110 )
|
||||||
|
, BOOST_BINARY( 10111 )
|
||||||
|
, BOOST_BINARY( 11000 )
|
||||||
|
, BOOST_BINARY( 11001 )
|
||||||
|
, BOOST_BINARY( 11010 )
|
||||||
|
, BOOST_BINARY( 11011 )
|
||||||
|
, BOOST_BINARY( 11100 )
|
||||||
|
, BOOST_BINARY( 11101 )
|
||||||
|
, BOOST_BINARY( 11110 )
|
||||||
|
, BOOST_BINARY( 11111 )
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned int const unsigned_ints_6_bits[64] =
|
||||||
|
{ BOOST_BINARY( 000000 )
|
||||||
|
, BOOST_BINARY( 000001 )
|
||||||
|
, BOOST_BINARY( 000010 )
|
||||||
|
, BOOST_BINARY( 000011 )
|
||||||
|
, BOOST_BINARY( 000100 )
|
||||||
|
, BOOST_BINARY( 000101 )
|
||||||
|
, BOOST_BINARY( 000110 )
|
||||||
|
, BOOST_BINARY( 000111 )
|
||||||
|
, BOOST_BINARY( 001000 )
|
||||||
|
, BOOST_BINARY( 001001 )
|
||||||
|
, BOOST_BINARY( 001010 )
|
||||||
|
, BOOST_BINARY( 001011 )
|
||||||
|
, BOOST_BINARY( 001100 )
|
||||||
|
, BOOST_BINARY( 001101 )
|
||||||
|
, BOOST_BINARY( 001110 )
|
||||||
|
, BOOST_BINARY( 001111 )
|
||||||
|
, BOOST_BINARY( 010000 )
|
||||||
|
, BOOST_BINARY( 010001 )
|
||||||
|
, BOOST_BINARY( 010010 )
|
||||||
|
, BOOST_BINARY( 010011 )
|
||||||
|
, BOOST_BINARY( 010100 )
|
||||||
|
, BOOST_BINARY( 010101 )
|
||||||
|
, BOOST_BINARY( 010110 )
|
||||||
|
, BOOST_BINARY( 010111 )
|
||||||
|
, BOOST_BINARY( 011000 )
|
||||||
|
, BOOST_BINARY( 011001 )
|
||||||
|
, BOOST_BINARY( 011010 )
|
||||||
|
, BOOST_BINARY( 011011 )
|
||||||
|
, BOOST_BINARY( 011100 )
|
||||||
|
, BOOST_BINARY( 011101 )
|
||||||
|
, BOOST_BINARY( 011110 )
|
||||||
|
, BOOST_BINARY( 011111 )
|
||||||
|
, BOOST_BINARY( 100000 )
|
||||||
|
, BOOST_BINARY( 100001 )
|
||||||
|
, BOOST_BINARY( 100010 )
|
||||||
|
, BOOST_BINARY( 100011 )
|
||||||
|
, BOOST_BINARY( 100100 )
|
||||||
|
, BOOST_BINARY( 100101 )
|
||||||
|
, BOOST_BINARY( 100110 )
|
||||||
|
, BOOST_BINARY( 100111 )
|
||||||
|
, BOOST_BINARY( 101000 )
|
||||||
|
, BOOST_BINARY( 101001 )
|
||||||
|
, BOOST_BINARY( 101010 )
|
||||||
|
, BOOST_BINARY( 101011 )
|
||||||
|
, BOOST_BINARY( 101100 )
|
||||||
|
, BOOST_BINARY( 101101 )
|
||||||
|
, BOOST_BINARY( 101110 )
|
||||||
|
, BOOST_BINARY( 101111 )
|
||||||
|
, BOOST_BINARY( 110000 )
|
||||||
|
, BOOST_BINARY( 110001 )
|
||||||
|
, BOOST_BINARY( 110010 )
|
||||||
|
, BOOST_BINARY( 110011 )
|
||||||
|
, BOOST_BINARY( 110100 )
|
||||||
|
, BOOST_BINARY( 110101 )
|
||||||
|
, BOOST_BINARY( 110110 )
|
||||||
|
, BOOST_BINARY( 110111 )
|
||||||
|
, BOOST_BINARY( 111000 )
|
||||||
|
, BOOST_BINARY( 111001 )
|
||||||
|
, BOOST_BINARY( 111010 )
|
||||||
|
, BOOST_BINARY( 111011 )
|
||||||
|
, BOOST_BINARY( 111100 )
|
||||||
|
, BOOST_BINARY( 111101 )
|
||||||
|
, BOOST_BINARY( 111110 )
|
||||||
|
, BOOST_BINARY( 111111 )
|
||||||
|
};
|
||||||
|
|
||||||
|
unsigned int const unsigned_ints_7_bits[128] =
|
||||||
|
{ BOOST_BINARY( 0000000 )
|
||||||
|
, BOOST_BINARY( 0000001 )
|
||||||
|
, BOOST_BINARY( 0000010 )
|
||||||
|
, BOOST_BINARY( 0000011 )
|
||||||
|
, BOOST_BINARY( 0000100 )
|
||||||
|
, BOOST_BINARY( 0000101 )
|
||||||
|
, BOOST_BINARY( 0000110 )
|
||||||
|
, BOOST_BINARY( 0000111 )
|
||||||
|
, BOOST_BINARY( 0001000 )
|
||||||
|
, BOOST_BINARY( 0001001 )
|
||||||
|
, BOOST_BINARY( 0001010 )
|
||||||
|
, BOOST_BINARY( 0001011 )
|
||||||
|
, BOOST_BINARY( 0001100 )
|
||||||
|
, BOOST_BINARY( 0001101 )
|
||||||
|
, BOOST_BINARY( 0001110 )
|
||||||
|
, BOOST_BINARY( 0001111 )
|
||||||
|
, BOOST_BINARY( 0010000 )
|
||||||
|
, BOOST_BINARY( 0010001 )
|
||||||
|
, BOOST_BINARY( 0010010 )
|
||||||
|
, BOOST_BINARY( 0010011 )
|
||||||
|
, BOOST_BINARY( 0010100 )
|
||||||
|
, BOOST_BINARY( 0010101 )
|
||||||
|
, BOOST_BINARY( 0010110 )
|
||||||
|
, BOOST_BINARY( 0010111 )
|
||||||
|
, BOOST_BINARY( 0011000 )
|
||||||
|
, BOOST_BINARY( 0011001 )
|
||||||
|
, BOOST_BINARY( 0011010 )
|
||||||
|
, BOOST_BINARY( 0011011 )
|
||||||
|
, BOOST_BINARY( 0011100 )
|
||||||
|
, BOOST_BINARY( 0011101 )
|
||||||
|
, BOOST_BINARY( 0011110 )
|
||||||
|
, BOOST_BINARY( 0011111 )
|
||||||
|
, BOOST_BINARY( 0100000 )
|
||||||
|
, BOOST_BINARY( 0100001 )
|
||||||
|
, BOOST_BINARY( 0100010 )
|
||||||
|
, BOOST_BINARY( 0100011 )
|
||||||
|
, BOOST_BINARY( 0100100 )
|
||||||
|
, BOOST_BINARY( 0100101 )
|
||||||
|
, BOOST_BINARY( 0100110 )
|
||||||
|
, BOOST_BINARY( 0100111 )
|
||||||
|
, BOOST_BINARY( 0101000 )
|
||||||
|
, BOOST_BINARY( 0101001 )
|
||||||
|
, BOOST_BINARY( 0101010 )
|
||||||
|
, BOOST_BINARY( 0101011 )
|
||||||
|
, BOOST_BINARY( 0101100 )
|
||||||
|
, BOOST_BINARY( 0101101 )
|
||||||
|
, BOOST_BINARY( 0101110 )
|
||||||
|
, BOOST_BINARY( 0101111 )
|
||||||
|
, BOOST_BINARY( 0110000 )
|
||||||
|
, BOOST_BINARY( 0110001 )
|
||||||
|
, BOOST_BINARY( 0110010 )
|
||||||
|
, BOOST_BINARY( 0110011 )
|
||||||
|
, BOOST_BINARY( 0110100 )
|
||||||
|
, BOOST_BINARY( 0110101 )
|
||||||
|
, BOOST_BINARY( 0110110 )
|
||||||
|
, BOOST_BINARY( 0110111 )
|
||||||
|
, BOOST_BINARY( 0111000 )
|
||||||
|
, BOOST_BINARY( 0111001 )
|
||||||
|
, BOOST_BINARY( 0111010 )
|
||||||
|
, BOOST_BINARY( 0111011 )
|
||||||
|
, BOOST_BINARY( 0111100 )
|
||||||
|
, BOOST_BINARY( 0111101 )
|
||||||
|
, BOOST_BINARY( 0111110 )
|
||||||
|
, BOOST_BINARY( 0111111 )
|
||||||
|
, BOOST_BINARY( 1000000 )
|
||||||
|
, BOOST_BINARY( 1000001 )
|
||||||
|
, BOOST_BINARY( 1000010 )
|
||||||
|
, BOOST_BINARY( 1000011 )
|
||||||
|
, BOOST_BINARY( 1000100 )
|
||||||
|
, BOOST_BINARY( 1000101 )
|
||||||
|
, BOOST_BINARY( 1000110 )
|
||||||
|
, BOOST_BINARY( 1000111 )
|
||||||
|
, BOOST_BINARY( 1001000 )
|
||||||
|
, BOOST_BINARY( 1001001 )
|
||||||
|
, BOOST_BINARY( 1001010 )
|
||||||
|
, BOOST_BINARY( 1001011 )
|
||||||
|
, BOOST_BINARY( 1001100 )
|
||||||
|
, BOOST_BINARY( 1001101 )
|
||||||
|
, BOOST_BINARY( 1001110 )
|
||||||
|
, BOOST_BINARY( 1001111 )
|
||||||
|
, BOOST_BINARY( 1010000 )
|
||||||
|
, BOOST_BINARY( 1010001 )
|
||||||
|
, BOOST_BINARY( 1010010 )
|
||||||
|
, BOOST_BINARY( 1010011 )
|
||||||
|
, BOOST_BINARY( 1010100 )
|
||||||
|
, BOOST_BINARY( 1010101 )
|
||||||
|
, BOOST_BINARY( 1010110 )
|
||||||
|
, BOOST_BINARY( 1010111 )
|
||||||
|
, BOOST_BINARY( 1011000 )
|
||||||
|
, BOOST_BINARY( 1011001 )
|
||||||
|
, BOOST_BINARY( 1011010 )
|
||||||
|
, BOOST_BINARY( 1011011 )
|
||||||
|
, BOOST_BINARY( 1011100 )
|
||||||
|
, BOOST_BINARY( 1011101 )
|
||||||
|
, BOOST_BINARY( 1011110 )
|
||||||
|
, BOOST_BINARY( 1011111 )
|
||||||
|
, BOOST_BINARY( 1100000 )
|
||||||
|
, BOOST_BINARY( 1100001 )
|
||||||
|
, BOOST_BINARY( 1100010 )
|
||||||
|
, BOOST_BINARY( 1100011 )
|
||||||
|
, BOOST_BINARY( 1100100 )
|
||||||
|
, BOOST_BINARY( 1100101 )
|
||||||
|
, BOOST_BINARY( 1100110 )
|
||||||
|
, BOOST_BINARY( 1100111 )
|
||||||
|
, BOOST_BINARY( 1101000 )
|
||||||
|
, BOOST_BINARY( 1101001 )
|
||||||
|
, BOOST_BINARY( 1101010 )
|
||||||
|
, BOOST_BINARY( 1101011 )
|
||||||
|
, BOOST_BINARY( 1101100 )
|
||||||
|
, BOOST_BINARY( 1101101 )
|
||||||
|
, BOOST_BINARY( 1101110 )
|
||||||
|
, BOOST_BINARY( 1101111 )
|
||||||
|
, BOOST_BINARY( 1110000 )
|
||||||
|
, BOOST_BINARY( 1110001 )
|
||||||
|
, BOOST_BINARY( 1110010 )
|
||||||
|
, BOOST_BINARY( 1110011 )
|
||||||
|
, BOOST_BINARY( 1110100 )
|
||||||
|
, BOOST_BINARY( 1110101 )
|
||||||
|
, BOOST_BINARY( 1110110 )
|
||||||
|
, BOOST_BINARY( 1110111 )
|
||||||
|
, BOOST_BINARY( 1111000 )
|
||||||
|
, BOOST_BINARY( 1111001 )
|
||||||
|
, BOOST_BINARY( 1111010 )
|
||||||
|
, BOOST_BINARY( 1111011 )
|
||||||
|
, BOOST_BINARY( 1111100 )
|
||||||
|
, BOOST_BINARY( 1111101 )
|
||||||
|
, BOOST_BINARY( 1111110 )
|
||||||
|
, BOOST_BINARY( 1111111 )
|
||||||
|
};
|
||||||
|
unsigned int const unsigned_ints_8_bits[256] =
|
||||||
|
{ BOOST_BINARY( 00000000 )
|
||||||
|
, BOOST_BINARY( 00000001 )
|
||||||
|
, BOOST_BINARY( 00000010 )
|
||||||
|
, BOOST_BINARY( 00000011 )
|
||||||
|
, BOOST_BINARY( 00000100 )
|
||||||
|
, BOOST_BINARY( 00000101 )
|
||||||
|
, BOOST_BINARY( 00000110 )
|
||||||
|
, BOOST_BINARY( 00000111 )
|
||||||
|
, BOOST_BINARY( 00001000 )
|
||||||
|
, BOOST_BINARY( 00001001 )
|
||||||
|
, BOOST_BINARY( 00001010 )
|
||||||
|
, BOOST_BINARY( 00001011 )
|
||||||
|
, BOOST_BINARY( 00001100 )
|
||||||
|
, BOOST_BINARY( 00001101 )
|
||||||
|
, BOOST_BINARY( 00001110 )
|
||||||
|
, BOOST_BINARY( 00001111 )
|
||||||
|
, BOOST_BINARY( 00010000 )
|
||||||
|
, BOOST_BINARY( 00010001 )
|
||||||
|
, BOOST_BINARY( 00010010 )
|
||||||
|
, BOOST_BINARY( 00010011 )
|
||||||
|
, BOOST_BINARY( 00010100 )
|
||||||
|
, BOOST_BINARY( 00010101 )
|
||||||
|
, BOOST_BINARY( 00010110 )
|
||||||
|
, BOOST_BINARY( 00010111 )
|
||||||
|
, BOOST_BINARY( 00011000 )
|
||||||
|
, BOOST_BINARY( 00011001 )
|
||||||
|
, BOOST_BINARY( 00011010 )
|
||||||
|
, BOOST_BINARY( 00011011 )
|
||||||
|
, BOOST_BINARY( 00011100 )
|
||||||
|
, BOOST_BINARY( 00011101 )
|
||||||
|
, BOOST_BINARY( 00011110 )
|
||||||
|
, BOOST_BINARY( 00011111 )
|
||||||
|
, BOOST_BINARY( 00100000 )
|
||||||
|
, BOOST_BINARY( 00100001 )
|
||||||
|
, BOOST_BINARY( 00100010 )
|
||||||
|
, BOOST_BINARY( 00100011 )
|
||||||
|
, BOOST_BINARY( 00100100 )
|
||||||
|
, BOOST_BINARY( 00100101 )
|
||||||
|
, BOOST_BINARY( 00100110 )
|
||||||
|
, BOOST_BINARY( 00100111 )
|
||||||
|
, BOOST_BINARY( 00101000 )
|
||||||
|
, BOOST_BINARY( 00101001 )
|
||||||
|
, BOOST_BINARY( 00101010 )
|
||||||
|
, BOOST_BINARY( 00101011 )
|
||||||
|
, BOOST_BINARY( 00101100 )
|
||||||
|
, BOOST_BINARY( 00101101 )
|
||||||
|
, BOOST_BINARY( 00101110 )
|
||||||
|
, BOOST_BINARY( 00101111 )
|
||||||
|
, BOOST_BINARY( 00110000 )
|
||||||
|
, BOOST_BINARY( 00110001 )
|
||||||
|
, BOOST_BINARY( 00110010 )
|
||||||
|
, BOOST_BINARY( 00110011 )
|
||||||
|
, BOOST_BINARY( 00110100 )
|
||||||
|
, BOOST_BINARY( 00110101 )
|
||||||
|
, BOOST_BINARY( 00110110 )
|
||||||
|
, BOOST_BINARY( 00110111 )
|
||||||
|
, BOOST_BINARY( 00111000 )
|
||||||
|
, BOOST_BINARY( 00111001 )
|
||||||
|
, BOOST_BINARY( 00111010 )
|
||||||
|
, BOOST_BINARY( 00111011 )
|
||||||
|
, BOOST_BINARY( 00111100 )
|
||||||
|
, BOOST_BINARY( 00111101 )
|
||||||
|
, BOOST_BINARY( 00111110 )
|
||||||
|
, BOOST_BINARY( 00111111 )
|
||||||
|
, BOOST_BINARY( 01000000 )
|
||||||
|
, BOOST_BINARY( 01000001 )
|
||||||
|
, BOOST_BINARY( 01000010 )
|
||||||
|
, BOOST_BINARY( 01000011 )
|
||||||
|
, BOOST_BINARY( 01000100 )
|
||||||
|
, BOOST_BINARY( 01000101 )
|
||||||
|
, BOOST_BINARY( 01000110 )
|
||||||
|
, BOOST_BINARY( 01000111 )
|
||||||
|
, BOOST_BINARY( 01001000 )
|
||||||
|
, BOOST_BINARY( 01001001 )
|
||||||
|
, BOOST_BINARY( 01001010 )
|
||||||
|
, BOOST_BINARY( 01001011 )
|
||||||
|
, BOOST_BINARY( 01001100 )
|
||||||
|
, BOOST_BINARY( 01001101 )
|
||||||
|
, BOOST_BINARY( 01001110 )
|
||||||
|
, BOOST_BINARY( 01001111 )
|
||||||
|
, BOOST_BINARY( 01010000 )
|
||||||
|
, BOOST_BINARY( 01010001 )
|
||||||
|
, BOOST_BINARY( 01010010 )
|
||||||
|
, BOOST_BINARY( 01010011 )
|
||||||
|
, BOOST_BINARY( 01010100 )
|
||||||
|
, BOOST_BINARY( 01010101 )
|
||||||
|
, BOOST_BINARY( 01010110 )
|
||||||
|
, BOOST_BINARY( 01010111 )
|
||||||
|
, BOOST_BINARY( 01011000 )
|
||||||
|
, BOOST_BINARY( 01011001 )
|
||||||
|
, BOOST_BINARY( 01011010 )
|
||||||
|
, BOOST_BINARY( 01011011 )
|
||||||
|
, BOOST_BINARY( 01011100 )
|
||||||
|
, BOOST_BINARY( 01011101 )
|
||||||
|
, BOOST_BINARY( 01011110 )
|
||||||
|
, BOOST_BINARY( 01011111 )
|
||||||
|
, BOOST_BINARY( 01100000 )
|
||||||
|
, BOOST_BINARY( 01100001 )
|
||||||
|
, BOOST_BINARY( 01100010 )
|
||||||
|
, BOOST_BINARY( 01100011 )
|
||||||
|
, BOOST_BINARY( 01100100 )
|
||||||
|
, BOOST_BINARY( 01100101 )
|
||||||
|
, BOOST_BINARY( 01100110 )
|
||||||
|
, BOOST_BINARY( 01100111 )
|
||||||
|
, BOOST_BINARY( 01101000 )
|
||||||
|
, BOOST_BINARY( 01101001 )
|
||||||
|
, BOOST_BINARY( 01101010 )
|
||||||
|
, BOOST_BINARY( 01101011 )
|
||||||
|
, BOOST_BINARY( 01101100 )
|
||||||
|
, BOOST_BINARY( 01101101 )
|
||||||
|
, BOOST_BINARY( 01101110 )
|
||||||
|
, BOOST_BINARY( 01101111 )
|
||||||
|
, BOOST_BINARY( 01110000 )
|
||||||
|
, BOOST_BINARY( 01110001 )
|
||||||
|
, BOOST_BINARY( 01110010 )
|
||||||
|
, BOOST_BINARY( 01110011 )
|
||||||
|
, BOOST_BINARY( 01110100 )
|
||||||
|
, BOOST_BINARY( 01110101 )
|
||||||
|
, BOOST_BINARY( 01110110 )
|
||||||
|
, BOOST_BINARY( 01110111 )
|
||||||
|
, BOOST_BINARY( 01111000 )
|
||||||
|
, BOOST_BINARY( 01111001 )
|
||||||
|
, BOOST_BINARY( 01111010 )
|
||||||
|
, BOOST_BINARY( 01111011 )
|
||||||
|
, BOOST_BINARY( 01111100 )
|
||||||
|
, BOOST_BINARY( 01111101 )
|
||||||
|
, BOOST_BINARY( 01111110 )
|
||||||
|
, BOOST_BINARY( 01111111 )
|
||||||
|
, BOOST_BINARY( 10000000 )
|
||||||
|
, BOOST_BINARY( 10000001 )
|
||||||
|
, BOOST_BINARY( 10000010 )
|
||||||
|
, BOOST_BINARY( 10000011 )
|
||||||
|
, BOOST_BINARY( 10000100 )
|
||||||
|
, BOOST_BINARY( 10000101 )
|
||||||
|
, BOOST_BINARY( 10000110 )
|
||||||
|
, BOOST_BINARY( 10000111 )
|
||||||
|
, BOOST_BINARY( 10001000 )
|
||||||
|
, BOOST_BINARY( 10001001 )
|
||||||
|
, BOOST_BINARY( 10001010 )
|
||||||
|
, BOOST_BINARY( 10001011 )
|
||||||
|
, BOOST_BINARY( 10001100 )
|
||||||
|
, BOOST_BINARY( 10001101 )
|
||||||
|
, BOOST_BINARY( 10001110 )
|
||||||
|
, BOOST_BINARY( 10001111 )
|
||||||
|
, BOOST_BINARY( 10010000 )
|
||||||
|
, BOOST_BINARY( 10010001 )
|
||||||
|
, BOOST_BINARY( 10010010 )
|
||||||
|
, BOOST_BINARY( 10010011 )
|
||||||
|
, BOOST_BINARY( 10010100 )
|
||||||
|
, BOOST_BINARY( 10010101 )
|
||||||
|
, BOOST_BINARY( 10010110 )
|
||||||
|
, BOOST_BINARY( 10010111 )
|
||||||
|
, BOOST_BINARY( 10011000 )
|
||||||
|
, BOOST_BINARY( 10011001 )
|
||||||
|
, BOOST_BINARY( 10011010 )
|
||||||
|
, BOOST_BINARY( 10011011 )
|
||||||
|
, BOOST_BINARY( 10011100 )
|
||||||
|
, BOOST_BINARY( 10011101 )
|
||||||
|
, BOOST_BINARY( 10011110 )
|
||||||
|
, BOOST_BINARY( 10011111 )
|
||||||
|
, BOOST_BINARY( 10100000 )
|
||||||
|
, BOOST_BINARY( 10100001 )
|
||||||
|
, BOOST_BINARY( 10100010 )
|
||||||
|
, BOOST_BINARY( 10100011 )
|
||||||
|
, BOOST_BINARY( 10100100 )
|
||||||
|
, BOOST_BINARY( 10100101 )
|
||||||
|
, BOOST_BINARY( 10100110 )
|
||||||
|
, BOOST_BINARY( 10100111 )
|
||||||
|
, BOOST_BINARY( 10101000 )
|
||||||
|
, BOOST_BINARY( 10101001 )
|
||||||
|
, BOOST_BINARY( 10101010 )
|
||||||
|
, BOOST_BINARY( 10101011 )
|
||||||
|
, BOOST_BINARY( 10101100 )
|
||||||
|
, BOOST_BINARY( 10101101 )
|
||||||
|
, BOOST_BINARY( 10101110 )
|
||||||
|
, BOOST_BINARY( 10101111 )
|
||||||
|
, BOOST_BINARY( 10110000 )
|
||||||
|
, BOOST_BINARY( 10110001 )
|
||||||
|
, BOOST_BINARY( 10110010 )
|
||||||
|
, BOOST_BINARY( 10110011 )
|
||||||
|
, BOOST_BINARY( 10110100 )
|
||||||
|
, BOOST_BINARY( 10110101 )
|
||||||
|
, BOOST_BINARY( 10110110 )
|
||||||
|
, BOOST_BINARY( 10110111 )
|
||||||
|
, BOOST_BINARY( 10111000 )
|
||||||
|
, BOOST_BINARY( 10111001 )
|
||||||
|
, BOOST_BINARY( 10111010 )
|
||||||
|
, BOOST_BINARY( 10111011 )
|
||||||
|
, BOOST_BINARY( 10111100 )
|
||||||
|
, BOOST_BINARY( 10111101 )
|
||||||
|
, BOOST_BINARY( 10111110 )
|
||||||
|
, BOOST_BINARY( 10111111 )
|
||||||
|
, BOOST_BINARY( 11000000 )
|
||||||
|
, BOOST_BINARY( 11000001 )
|
||||||
|
, BOOST_BINARY( 11000010 )
|
||||||
|
, BOOST_BINARY( 11000011 )
|
||||||
|
, BOOST_BINARY( 11000100 )
|
||||||
|
, BOOST_BINARY( 11000101 )
|
||||||
|
, BOOST_BINARY( 11000110 )
|
||||||
|
, BOOST_BINARY( 11000111 )
|
||||||
|
, BOOST_BINARY( 11001000 )
|
||||||
|
, BOOST_BINARY( 11001001 )
|
||||||
|
, BOOST_BINARY( 11001010 )
|
||||||
|
, BOOST_BINARY( 11001011 )
|
||||||
|
, BOOST_BINARY( 11001100 )
|
||||||
|
, BOOST_BINARY( 11001101 )
|
||||||
|
, BOOST_BINARY( 11001110 )
|
||||||
|
, BOOST_BINARY( 11001111 )
|
||||||
|
, BOOST_BINARY( 11010000 )
|
||||||
|
, BOOST_BINARY( 11010001 )
|
||||||
|
, BOOST_BINARY( 11010010 )
|
||||||
|
, BOOST_BINARY( 11010011 )
|
||||||
|
, BOOST_BINARY( 11010100 )
|
||||||
|
, BOOST_BINARY( 11010101 )
|
||||||
|
, BOOST_BINARY( 11010110 )
|
||||||
|
, BOOST_BINARY( 11010111 )
|
||||||
|
, BOOST_BINARY( 11011000 )
|
||||||
|
, BOOST_BINARY( 11011001 )
|
||||||
|
, BOOST_BINARY( 11011010 )
|
||||||
|
, BOOST_BINARY( 11011011 )
|
||||||
|
, BOOST_BINARY( 11011100 )
|
||||||
|
, BOOST_BINARY( 11011101 )
|
||||||
|
, BOOST_BINARY( 11011110 )
|
||||||
|
, BOOST_BINARY( 11011111 )
|
||||||
|
, BOOST_BINARY( 11100000 )
|
||||||
|
, BOOST_BINARY( 11100001 )
|
||||||
|
, BOOST_BINARY( 11100010 )
|
||||||
|
, BOOST_BINARY( 11100011 )
|
||||||
|
, BOOST_BINARY( 11100100 )
|
||||||
|
, BOOST_BINARY( 11100101 )
|
||||||
|
, BOOST_BINARY( 11100110 )
|
||||||
|
, BOOST_BINARY( 11100111 )
|
||||||
|
, BOOST_BINARY( 11101000 )
|
||||||
|
, BOOST_BINARY( 11101001 )
|
||||||
|
, BOOST_BINARY( 11101010 )
|
||||||
|
, BOOST_BINARY( 11101011 )
|
||||||
|
, BOOST_BINARY( 11101100 )
|
||||||
|
, BOOST_BINARY( 11101101 )
|
||||||
|
, BOOST_BINARY( 11101110 )
|
||||||
|
, BOOST_BINARY( 11101111 )
|
||||||
|
, BOOST_BINARY( 11110000 )
|
||||||
|
, BOOST_BINARY( 11110001 )
|
||||||
|
, BOOST_BINARY( 11110010 )
|
||||||
|
, BOOST_BINARY( 11110011 )
|
||||||
|
, BOOST_BINARY( 11110100 )
|
||||||
|
, BOOST_BINARY( 11110101 )
|
||||||
|
, BOOST_BINARY( 11110110 )
|
||||||
|
, BOOST_BINARY( 11110111 )
|
||||||
|
, BOOST_BINARY( 11111000 )
|
||||||
|
, BOOST_BINARY( 11111001 )
|
||||||
|
, BOOST_BINARY( 11111010 )
|
||||||
|
, BOOST_BINARY( 11111011 )
|
||||||
|
, BOOST_BINARY( 11111100 )
|
||||||
|
, BOOST_BINARY( 11111101 )
|
||||||
|
, BOOST_BINARY( 11111110 )
|
||||||
|
, BOOST_BINARY( 11111111 )
|
||||||
|
};
|
||||||
|
|
||||||
|
struct left_is_not_one_less_than_right
|
||||||
|
{
|
||||||
|
bool operator ()( unsigned int left, unsigned int right ) const
|
||||||
|
{
|
||||||
|
return right != left + 1;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
template< std::size_t Size >
|
||||||
|
bool is_ascending_from_0_array( unsigned int const (&array)[Size] )
|
||||||
|
{
|
||||||
|
unsigned int const* const curr = array,
|
||||||
|
* const end = array + Size;
|
||||||
|
|
||||||
|
return ( *curr == 0 )
|
||||||
|
&& ( std::adjacent_find( curr, end
|
||||||
|
, left_is_not_one_less_than_right()
|
||||||
|
)
|
||||||
|
== end
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
std::size_t const unsigned_int_id = 1,
|
||||||
|
unsigned_long_int_id = 2;
|
||||||
|
|
||||||
|
typedef char (&unsigned_int_id_type)[unsigned_int_id];
|
||||||
|
typedef char (&unsigned_long_int_id_type)[unsigned_long_int_id];
|
||||||
|
|
||||||
|
// Note: Functions only used for type checking
|
||||||
|
unsigned_int_id_type binary_type_checker( unsigned int );
|
||||||
|
unsigned_long_int_id_type binary_type_checker( unsigned long int );
|
||||||
|
|
||||||
|
int test_main( int, char *[] )
|
||||||
|
{
|
||||||
|
BOOST_CHECK( is_ascending_from_0_array( unsigned_ints_1_bit ) );
|
||||||
|
BOOST_CHECK( is_ascending_from_0_array( unsigned_ints_2_bits ) );
|
||||||
|
BOOST_CHECK( is_ascending_from_0_array( unsigned_ints_3_bits ) );
|
||||||
|
BOOST_CHECK( is_ascending_from_0_array( unsigned_ints_4_bits ) );
|
||||||
|
BOOST_CHECK( is_ascending_from_0_array( unsigned_ints_5_bits ) );
|
||||||
|
BOOST_CHECK( is_ascending_from_0_array( unsigned_ints_6_bits ) );
|
||||||
|
BOOST_CHECK( is_ascending_from_0_array( unsigned_ints_7_bits ) );
|
||||||
|
BOOST_CHECK( is_ascending_from_0_array( unsigned_ints_8_bits ) );
|
||||||
|
|
||||||
|
BOOST_CHECK( std::equal( &random_unsigned_ints_hex[0]
|
||||||
|
, random_unsigned_ints_hex + num_random_test_values
|
||||||
|
, &random_unsigned_ints_binary[0]
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
BOOST_CHECK( sizeof( binary_type_checker( BOOST_BINARY_U( 110100 1010 ) ) )
|
||||||
|
== unsigned_int_id
|
||||||
|
);
|
||||||
|
|
||||||
|
BOOST_CHECK( sizeof( binary_type_checker( BOOST_BINARY_UL( 11110 ) ) )
|
||||||
|
== unsigned_long_int_id
|
||||||
|
);
|
||||||
|
|
||||||
|
BOOST_CHECK( sizeof( binary_type_checker( BOOST_BINARY_LU( 10 0001 ) ) )
|
||||||
|
== unsigned_long_int_id
|
||||||
|
);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
@ -6,7 +6,7 @@
|
|||||||
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// Authors: Jaakko J<EFBFBD>rvi (jajarvi at osl.iu.edu)
|
// Authors: Jaakko Jarvi (jajarvi at osl.iu.edu)
|
||||||
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
||||||
// Andrew Lumsdaine (lums at osl.iu.edu)
|
// Andrew Lumsdaine (lums at osl.iu.edu)
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// Authors: Jaakko J<EFBFBD>rvi (jajarvi at osl.iu.edu)
|
// Authors: Jaakko Jarvi (jajarvi at osl.iu.edu)
|
||||||
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
||||||
// Andrew Lumsdaine (lums at osl.iu.edu)
|
// Andrew Lumsdaine (lums at osl.iu.edu)
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// Authors: Jaakko J<EFBFBD>rvi (jajarvi at osl.iu.edu)
|
// Authors: Jaakko Jarvi (jajarvi at osl.iu.edu)
|
||||||
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
||||||
// Andrew Lumsdaine (lums at osl.iu.edu)
|
// Andrew Lumsdaine (lums at osl.iu.edu)
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// Authors: Jaakko J<EFBFBD>rvi (jajarvi at osl.iu.edu)
|
// Authors: Jaakko Jarvi (jajarvi at osl.iu.edu)
|
||||||
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
||||||
// Andrew Lumsdaine (lums at osl.iu.edu)
|
// Andrew Lumsdaine (lums at osl.iu.edu)
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// Authors: Jaakko J<EFBFBD>rvi (jajarvi at osl.iu.edu)
|
// Authors: Jaakko Jarvi (jajarvi at osl.iu.edu)
|
||||||
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
||||||
// Andrew Lumsdaine (lums at osl.iu.edu)
|
// Andrew Lumsdaine (lums at osl.iu.edu)
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// Authors: Jaakko J<EFBFBD>rvi (jajarvi at osl.iu.edu)
|
// Authors: Jaakko Jarvi (jajarvi at osl.iu.edu)
|
||||||
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
||||||
// Andrew Lumsdaine (lums at osl.iu.edu)
|
// Andrew Lumsdaine (lums at osl.iu.edu)
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// Authors: Jaakko J<EFBFBD>rvi (jajarvi at osl.iu.edu)
|
// Authors: Jaakko Jarvi (jajarvi at osl.iu.edu)
|
||||||
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
||||||
// Andrew Lumsdaine (lums at osl.iu.edu)
|
// Andrew Lumsdaine (lums at osl.iu.edu)
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// Authors: Jaakko J<EFBFBD>rvi (jajarvi at osl.iu.edu)
|
// Authors: Jaakko Jarvi (jajarvi at osl.iu.edu)
|
||||||
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
||||||
// Andrew Lumsdaine (lums at osl.iu.edu)
|
// Andrew Lumsdaine (lums at osl.iu.edu)
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ struct call_traits<T&>
|
|||||||
typedef T& param_type; // hh removed const
|
typedef T& param_type; // hh removed const
|
||||||
};
|
};
|
||||||
|
|
||||||
#if BOOST_WORKAROUND( __BORLANDC__, BOOST_TESTED_AT( 0x581 ) )
|
#if BOOST_WORKAROUND( __BORLANDC__, < 0x5A0 )
|
||||||
// these are illegal specialisations; cv-qualifies applied to
|
// these are illegal specialisations; cv-qualifies applied to
|
||||||
// references have no effect according to [8.3.2p1],
|
// references have no effect according to [8.3.2p1],
|
||||||
// C++ Builder requires them though as it treats cv-qualified
|
// C++ Builder requires them though as it treats cv-qualified
|
||||||
|
@ -6,8 +6,12 @@
|
|||||||
#ifndef UUID_1D94A7C6054E11DB9804B622A1EF5492
|
#ifndef UUID_1D94A7C6054E11DB9804B622A1EF5492
|
||||||
#define UUID_1D94A7C6054E11DB9804B622A1EF5492
|
#define UUID_1D94A7C6054E11DB9804B622A1EF5492
|
||||||
|
|
||||||
|
#include <boost/exception/diagnostic_information.hpp>
|
||||||
|
#include <boost/exception/error_info.hpp>
|
||||||
|
#include <boost/exception/exception.hpp>
|
||||||
|
#include <boost/exception/get_error_info.hpp>
|
||||||
|
#include <boost/exception/info.hpp>
|
||||||
#include <boost/exception/info_tuple.hpp>
|
#include <boost/exception/info_tuple.hpp>
|
||||||
#include <boost/exception_ptr.hpp>
|
#include <boost/exception_ptr.hpp>
|
||||||
#include <boost/throw_exception.hpp>
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
// See http://www.boost.org/libs/utility/operators.htm for documentation.
|
// See http://www.boost.org/libs/utility/operators.htm for documentation.
|
||||||
|
|
||||||
// Revision History
|
// Revision History
|
||||||
|
// 07 Aug 08 Added "euclidean" spelling. (Daniel Frey)
|
||||||
// 03 Apr 08 Make sure "convertible to bool" is sufficient
|
// 03 Apr 08 Make sure "convertible to bool" is sufficient
|
||||||
// for T::operator<, etc. (Daniel Frey)
|
// for T::operator<, etc. (Daniel Frey)
|
||||||
// 24 May 07 Changed empty_base to depend on T, see
|
// 24 May 07 Changed empty_base to depend on T, see
|
||||||
@ -582,7 +583,35 @@ struct ordered_euclidian_ring_operators1
|
|||||||
: totally_ordered1<T
|
: totally_ordered1<T
|
||||||
, euclidian_ring_operators1<T, B
|
, euclidian_ring_operators1<T, B
|
||||||
> > {};
|
> > {};
|
||||||
|
|
||||||
|
template <class T, class U, class B = ::boost::detail::empty_base<T> >
|
||||||
|
struct euclidean_ring_operators2
|
||||||
|
: ring_operators2<T, U
|
||||||
|
, dividable2<T, U
|
||||||
|
, dividable2_left<T, U
|
||||||
|
, modable2<T, U
|
||||||
|
, modable2_left<T, U, B
|
||||||
|
> > > > > {};
|
||||||
|
|
||||||
|
template <class T, class B = ::boost::detail::empty_base<T> >
|
||||||
|
struct euclidean_ring_operators1
|
||||||
|
: ring_operators1<T
|
||||||
|
, dividable1<T
|
||||||
|
, modable1<T, B
|
||||||
|
> > > {};
|
||||||
|
|
||||||
|
template <class T, class U, class B = ::boost::detail::empty_base<T> >
|
||||||
|
struct ordered_euclidean_ring_operators2
|
||||||
|
: totally_ordered2<T, U
|
||||||
|
, euclidean_ring_operators2<T, U, B
|
||||||
|
> > {};
|
||||||
|
|
||||||
|
template <class T, class B = ::boost::detail::empty_base<T> >
|
||||||
|
struct ordered_euclidean_ring_operators1
|
||||||
|
: totally_ordered1<T
|
||||||
|
, euclidean_ring_operators1<T, B
|
||||||
|
> > {};
|
||||||
|
|
||||||
template <class T, class P, class B = ::boost::detail::empty_base<T> >
|
template <class T, class P, class B = ::boost::detail::empty_base<T> >
|
||||||
struct input_iteratable
|
struct input_iteratable
|
||||||
: equality_comparable1<T
|
: equality_comparable1<T
|
||||||
@ -839,6 +868,8 @@ BOOST_OPERATOR_TEMPLATE(field_operators)
|
|||||||
BOOST_OPERATOR_TEMPLATE(ordered_field_operators)
|
BOOST_OPERATOR_TEMPLATE(ordered_field_operators)
|
||||||
BOOST_OPERATOR_TEMPLATE(euclidian_ring_operators)
|
BOOST_OPERATOR_TEMPLATE(euclidian_ring_operators)
|
||||||
BOOST_OPERATOR_TEMPLATE(ordered_euclidian_ring_operators)
|
BOOST_OPERATOR_TEMPLATE(ordered_euclidian_ring_operators)
|
||||||
|
BOOST_OPERATOR_TEMPLATE(euclidean_ring_operators)
|
||||||
|
BOOST_OPERATOR_TEMPLATE(ordered_euclidean_ring_operators)
|
||||||
BOOST_OPERATOR_TEMPLATE2(input_iteratable)
|
BOOST_OPERATOR_TEMPLATE2(input_iteratable)
|
||||||
BOOST_OPERATOR_TEMPLATE1(output_iteratable)
|
BOOST_OPERATOR_TEMPLATE1(output_iteratable)
|
||||||
BOOST_OPERATOR_TEMPLATE2(forward_iteratable)
|
BOOST_OPERATOR_TEMPLATE2(forward_iteratable)
|
||||||
|
@ -15,7 +15,7 @@
|
|||||||
//
|
//
|
||||||
// ref.hpp - ref/cref, useful helper functions
|
// ref.hpp - ref/cref, useful helper functions
|
||||||
//
|
//
|
||||||
// Copyright (C) 1999, 2000 Jaakko J<EFBFBD>rvi (jaakko.jarvi@cs.utu.fi)
|
// Copyright (C) 1999, 2000 Jaakko Jarvi (jaakko.jarvi@cs.utu.fi)
|
||||||
// Copyright (C) 2001, 2002 Peter Dimov
|
// Copyright (C) 2001, 2002 Peter Dimov
|
||||||
// Copyright (C) 2002 David Abrahams
|
// Copyright (C) 2002 David Abrahams
|
||||||
//
|
//
|
||||||
@ -173,6 +173,12 @@ class unwrap_reference
|
|||||||
|
|
||||||
# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
# endif // BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
|
||||||
|
|
||||||
|
template <class T> inline typename unwrap_reference<T>::type&
|
||||||
|
unwrap_ref(T& t)
|
||||||
|
{
|
||||||
|
return t;
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace boost
|
} // namespace boost
|
||||||
|
|
||||||
#endif // #ifndef BOOST_REF_HPP_INCLUDED
|
#endif // #ifndef BOOST_REF_HPP_INCLUDED
|
||||||
|
@ -10,7 +10,8 @@
|
|||||||
#define BOOST_UTILITY_HPP
|
#define BOOST_UTILITY_HPP
|
||||||
|
|
||||||
#include <boost/utility/addressof.hpp>
|
#include <boost/utility/addressof.hpp>
|
||||||
#include <boost/utility/base_from_member.hpp>
|
#include <boost/utility/base_from_member.hpp>
|
||||||
|
#include <boost/utility/binary.hpp>
|
||||||
#include <boost/utility/enable_if.hpp>
|
#include <boost/utility/enable_if.hpp>
|
||||||
#include <boost/checked_delete.hpp>
|
#include <boost/checked_delete.hpp>
|
||||||
#include <boost/next_prior.hpp>
|
#include <boost/next_prior.hpp>
|
||||||
|
708
include/boost/utility/binary.hpp
Normal file
708
include/boost/utility/binary.hpp
Normal file
@ -0,0 +1,708 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
Copyright (c) 2005 Matthew Calabrese
|
||||||
|
|
||||||
|
Use, modification and distribution is subject to 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)
|
||||||
|
==============================================================================*/
|
||||||
|
|
||||||
|
#ifndef BOOST_UTILITY_BINARY_HPP
|
||||||
|
#define BOOST_UTILITY_BINARY_HPP
|
||||||
|
|
||||||
|
/*=============================================================================
|
||||||
|
|
||||||
|
Binary Literal Utility
|
||||||
|
______________________
|
||||||
|
|
||||||
|
|
||||||
|
The following code works by converting the input bit pattern into a
|
||||||
|
Boost.Preprocessor sequence, then converting groupings of 3 bits each into
|
||||||
|
the corresponding octal digit, and finally concatenating all of the digits
|
||||||
|
together along with a leading zero. This yields a standard octal literal
|
||||||
|
with the desired value as specified in bits.
|
||||||
|
|
||||||
|
==============================================================================*/
|
||||||
|
|
||||||
|
#include <boost/preprocessor/control/deduce_d.hpp>
|
||||||
|
#include <boost/preprocessor/facilities/identity.hpp>
|
||||||
|
#include <boost/preprocessor/cat.hpp>
|
||||||
|
#include <boost/preprocessor/seq/cat.hpp>
|
||||||
|
#include <boost/preprocessor/seq/transform.hpp>
|
||||||
|
#include <boost/preprocessor/arithmetic/mod.hpp>
|
||||||
|
#include <boost/preprocessor/seq/size.hpp>
|
||||||
|
#include <boost/preprocessor/facilities/empty.hpp>
|
||||||
|
#include <boost/preprocessor/control/while.hpp>
|
||||||
|
|
||||||
|
#define BOOST_BINARY( bit_groupings ) \
|
||||||
|
BOOST_BINARY_LITERAL_D( BOOST_PP_DEDUCE_D(), bit_groupings )
|
||||||
|
|
||||||
|
#define BOOST_BINARY_U( bit_groupings ) \
|
||||||
|
BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, U )
|
||||||
|
|
||||||
|
#define BOOST_BINARY_L( bit_groupings ) \
|
||||||
|
BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, L )
|
||||||
|
|
||||||
|
#define BOOST_BINARY_UL( bit_groupings ) \
|
||||||
|
BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, UL )
|
||||||
|
|
||||||
|
#define BOOST_BINARY_LU( bit_groupings ) \
|
||||||
|
BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LU )
|
||||||
|
|
||||||
|
#define BOOST_BINARY_LL( bit_groupings ) \
|
||||||
|
BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LL )
|
||||||
|
|
||||||
|
#define BOOST_BINARY_ULL( bit_groupings ) \
|
||||||
|
BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, ULL )
|
||||||
|
|
||||||
|
#define BOOST_BINARY_LLU( bit_groupings ) \
|
||||||
|
BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, LLU )
|
||||||
|
|
||||||
|
#define BOOST_SUFFIXED_BINARY_LITERAL( bit_groupings, suffix ) \
|
||||||
|
BOOST_SUFFIXED_BINARY_LITERAL_D( BOOST_PP_DEDUCE_D(), bit_groupings, suffix )
|
||||||
|
|
||||||
|
#define BOOST_SUFFIXED_BINARY_LITERAL_D( d, bit_groupings, suffix ) \
|
||||||
|
BOOST_PP_CAT( BOOST_BINARY_LITERAL_D( d, bit_groupings ), suffix )
|
||||||
|
|
||||||
|
#define BOOST_BINARY_LITERAL_D( d, bit_groupings ) \
|
||||||
|
BOOST_PP_SEQ_CAT \
|
||||||
|
( (0) BOOST_DETAIL_CREATE_BINARY_LITERAL_OCTAL_SEQUENCE( d, bit_groupings ) \
|
||||||
|
)
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_CREATE_BINARY_LITERAL_OCTAL_SEQUENCE( d, bit_groupings ) \
|
||||||
|
BOOST_PP_SEQ_TRANSFORM \
|
||||||
|
( BOOST_DETAIL_TRIPLE_TO_OCTAL_OPERATION \
|
||||||
|
, BOOST_PP_NIL \
|
||||||
|
, BOOST_PP_IDENTITY( BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_TRIPLE_SEQUENCE )()\
|
||||||
|
( BOOST_DETAIL_COMPLETE_TRIPLE_SEQUENCE \
|
||||||
|
( \
|
||||||
|
d \
|
||||||
|
, BOOST_DETAIL_CREATE_BINARY_LITERAL_BIT_SEQUENCE( d, bit_groupings ) \
|
||||||
|
) \
|
||||||
|
) \
|
||||||
|
)
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_TRIPLE_SEQUENCE( bit_sequence ) \
|
||||||
|
BOOST_PP_CAT \
|
||||||
|
( BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1 bit_sequence \
|
||||||
|
, END_BIT \
|
||||||
|
)
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_BITS_PER_OCTIT 3
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_COMPLETE_TRIPLE_SEQUENCE( d, incomplete_nibble_sequence ) \
|
||||||
|
BOOST_PP_CAT \
|
||||||
|
( BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_ \
|
||||||
|
, BOOST_PP_MOD_D( d \
|
||||||
|
, BOOST_PP_SEQ_SIZE( incomplete_nibble_sequence ) \
|
||||||
|
, BOOST_DETAIL_BITS_PER_OCTIT \
|
||||||
|
) \
|
||||||
|
) \
|
||||||
|
incomplete_nibble_sequence
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_FIXED_COMPL( bit ) \
|
||||||
|
BOOST_PP_CAT( BOOST_DETAIL_FIXED_COMPL_, bit )
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_FIXED_COMPL_0 1
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_FIXED_COMPL_1 0
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_CREATE_BINARY_LITERAL_BIT_SEQUENCE( d, bit_groupings ) \
|
||||||
|
BOOST_PP_EMPTY \
|
||||||
|
BOOST_PP_CAT( BOOST_PP_WHILE_, d ) \
|
||||||
|
( BOOST_DETAIL_BINARY_LITERAL_PREDICATE \
|
||||||
|
, BOOST_DETAIL_BINARY_LITERAL_OPERATION \
|
||||||
|
, bit_groupings () \
|
||||||
|
)
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_PREDICATE( d, state ) \
|
||||||
|
BOOST_DETAIL_FIXED_COMPL( BOOST_DETAIL_IS_NULLARY_ARGS( state ) )
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_OPERATION( d, state ) \
|
||||||
|
BOOST_DETAIL_SPLIT_AND_SWAP \
|
||||||
|
( BOOST_PP_CAT( BOOST_DETAIL_BINARY_LITERAL_ELEMENT_, state ) )
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_TRIPLE_TO_OCTAL_OPERATION( s, dummy_param, tuple ) \
|
||||||
|
BOOST_DETAIL_TERNARY_TRIPLE_TO_OCTAL tuple
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_TERNARY_TRIPLE_TO_OCTAL( bit2, bit1, bit0 ) \
|
||||||
|
BOOST_DETAIL_TRIPLE_TO_OCTAL_ ## bit2 ## bit1 ## bit0
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_1 (0)(0)
|
||||||
|
#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_2 (0)
|
||||||
|
#define BOOST_DETAIL_CREATE_TRIPLE_COMPLETION_SEQUENCE_0
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1END_BIT
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1( bit ) \
|
||||||
|
( ( bit, BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_2
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_2( bit ) \
|
||||||
|
bit, BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_3
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_3( bit ) \
|
||||||
|
bit ) ) BOOST_DETAIL_CONVERT_BIT_SEQUENCE_TO_PARENTHETIC_TUPLE_1
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_SPLIT_AND_SWAP( params ) \
|
||||||
|
BOOST_PP_IDENTITY( BOOST_DETAIL_SPLIT_AND_SWAP_PARAMS )()( params )
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_SPLIT_AND_SWAP_PARAMS( first_param, second_param ) \
|
||||||
|
second_param first_param
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_LEFT_OF_COMMA( params ) \
|
||||||
|
BOOST_PP_IDENTITY( BOOST_DETAIL_FIRST_MACRO_PARAM )()( params )
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_FIRST_MACRO_PARAM( first_param, second_param ) \
|
||||||
|
first_param
|
||||||
|
|
||||||
|
/* Begin derived concepts from Chaos by Paul Mensonides */
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_IS_NULLARY_ARGS( param ) \
|
||||||
|
BOOST_DETAIL_LEFT_OF_COMMA \
|
||||||
|
( BOOST_PP_CAT( BOOST_DETAIL_IS_NULLARY_ARGS_R_ \
|
||||||
|
, BOOST_DETAIL_IS_NULLARY_ARGS_C param \
|
||||||
|
) \
|
||||||
|
)
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_IS_NULLARY_ARGS_C() \
|
||||||
|
1
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_IS_NULLARY_ARGS_R_1 \
|
||||||
|
1, BOOST_PP_NIL
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_IS_NULLARY_ARGS_R_BOOST_DETAIL_IS_NULLARY_ARGS_C \
|
||||||
|
0, BOOST_PP_NIL
|
||||||
|
|
||||||
|
/* End derived concepts from Chaos by Paul Mensonides */
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_TRIPLE_TO_OCTAL_000 0
|
||||||
|
#define BOOST_DETAIL_TRIPLE_TO_OCTAL_001 1
|
||||||
|
#define BOOST_DETAIL_TRIPLE_TO_OCTAL_010 2
|
||||||
|
#define BOOST_DETAIL_TRIPLE_TO_OCTAL_011 3
|
||||||
|
#define BOOST_DETAIL_TRIPLE_TO_OCTAL_100 4
|
||||||
|
#define BOOST_DETAIL_TRIPLE_TO_OCTAL_101 5
|
||||||
|
#define BOOST_DETAIL_TRIPLE_TO_OCTAL_110 6
|
||||||
|
#define BOOST_DETAIL_TRIPLE_TO_OCTAL_111 7
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0 (0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1 (1),
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00 (0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01 (0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10 (1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11 (1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00 (0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01 (0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10 (1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11 (1)(1),
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000 (0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001 (0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010 (0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011 (0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100 (1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101 (1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110 (1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111 (1)(1)(1),
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000 (0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001 (0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010 (0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011 (0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100 (0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101 (0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110 (0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111 (0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000 (1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001 (1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010 (1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011 (1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100 (1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101 (1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110 (1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111 (1)(1)(1)(1),
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000 (0)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001 (0)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010 (0)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011 (0)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100 (0)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101 (0)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110 (0)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111 (0)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000 (0)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001 (0)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010 (0)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011 (0)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100 (0)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101 (0)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110 (0)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111 (0)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000 (1)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001 (1)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010 (1)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011 (1)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100 (1)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101 (1)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110 (1)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111 (1)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000 (1)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001 (1)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010 (1)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011 (1)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100 (1)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101 (1)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110 (1)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111 (1)(1)(1)(1)(1),
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000000 (0)(0)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000001 (0)(0)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000010 (0)(0)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000011 (0)(0)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000100 (0)(0)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000101 (0)(0)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000110 (0)(0)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_000111 (0)(0)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001000 (0)(0)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001001 (0)(0)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001010 (0)(0)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001011 (0)(0)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001100 (0)(0)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001101 (0)(0)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001110 (0)(0)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_001111 (0)(0)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010000 (0)(1)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010001 (0)(1)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010010 (0)(1)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010011 (0)(1)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010100 (0)(1)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010101 (0)(1)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010110 (0)(1)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_010111 (0)(1)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011000 (0)(1)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011001 (0)(1)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011010 (0)(1)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011011 (0)(1)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011100 (0)(1)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011101 (0)(1)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011110 (0)(1)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_011111 (0)(1)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100000 (1)(0)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100001 (1)(0)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100010 (1)(0)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100011 (1)(0)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100100 (1)(0)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100101 (1)(0)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100110 (1)(0)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_100111 (1)(0)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101000 (1)(0)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101001 (1)(0)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101010 (1)(0)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101011 (1)(0)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101100 (1)(0)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101101 (1)(0)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101110 (1)(0)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_101111 (1)(0)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110000 (1)(1)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110001 (1)(1)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110010 (1)(1)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110011 (1)(1)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110100 (1)(1)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110101 (1)(1)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110110 (1)(1)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_110111 (1)(1)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111000 (1)(1)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111001 (1)(1)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111010 (1)(1)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111011 (1)(1)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111100 (1)(1)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111101 (1)(1)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111110 (1)(1)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_111111 (1)(1)(1)(1)(1)(1),
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000000 (0)(0)(0)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000001 (0)(0)(0)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000010 (0)(0)(0)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000011 (0)(0)(0)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000100 (0)(0)(0)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000101 (0)(0)(0)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000110 (0)(0)(0)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0000111 (0)(0)(0)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001000 (0)(0)(0)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001001 (0)(0)(0)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001010 (0)(0)(0)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001011 (0)(0)(0)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001100 (0)(0)(0)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001101 (0)(0)(0)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001110 (0)(0)(0)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0001111 (0)(0)(0)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010000 (0)(0)(1)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010001 (0)(0)(1)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010010 (0)(0)(1)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010011 (0)(0)(1)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010100 (0)(0)(1)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010101 (0)(0)(1)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010110 (0)(0)(1)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0010111 (0)(0)(1)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011000 (0)(0)(1)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011001 (0)(0)(1)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011010 (0)(0)(1)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011011 (0)(0)(1)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011100 (0)(0)(1)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011101 (0)(0)(1)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011110 (0)(0)(1)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0011111 (0)(0)(1)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100000 (0)(1)(0)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100001 (0)(1)(0)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100010 (0)(1)(0)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100011 (0)(1)(0)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100100 (0)(1)(0)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100101 (0)(1)(0)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100110 (0)(1)(0)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0100111 (0)(1)(0)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101000 (0)(1)(0)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101001 (0)(1)(0)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101010 (0)(1)(0)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101011 (0)(1)(0)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101100 (0)(1)(0)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101101 (0)(1)(0)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101110 (0)(1)(0)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0101111 (0)(1)(0)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110000 (0)(1)(1)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110001 (0)(1)(1)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110010 (0)(1)(1)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110011 (0)(1)(1)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110100 (0)(1)(1)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110101 (0)(1)(1)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110110 (0)(1)(1)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0110111 (0)(1)(1)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111000 (0)(1)(1)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111001 (0)(1)(1)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111010 (0)(1)(1)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111011 (0)(1)(1)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111100 (0)(1)(1)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111101 (0)(1)(1)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111110 (0)(1)(1)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_0111111 (0)(1)(1)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000000 (1)(0)(0)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000001 (1)(0)(0)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000010 (1)(0)(0)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000011 (1)(0)(0)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000100 (1)(0)(0)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000101 (1)(0)(0)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000110 (1)(0)(0)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1000111 (1)(0)(0)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001000 (1)(0)(0)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001001 (1)(0)(0)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001010 (1)(0)(0)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001011 (1)(0)(0)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001100 (1)(0)(0)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001101 (1)(0)(0)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001110 (1)(0)(0)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1001111 (1)(0)(0)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010000 (1)(0)(1)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010001 (1)(0)(1)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010010 (1)(0)(1)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010011 (1)(0)(1)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010100 (1)(0)(1)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010101 (1)(0)(1)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010110 (1)(0)(1)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1010111 (1)(0)(1)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011000 (1)(0)(1)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011001 (1)(0)(1)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011010 (1)(0)(1)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011011 (1)(0)(1)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011100 (1)(0)(1)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011101 (1)(0)(1)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011110 (1)(0)(1)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1011111 (1)(0)(1)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100000 (1)(1)(0)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100001 (1)(1)(0)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100010 (1)(1)(0)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100011 (1)(1)(0)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100100 (1)(1)(0)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100101 (1)(1)(0)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100110 (1)(1)(0)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1100111 (1)(1)(0)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101000 (1)(1)(0)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101001 (1)(1)(0)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101010 (1)(1)(0)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101011 (1)(1)(0)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101100 (1)(1)(0)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101101 (1)(1)(0)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101110 (1)(1)(0)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1101111 (1)(1)(0)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110000 (1)(1)(1)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110001 (1)(1)(1)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110010 (1)(1)(1)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110011 (1)(1)(1)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110100 (1)(1)(1)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110101 (1)(1)(1)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110110 (1)(1)(1)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1110111 (1)(1)(1)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111000 (1)(1)(1)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111001 (1)(1)(1)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111010 (1)(1)(1)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111011 (1)(1)(1)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111100 (1)(1)(1)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111101 (1)(1)(1)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111110 (1)(1)(1)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_1111111 (1)(1)(1)(1)(1)(1)(1),
|
||||||
|
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000000 (0)(0)(0)(0)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000001 (0)(0)(0)(0)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000010 (0)(0)(0)(0)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000011 (0)(0)(0)(0)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000100 (0)(0)(0)(0)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000101 (0)(0)(0)(0)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000110 (0)(0)(0)(0)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00000111 (0)(0)(0)(0)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001000 (0)(0)(0)(0)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001001 (0)(0)(0)(0)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001010 (0)(0)(0)(0)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001011 (0)(0)(0)(0)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001100 (0)(0)(0)(0)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001101 (0)(0)(0)(0)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001110 (0)(0)(0)(0)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00001111 (0)(0)(0)(0)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010000 (0)(0)(0)(1)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010001 (0)(0)(0)(1)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010010 (0)(0)(0)(1)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010011 (0)(0)(0)(1)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010100 (0)(0)(0)(1)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010101 (0)(0)(0)(1)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010110 (0)(0)(0)(1)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00010111 (0)(0)(0)(1)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011000 (0)(0)(0)(1)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011001 (0)(0)(0)(1)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011010 (0)(0)(0)(1)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011011 (0)(0)(0)(1)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011100 (0)(0)(0)(1)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011101 (0)(0)(0)(1)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011110 (0)(0)(0)(1)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00011111 (0)(0)(0)(1)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100000 (0)(0)(1)(0)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100001 (0)(0)(1)(0)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100010 (0)(0)(1)(0)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100011 (0)(0)(1)(0)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100100 (0)(0)(1)(0)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100101 (0)(0)(1)(0)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100110 (0)(0)(1)(0)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00100111 (0)(0)(1)(0)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101000 (0)(0)(1)(0)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101001 (0)(0)(1)(0)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101010 (0)(0)(1)(0)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101011 (0)(0)(1)(0)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101100 (0)(0)(1)(0)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101101 (0)(0)(1)(0)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101110 (0)(0)(1)(0)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00101111 (0)(0)(1)(0)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110000 (0)(0)(1)(1)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110001 (0)(0)(1)(1)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110010 (0)(0)(1)(1)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110011 (0)(0)(1)(1)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110100 (0)(0)(1)(1)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110101 (0)(0)(1)(1)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110110 (0)(0)(1)(1)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00110111 (0)(0)(1)(1)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111000 (0)(0)(1)(1)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111001 (0)(0)(1)(1)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111010 (0)(0)(1)(1)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111011 (0)(0)(1)(1)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111100 (0)(0)(1)(1)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111101 (0)(0)(1)(1)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111110 (0)(0)(1)(1)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_00111111 (0)(0)(1)(1)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000000 (0)(1)(0)(0)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000001 (0)(1)(0)(0)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000010 (0)(1)(0)(0)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000011 (0)(1)(0)(0)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000100 (0)(1)(0)(0)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000101 (0)(1)(0)(0)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000110 (0)(1)(0)(0)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01000111 (0)(1)(0)(0)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001000 (0)(1)(0)(0)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001001 (0)(1)(0)(0)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001010 (0)(1)(0)(0)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001011 (0)(1)(0)(0)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001100 (0)(1)(0)(0)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001101 (0)(1)(0)(0)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001110 (0)(1)(0)(0)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01001111 (0)(1)(0)(0)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010000 (0)(1)(0)(1)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010001 (0)(1)(0)(1)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010010 (0)(1)(0)(1)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010011 (0)(1)(0)(1)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010100 (0)(1)(0)(1)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010101 (0)(1)(0)(1)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010110 (0)(1)(0)(1)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01010111 (0)(1)(0)(1)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011000 (0)(1)(0)(1)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011001 (0)(1)(0)(1)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011010 (0)(1)(0)(1)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011011 (0)(1)(0)(1)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011100 (0)(1)(0)(1)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011101 (0)(1)(0)(1)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011110 (0)(1)(0)(1)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01011111 (0)(1)(0)(1)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100000 (0)(1)(1)(0)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100001 (0)(1)(1)(0)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100010 (0)(1)(1)(0)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100011 (0)(1)(1)(0)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100100 (0)(1)(1)(0)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100101 (0)(1)(1)(0)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100110 (0)(1)(1)(0)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01100111 (0)(1)(1)(0)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101000 (0)(1)(1)(0)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101001 (0)(1)(1)(0)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101010 (0)(1)(1)(0)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101011 (0)(1)(1)(0)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101100 (0)(1)(1)(0)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101101 (0)(1)(1)(0)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101110 (0)(1)(1)(0)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01101111 (0)(1)(1)(0)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110000 (0)(1)(1)(1)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110001 (0)(1)(1)(1)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110010 (0)(1)(1)(1)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110011 (0)(1)(1)(1)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110100 (0)(1)(1)(1)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110101 (0)(1)(1)(1)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110110 (0)(1)(1)(1)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01110111 (0)(1)(1)(1)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111000 (0)(1)(1)(1)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111001 (0)(1)(1)(1)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111010 (0)(1)(1)(1)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111011 (0)(1)(1)(1)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111100 (0)(1)(1)(1)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111101 (0)(1)(1)(1)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111110 (0)(1)(1)(1)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_01111111 (0)(1)(1)(1)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000000 (1)(0)(0)(0)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000001 (1)(0)(0)(0)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000010 (1)(0)(0)(0)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000011 (1)(0)(0)(0)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000100 (1)(0)(0)(0)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000101 (1)(0)(0)(0)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000110 (1)(0)(0)(0)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10000111 (1)(0)(0)(0)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001000 (1)(0)(0)(0)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001001 (1)(0)(0)(0)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001010 (1)(0)(0)(0)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001011 (1)(0)(0)(0)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001100 (1)(0)(0)(0)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001101 (1)(0)(0)(0)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001110 (1)(0)(0)(0)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10001111 (1)(0)(0)(0)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010000 (1)(0)(0)(1)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010001 (1)(0)(0)(1)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010010 (1)(0)(0)(1)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010011 (1)(0)(0)(1)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010100 (1)(0)(0)(1)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010101 (1)(0)(0)(1)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010110 (1)(0)(0)(1)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10010111 (1)(0)(0)(1)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011000 (1)(0)(0)(1)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011001 (1)(0)(0)(1)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011010 (1)(0)(0)(1)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011011 (1)(0)(0)(1)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011100 (1)(0)(0)(1)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011101 (1)(0)(0)(1)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011110 (1)(0)(0)(1)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10011111 (1)(0)(0)(1)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100000 (1)(0)(1)(0)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100001 (1)(0)(1)(0)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100010 (1)(0)(1)(0)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100011 (1)(0)(1)(0)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100100 (1)(0)(1)(0)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100101 (1)(0)(1)(0)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100110 (1)(0)(1)(0)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10100111 (1)(0)(1)(0)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101000 (1)(0)(1)(0)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101001 (1)(0)(1)(0)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101010 (1)(0)(1)(0)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101011 (1)(0)(1)(0)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101100 (1)(0)(1)(0)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101101 (1)(0)(1)(0)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101110 (1)(0)(1)(0)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10101111 (1)(0)(1)(0)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110000 (1)(0)(1)(1)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110001 (1)(0)(1)(1)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110010 (1)(0)(1)(1)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110011 (1)(0)(1)(1)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110100 (1)(0)(1)(1)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110101 (1)(0)(1)(1)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110110 (1)(0)(1)(1)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10110111 (1)(0)(1)(1)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111000 (1)(0)(1)(1)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111001 (1)(0)(1)(1)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111010 (1)(0)(1)(1)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111011 (1)(0)(1)(1)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111100 (1)(0)(1)(1)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111101 (1)(0)(1)(1)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111110 (1)(0)(1)(1)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_10111111 (1)(0)(1)(1)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000000 (1)(1)(0)(0)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000001 (1)(1)(0)(0)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000010 (1)(1)(0)(0)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000011 (1)(1)(0)(0)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000100 (1)(1)(0)(0)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000101 (1)(1)(0)(0)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000110 (1)(1)(0)(0)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11000111 (1)(1)(0)(0)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001000 (1)(1)(0)(0)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001001 (1)(1)(0)(0)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001010 (1)(1)(0)(0)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001011 (1)(1)(0)(0)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001100 (1)(1)(0)(0)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001101 (1)(1)(0)(0)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001110 (1)(1)(0)(0)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11001111 (1)(1)(0)(0)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010000 (1)(1)(0)(1)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010001 (1)(1)(0)(1)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010010 (1)(1)(0)(1)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010011 (1)(1)(0)(1)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010100 (1)(1)(0)(1)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010101 (1)(1)(0)(1)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010110 (1)(1)(0)(1)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11010111 (1)(1)(0)(1)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011000 (1)(1)(0)(1)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011001 (1)(1)(0)(1)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011010 (1)(1)(0)(1)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011011 (1)(1)(0)(1)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011100 (1)(1)(0)(1)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011101 (1)(1)(0)(1)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011110 (1)(1)(0)(1)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11011111 (1)(1)(0)(1)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100000 (1)(1)(1)(0)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100001 (1)(1)(1)(0)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100010 (1)(1)(1)(0)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100011 (1)(1)(1)(0)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100100 (1)(1)(1)(0)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100101 (1)(1)(1)(0)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100110 (1)(1)(1)(0)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11100111 (1)(1)(1)(0)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101000 (1)(1)(1)(0)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101001 (1)(1)(1)(0)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101010 (1)(1)(1)(0)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101011 (1)(1)(1)(0)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101100 (1)(1)(1)(0)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101101 (1)(1)(1)(0)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101110 (1)(1)(1)(0)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11101111 (1)(1)(1)(0)(1)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110000 (1)(1)(1)(1)(0)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110001 (1)(1)(1)(1)(0)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110010 (1)(1)(1)(1)(0)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110011 (1)(1)(1)(1)(0)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110100 (1)(1)(1)(1)(0)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110101 (1)(1)(1)(1)(0)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110110 (1)(1)(1)(1)(0)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11110111 (1)(1)(1)(1)(0)(1)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111000 (1)(1)(1)(1)(1)(0)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111001 (1)(1)(1)(1)(1)(0)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111010 (1)(1)(1)(1)(1)(0)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111011 (1)(1)(1)(1)(1)(0)(1)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111100 (1)(1)(1)(1)(1)(1)(0)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111101 (1)(1)(1)(1)(1)(1)(0)(1),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111110 (1)(1)(1)(1)(1)(1)(1)(0),
|
||||||
|
#define BOOST_DETAIL_BINARY_LITERAL_ELEMENT_11111111 (1)(1)(1)(1)(1)(1)(1)(1),
|
||||||
|
|
||||||
|
#endif
|
@ -22,7 +22,8 @@ struct result_of<F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T))>
|
|||||||
: mpl::if_<
|
: mpl::if_<
|
||||||
mpl::or_< is_pointer<F>, is_member_function_pointer<F> >
|
mpl::or_< is_pointer<F>, is_member_function_pointer<F> >
|
||||||
, detail::result_of_impl<
|
, detail::result_of_impl<
|
||||||
F, F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), false
|
typename remove_cv<F>::type,
|
||||||
|
typename remove_cv<F>::type(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T)), false
|
||||||
>
|
>
|
||||||
, detail::result_of_decltype_impl<
|
, detail::result_of_decltype_impl<
|
||||||
F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T))
|
F(BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),T))
|
||||||
@ -61,7 +62,16 @@ public:
|
|||||||
template<typename F BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
|
template<typename F BOOST_PP_COMMA_IF(BOOST_PP_ITERATION())
|
||||||
BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>
|
BOOST_PP_ENUM_PARAMS(BOOST_PP_ITERATION(),typename T)>
|
||||||
struct result_of<F(BOOST_RESULT_OF_ARGS)>
|
struct result_of<F(BOOST_RESULT_OF_ARGS)>
|
||||||
: boost::detail::result_of_impl<F, F(BOOST_RESULT_OF_ARGS), (boost::detail::has_result_type<F>::value)> {};
|
: mpl::if_<
|
||||||
|
mpl::or_< is_pointer<F>, is_member_function_pointer<F> >
|
||||||
|
, boost::detail::result_of_impl<
|
||||||
|
typename remove_cv<F>::type,
|
||||||
|
typename remove_cv<F>::type(BOOST_RESULT_OF_ARGS),
|
||||||
|
(boost::detail::has_result_type<F>::value)>
|
||||||
|
, boost::detail::result_of_impl<
|
||||||
|
F,
|
||||||
|
F(BOOST_RESULT_OF_ARGS),
|
||||||
|
(boost::detail::has_result_type<F>::value)> >::type { };
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#undef BOOST_RESULT_OF_ARGS
|
#undef BOOST_RESULT_OF_ARGS
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
||||||
// http://www.boost.org/LICENSE_1_0.txt)
|
// http://www.boost.org/LICENSE_1_0.txt)
|
||||||
|
|
||||||
// Authors: Jaakko J<EFBFBD>rvi (jajarvi at osl.iu.edu)
|
// Authors: Jaakko Jarvi (jajarvi at osl.iu.edu)
|
||||||
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
// Jeremiah Willcock (jewillco at osl.iu.edu)
|
||||||
// Andrew Lumsdaine (lums at osl.iu.edu)
|
// Andrew Lumsdaine (lums at osl.iu.edu)
|
||||||
|
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include <boost/mpl/or.hpp>
|
#include <boost/mpl/or.hpp>
|
||||||
#include <boost/type_traits/is_pointer.hpp>
|
#include <boost/type_traits/is_pointer.hpp>
|
||||||
#include <boost/type_traits/is_member_function_pointer.hpp>
|
#include <boost/type_traits/is_member_function_pointer.hpp>
|
||||||
|
#include <boost/type_traits/remove_cv.hpp>
|
||||||
|
|
||||||
#ifndef BOOST_RESULT_OF_NUM_ARGS
|
#ifndef BOOST_RESULT_OF_NUM_ARGS
|
||||||
# define BOOST_RESULT_OF_NUM_ARGS 10
|
# define BOOST_RESULT_OF_NUM_ARGS 10
|
||||||
@ -56,6 +57,11 @@ struct result_of_void_impl<R (&)(void)>
|
|||||||
typedef R type;
|
typedef R type;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Determine the return type of a function pointer or pointer to member.
|
||||||
|
template<typename F, typename FArgs>
|
||||||
|
struct result_of_pointer
|
||||||
|
: result_of_impl<typename remove_cv<F>::type, FArgs, false> { };
|
||||||
|
|
||||||
template<typename F, typename FArgs>
|
template<typename F, typename FArgs>
|
||||||
struct result_of_impl<F, FArgs, true>
|
struct result_of_impl<F, FArgs, true>
|
||||||
{
|
{
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
// 21 Ago 2002 (Created) Fernando Cacciola
|
// 21 Ago 2002 (Created) Fernando Cacciola
|
||||||
// 24 Dec 2007 (Refactored and worked around various compiler bugs) Fernando Cacciola, Niels Dekker
|
// 24 Dec 2007 (Refactored and worked around various compiler bugs) Fernando Cacciola, Niels Dekker
|
||||||
// 23 May 2008 (Fixed operator= const issue, added initialized_value) Niels Dekker, Fernando Cacciola
|
// 23 May 2008 (Fixed operator= const issue, added initialized_value) Niels Dekker, Fernando Cacciola
|
||||||
|
// 21 Ago 2008 (Added swap) Niels Dekker, Fernando Cacciola
|
||||||
//
|
//
|
||||||
#ifndef BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP
|
#ifndef BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP
|
||||||
#define BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP
|
#define BOOST_UTILITY_VALUE_INIT_21AGO2002_HPP
|
||||||
@ -22,6 +23,7 @@
|
|||||||
#include <boost/static_assert.hpp>
|
#include <boost/static_assert.hpp>
|
||||||
#include <boost/type_traits/cv_traits.hpp>
|
#include <boost/type_traits/cv_traits.hpp>
|
||||||
#include <boost/type_traits/alignment_of.hpp>
|
#include <boost/type_traits/alignment_of.hpp>
|
||||||
|
#include <boost/swap.hpp>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <new>
|
#include <new>
|
||||||
|
|
||||||
@ -93,6 +95,11 @@ class value_initialized
|
|||||||
return wrapper_address()->data;
|
return wrapper_address()->data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void swap(value_initialized & arg)
|
||||||
|
{
|
||||||
|
::boost::swap( this->data(), arg.data() );
|
||||||
|
}
|
||||||
|
|
||||||
operator T&() const { return this->data(); }
|
operator T&() const { return this->data(); }
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
@ -110,6 +117,12 @@ T& get ( value_initialized<T>& x )
|
|||||||
return x.data() ;
|
return x.data() ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
template<class T>
|
||||||
|
void swap ( value_initialized<T> & lhs, value_initialized<T> & rhs )
|
||||||
|
{
|
||||||
|
lhs.swap(rhs) ;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class initialized_value_t
|
class initialized_value_t
|
||||||
{
|
{
|
||||||
|
@ -24,12 +24,13 @@
|
|||||||
<a href="iterator_adaptors.htm">iterator_adaptors</a><br>
|
<a href="iterator_adaptors.htm">iterator_adaptors</a><br>
|
||||||
<a href="generator_iterator.htm">generator iterator adaptors</a><br>
|
<a href="generator_iterator.htm">generator iterator adaptors</a><br>
|
||||||
<a href="operators.htm">operators</a><br>
|
<a href="operators.htm">operators</a><br>
|
||||||
|
<a href="swap.html">swap</a><br>
|
||||||
<a href="throw_exception.html">throw_exception</a><br>
|
<a href="throw_exception.html">throw_exception</a><br>
|
||||||
<a href="utility.htm">utility</a><br>
|
<a href="utility.htm">utility</a><br>
|
||||||
<a href="value_init.htm">value_init</a></p>
|
<a href="value_init.htm">value_init</a></p>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
<hr>
|
<hr>
|
||||||
<p>© Copyright Beman Dawes, 2001</p>
|
<p>© Copyright Beman Dawes, 2001</p>
|
||||||
<p>Distributed under the Boost Software License, Version 1.0. (See
|
<p>Distributed under the Boost Software License, Version 1.0. (See
|
||||||
accompanying file <a href="../../LICENSE_1_0.txt">
|
accompanying file <a href="../../LICENSE_1_0.txt">
|
||||||
LICENSE_1_0.txt</a> or copy at
|
LICENSE_1_0.txt</a> or copy at
|
||||||
|
1
module.cmake
Normal file
1
module.cmake
Normal file
@ -0,0 +1 @@
|
|||||||
|
boost_module(utility DEPENDS iterator exception detail )
|
@ -1420,9 +1420,9 @@ T operator+( T lhs, const T& rhs )
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td><code><a name=
|
<td><code><a name=
|
||||||
"euclidian_ring_operators1">euclidian_ring_operators<T></a></code><br>
|
"euclidean_ring_operators1">euclidean_ring_operators<T></a></code><br>
|
||||||
|
|
||||||
<code>euclidian_ring_operators1<T></code></td>
|
<code>euclidean_ring_operators1<T></code></td>
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
<ul>
|
<ul>
|
||||||
@ -1439,9 +1439,9 @@ T operator+( T lhs, const T& rhs )
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td><code><a name=
|
<td><code><a name=
|
||||||
"euclidian_ring_operators2">euclidian_ring_operators<T,
|
"euclidean_ring_operators2">euclidean_ring_operators<T,
|
||||||
U></a></code><br>
|
U></a></code><br>
|
||||||
<code>euclidian_ring_operators2<T, U></code></td>
|
<code>euclidean_ring_operators2<T, U></code></td>
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
<ul>
|
<ul>
|
||||||
@ -1464,14 +1464,14 @@ T operator+( T lhs, const T& rhs )
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td><code><a name=
|
<td><code><a name=
|
||||||
"ordered_euclidian_ring_operators1">ordered_euclidian_ring_operators<T></a></code><br>
|
"ordered_euclidean_ring_operators1">ordered_euclidean_ring_operators<T></a></code><br>
|
||||||
|
|
||||||
<code>ordered_euclidian_ring_operators1<T></code></td>
|
<code>ordered_euclidean_ring_operators1<T></code></td>
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
<ul>
|
<ul>
|
||||||
<li><code><a href=
|
<li><code><a href=
|
||||||
"#euclidian_ring_operators1">euclidian_ring_operators<T></a></code></li>
|
"#euclidean_ring_operators1">euclidean_ring_operators<T></a></code></li>
|
||||||
|
|
||||||
<li><code><a href=
|
<li><code><a href=
|
||||||
"#totally_ordered1">totally_ordered<T></a></code></li>
|
"#totally_ordered1">totally_ordered<T></a></code></li>
|
||||||
@ -1481,14 +1481,14 @@ T operator+( T lhs, const T& rhs )
|
|||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td><code><a name=
|
<td><code><a name=
|
||||||
"ordered_euclidian_ring_operators2">ordered_euclidian_ring_operators<T,
|
"ordered_euclidean_ring_operators2">ordered_euclidean_ring_operators<T,
|
||||||
U></a></code><br>
|
U></a></code><br>
|
||||||
<code>ordered_euclidian_ring_operators2<T, U></code></td>
|
<code>ordered_euclidean_ring_operators2<T, U></code></td>
|
||||||
|
|
||||||
<td>
|
<td>
|
||||||
<ul>
|
<ul>
|
||||||
<li><code><a href=
|
<li><code><a href=
|
||||||
"#euclidian_ring_operators2">euclidian_ring_operators<T,
|
"#euclidean_ring_operators2">euclidean_ring_operators<T,
|
||||||
U></a></code></li>
|
U></a></code></li>
|
||||||
|
|
||||||
<li><code><a href="#totally_ordered2">totally_ordered<T,
|
<li><code><a href="#totally_ordered2">totally_ordered<T,
|
||||||
@ -1498,6 +1498,15 @@ T operator+( T lhs, const T& rhs )
|
|||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<h4>Spelling: euclidean vs. euclidian</h4>
|
||||||
|
|
||||||
|
<p>Older versions of the Boost.Operators library used
|
||||||
|
"<code>euclidian</code>", but it was pointed out that
|
||||||
|
"<code>euclidean</code>" is the more common spelling.
|
||||||
|
To be compatible with older version, the library now supports
|
||||||
|
both spellings.
|
||||||
|
</p>
|
||||||
|
|
||||||
<h3><a name="ex_oprs">Example</a> Templates</h3>
|
<h3><a name="ex_oprs">Example</a> Templates</h3>
|
||||||
|
|
||||||
<p>The arithmetic operator class templates <code><a href=
|
<p>The arithmetic operator class templates <code><a href=
|
||||||
@ -1576,9 +1585,8 @@ T operator+( T lhs, const T& rhs )
|
|||||||
|
|
||||||
<p>The <cite><a href="operators_test.cpp">operators_test.cpp</a></cite>
|
<p>The <cite><a href="operators_test.cpp">operators_test.cpp</a></cite>
|
||||||
program demonstrates the use of the arithmetic operator templates, and
|
program demonstrates the use of the arithmetic operator templates, and
|
||||||
can also be used to verify correct operation. Check the <a href=
|
can also be used to verify correct operation. Check the compiler status
|
||||||
"../../status/compiler_status.html">compiler status report</a> for the
|
report for the test results with selected platforms.</p>
|
||||||
test results with selected platforms.</p>
|
|
||||||
|
|
||||||
<h2><a name="deref">Dereference</a> Operators and Iterator Helpers</h2>
|
<h2><a name="deref">Dereference</a> Operators and Iterator Helpers</h2>
|
||||||
|
|
||||||
@ -2022,7 +2030,7 @@ public:
|
|||||||
</pre>
|
</pre>
|
||||||
</blockquote>
|
</blockquote>
|
||||||
|
|
||||||
<p>Check the <a href="../../status/compiler_status.html">compiler status
|
<p>Check the <a href="http://www.boost.org/development/testing.html">compiler status
|
||||||
report</a> for the test results with selected platforms.</p>
|
report</a> for the test results with selected platforms.</p>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
@ -2119,10 +2127,10 @@ public:
|
|||||||
backward-compatible.</p>
|
backward-compatible.</p>
|
||||||
<hr>
|
<hr>
|
||||||
|
|
||||||
<p>Revised: 29 Oct 2004</p>
|
<p>Revised: 7 Aug 2008</p>
|
||||||
|
|
||||||
<p>Copyright © Beman Dawes, David Abrahams, 1999-2001.</p>
|
<p>Copyright © Beman Dawes, David Abrahams, 1999-2001.</p>
|
||||||
<p>Copyright © Daniel Frey, 2002-2004.</p>
|
<p>Copyright © Daniel Frey, 2002-2008.</p>
|
||||||
<p>Use, modification, and distribution is subject to the Boost Software
|
<p>Use, modification, and distribution is subject to the Boost Software
|
||||||
License, Version 1.0. (See accompanying file
|
License, Version 1.0. (See accompanying file
|
||||||
<a href="../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or copy at
|
<a href="../../LICENSE_1_0.txt">LICENSE_1_0.txt</a> or copy at
|
||||||
|
@ -258,8 +258,8 @@ namespace
|
|||||||
// U must be convertible to T
|
// U must be convertible to T
|
||||||
template <class T, class U>
|
template <class T, class U>
|
||||||
class Wrapped6
|
class Wrapped6
|
||||||
: boost::ordered_euclidian_ring_operators2<Wrapped6<T, U>, U>
|
: boost::ordered_euclidean_ring_operators2<Wrapped6<T, U>, U>
|
||||||
, boost::ordered_euclidian_ring_operators1<Wrapped6<T, U> >
|
, boost::ordered_euclidean_ring_operators1<Wrapped6<T, U> >
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
explicit Wrapped6( T v = T() ) : _value(v) {}
|
explicit Wrapped6( T v = T() ) : _value(v) {}
|
||||||
|
43
ref_test.cpp
43
ref_test.cpp
@ -68,11 +68,54 @@ struct ref_wrapper
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct copy_counter {
|
||||||
|
static int count_;
|
||||||
|
copy_counter(copy_counter const& other) {
|
||||||
|
++count_;
|
||||||
|
}
|
||||||
|
copy_counter() {}
|
||||||
|
static void reset() { count_ = 0; }
|
||||||
|
static int count() { return copy_counter::count_; }
|
||||||
|
};
|
||||||
|
|
||||||
|
int copy_counter::count_ = 0;
|
||||||
|
|
||||||
} // namespace unnamed
|
} // namespace unnamed
|
||||||
|
|
||||||
|
template <class T>
|
||||||
|
void do_unwrap(T t) {
|
||||||
|
|
||||||
|
/* typename unwrap_reference<T>::type& lt = */
|
||||||
|
unwrap_ref(t);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void unwrap_test() {
|
||||||
|
|
||||||
|
int i = 3;
|
||||||
|
const int ci = 2;
|
||||||
|
|
||||||
|
do_unwrap(i);
|
||||||
|
do_unwrap(ci);
|
||||||
|
do_unwrap(ref(i));
|
||||||
|
do_unwrap(cref(ci));
|
||||||
|
do_unwrap(ref(ci));
|
||||||
|
|
||||||
|
copy_counter cc;
|
||||||
|
BOOST_CHECK(cc.count() == 0);
|
||||||
|
|
||||||
|
do_unwrap(cc);
|
||||||
|
do_unwrap(ref(cc));
|
||||||
|
do_unwrap(cref(cc));
|
||||||
|
|
||||||
|
BOOST_CHECK(cc.count() == 1);
|
||||||
|
BOOST_CHECK(unwrap_ref(ref(cc)).count() == 1);
|
||||||
|
}
|
||||||
|
|
||||||
int test_main(int, char * [])
|
int test_main(int, char * [])
|
||||||
{
|
{
|
||||||
ref_wrapper<int>::test(1);
|
ref_wrapper<int>::test(1);
|
||||||
ref_wrapper<int const>::test(1);
|
ref_wrapper<int const>::test(1);
|
||||||
|
unwrap_test();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
33
swap/test/Jamfile.v2
Normal file
33
swap/test/Jamfile.v2
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
# Copyright (c) 2007, 2008 Joseph Gauterin
|
||||||
|
#
|
||||||
|
# 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)
|
||||||
|
|
||||||
|
# bring in rules for testing
|
||||||
|
import testing ;
|
||||||
|
|
||||||
|
test-suite utility/swap
|
||||||
|
:
|
||||||
|
[ compile root_header_1.cpp ]
|
||||||
|
[ compile root_header_2.cpp ]
|
||||||
|
[ compile lib_header_1.cpp ]
|
||||||
|
[ compile lib_header_2.cpp ]
|
||||||
|
[ compile mixed_headers_1.cpp ]
|
||||||
|
[ compile mixed_headers_2.cpp ]
|
||||||
|
[ run primitive.cpp ../../../test/build//boost_test_exec_monitor/<link>static ]
|
||||||
|
[ run specialized_in_boost.cpp ../../../test/build//boost_test_exec_monitor/<link>static ]
|
||||||
|
[ run specialized_in_global.cpp ../../../test/build//boost_test_exec_monitor/<link>static ]
|
||||||
|
[ run specialized_in_other.cpp ../../../test/build//boost_test_exec_monitor/<link>static ]
|
||||||
|
[ run specialized_in_std.cpp ../../../test/build//boost_test_exec_monitor/<link>static ]
|
||||||
|
[ run specialized_in_boost_and_other.cpp ../../../test/build//boost_test_exec_monitor/<link>static ]
|
||||||
|
[ run std_bitset.cpp ../../../test/build//boost_test_exec_monitor/<link>static ]
|
||||||
|
[ run std_dateorder.cpp ../../../test/build//boost_test_exec_monitor/<link>static ]
|
||||||
|
[ run std_string.cpp ../../../test/build//boost_test_exec_monitor/<link>static ]
|
||||||
|
[ run std_typeinfo_ptr.cpp ../../../test/build//boost_test_exec_monitor/<link>static ]
|
||||||
|
[ run std_vector_of_boost.cpp ../../../test/build//boost_test_exec_monitor/<link>static ]
|
||||||
|
[ run std_vector_of_global.cpp ../../../test/build//boost_test_exec_monitor/<link>static ]
|
||||||
|
[ run std_vector_of_other.cpp ../../../test/build//boost_test_exec_monitor/<link>static ]
|
||||||
|
[ run no_ambiguity_in_boost.cpp ../../../test/build//boost_test_exec_monitor/<link>static ]
|
||||||
|
[ run swap_arrays.cpp ../../../test/build//boost_test_exec_monitor/<link>static ]
|
||||||
|
;
|
10
swap/test/lib_header_1.cpp
Normal file
10
swap/test/lib_header_1.cpp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// Copyright (c) 2007 Joseph Gauterin
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Tests that the swap header compiles as a standalone translation unit
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
|
11
swap/test/lib_header_2.cpp
Normal file
11
swap/test/lib_header_2.cpp
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
// Copyright (c) 2007 Joseph Gauterin
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Tests that the swap header include guards work correctly
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
|
11
swap/test/mixed_headers_1.cpp
Normal file
11
swap/test/mixed_headers_1.cpp
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
// Copyright (c) 2007 Joseph Gauterin
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Tests that the swap headers work when both are included
|
||||||
|
|
||||||
|
#include <boost/swap.hpp>
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
|
12
swap/test/mixed_headers_2.cpp
Normal file
12
swap/test/mixed_headers_2.cpp
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
// Copyright (c) 2007 Joseph Gauterin
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Tests that the swap headers work when both are included
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#include <boost/swap.hpp>
|
||||||
|
|
||||||
|
|
37
swap/test/no_ambiguity_in_boost.cpp
Normal file
37
swap/test/no_ambiguity_in_boost.cpp
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
// Copyright (c) 2008 Joseph Gauterin, Niels Dekker
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// boost::swap internally does an unqualified function call to swap.
|
||||||
|
// This could have led to ambiguity or infinite recursion, when the
|
||||||
|
// objects to be swapped would themselves be from the boost namespace.
|
||||||
|
// If so, boost::swap itself might be found by argument dependent lookup.
|
||||||
|
// The implementation of boost::swap resolves this issue by giving
|
||||||
|
// boost::swap two template argumetns, thereby making it less specialized
|
||||||
|
// than std::swap.
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#define BOOST_INCLUDE_MAIN
|
||||||
|
#include <boost/test/test_tools.hpp>
|
||||||
|
|
||||||
|
//Put test class in namespace boost
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
#include "./swap_test_class.hpp"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int test_main(int, char*[])
|
||||||
|
{
|
||||||
|
boost::swap_test_class object1;
|
||||||
|
boost::swap_test_class object2;
|
||||||
|
boost::swap(object1,object2);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(boost::swap_test_class::swap_count(),0);
|
||||||
|
BOOST_CHECK_EQUAL(boost::swap_test_class::copy_count(),3);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
23
swap/test/primitive.cpp
Normal file
23
swap/test/primitive.cpp
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
// Copyright (c) 2007 Joseph Gauterin
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#define BOOST_INCLUDE_MAIN
|
||||||
|
#include <boost/test/test_tools.hpp>
|
||||||
|
|
||||||
|
int test_main(int, char*[])
|
||||||
|
{
|
||||||
|
int object1 = 1;
|
||||||
|
int object2 = 2;
|
||||||
|
|
||||||
|
boost::swap(object1,object2);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(object1,2);
|
||||||
|
BOOST_CHECK_EQUAL(object2,1);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
10
swap/test/root_header_1.cpp
Normal file
10
swap/test/root_header_1.cpp
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
// Copyright (c) 2007 Joseph Gauterin
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Tests that the swap header compiles as a standalone translation unit
|
||||||
|
|
||||||
|
#include <boost/swap.hpp>
|
||||||
|
|
11
swap/test/root_header_2.cpp
Normal file
11
swap/test/root_header_2.cpp
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
// Copyright (c) 2007 Joseph Gauterin
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Tests that the swap header include guards work correctly
|
||||||
|
|
||||||
|
#include <boost/swap.hpp>
|
||||||
|
#include <boost/swap.hpp>
|
||||||
|
|
37
swap/test/specialized_in_boost.cpp
Normal file
37
swap/test/specialized_in_boost.cpp
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
// Copyright (c) 2007 Joseph Gauterin
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#define BOOST_INCLUDE_MAIN
|
||||||
|
#include <boost/test/test_tools.hpp>
|
||||||
|
|
||||||
|
//Put test class in namespace boost
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
#include "./swap_test_class.hpp"
|
||||||
|
}
|
||||||
|
|
||||||
|
//Provide swap function in namespace boost
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
void swap(swap_test_class& left, swap_test_class& right)
|
||||||
|
{
|
||||||
|
left.swap(right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int test_main(int, char*[])
|
||||||
|
{
|
||||||
|
boost::swap_test_class object1;
|
||||||
|
boost::swap_test_class object2;
|
||||||
|
boost::swap(object1,object2);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(boost::swap_test_class::swap_count(),1);
|
||||||
|
BOOST_CHECK_EQUAL(boost::swap_test_class::copy_count(),0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
56
swap/test/specialized_in_boost_and_other.cpp
Normal file
56
swap/test/specialized_in_boost_and_other.cpp
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
// Copyright (c) 2008 Joseph Gauterin, Niels Dekker
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Tests whether instances of a class from a namespace other than boost are
|
||||||
|
// properly swapped, when both boost and the other namespace have a custom
|
||||||
|
// swap function for that class. Note that it shouldn't be necessary for a class
|
||||||
|
// in an other namespace to have a custom swap function in boost, because the
|
||||||
|
// boost::swap utility should find the swap function in the other namespace, by
|
||||||
|
// argument dependent lookup (ADL). Unfortunately ADL isn't fully implemented
|
||||||
|
// by some specific compiler versions, including Intel C++ 8.1, MSVC 7.1, and
|
||||||
|
// Borland 5.9.3. Users of those compilers might consider adding a swap overload
|
||||||
|
// to the boost namespace.
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#define BOOST_INCLUDE_MAIN
|
||||||
|
#include <boost/test/test_tools.hpp>
|
||||||
|
|
||||||
|
//Put test class in namespace other
|
||||||
|
namespace other
|
||||||
|
{
|
||||||
|
#include "./swap_test_class.hpp"
|
||||||
|
}
|
||||||
|
|
||||||
|
//Provide swap function in namespace boost
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
void swap(::other::swap_test_class& left, ::other::swap_test_class& right)
|
||||||
|
{
|
||||||
|
left.swap(right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//Provide swap function in namespace other
|
||||||
|
namespace other
|
||||||
|
{
|
||||||
|
void swap(swap_test_class& left, swap_test_class& right)
|
||||||
|
{
|
||||||
|
left.swap(right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int test_main(int, char*[])
|
||||||
|
{
|
||||||
|
other::swap_test_class object1;
|
||||||
|
other::swap_test_class object2;
|
||||||
|
boost::swap(object1,object2);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(other::swap_test_class::swap_count(),1);
|
||||||
|
BOOST_CHECK_EQUAL(other::swap_test_class::copy_count(),0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
31
swap/test/specialized_in_global.cpp
Normal file
31
swap/test/specialized_in_global.cpp
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
// Copyright (c) 2007 Joseph Gauterin
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#define BOOST_INCLUDE_MAIN
|
||||||
|
#include <boost/test/test_tools.hpp>
|
||||||
|
|
||||||
|
//Put test class in the global namespace
|
||||||
|
#include "./swap_test_class.hpp"
|
||||||
|
|
||||||
|
//Provide swap function in gloabl namespace
|
||||||
|
void swap(swap_test_class& left, swap_test_class& right)
|
||||||
|
{
|
||||||
|
left.swap(right);
|
||||||
|
}
|
||||||
|
|
||||||
|
int test_main(int, char*[])
|
||||||
|
{
|
||||||
|
swap_test_class object1;
|
||||||
|
swap_test_class object2;
|
||||||
|
boost::swap(object1,object2);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(swap_test_class::swap_count(),1);
|
||||||
|
BOOST_CHECK_EQUAL(swap_test_class::copy_count(),0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
37
swap/test/specialized_in_other.cpp
Normal file
37
swap/test/specialized_in_other.cpp
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
// Copyright (c) 2007 Joseph Gauterin
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#define BOOST_INCLUDE_MAIN
|
||||||
|
#include <boost/test/test_tools.hpp>
|
||||||
|
|
||||||
|
//Put test class in namespace other
|
||||||
|
namespace other
|
||||||
|
{
|
||||||
|
#include "./swap_test_class.hpp"
|
||||||
|
}
|
||||||
|
|
||||||
|
//Provide swap function in namespace other
|
||||||
|
namespace other
|
||||||
|
{
|
||||||
|
void swap(swap_test_class& left, swap_test_class& right)
|
||||||
|
{
|
||||||
|
left.swap(right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int test_main(int, char*[])
|
||||||
|
{
|
||||||
|
other::swap_test_class object1;
|
||||||
|
other::swap_test_class object2;
|
||||||
|
boost::swap(object1,object2);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(other::swap_test_class::swap_count(),1);
|
||||||
|
BOOST_CHECK_EQUAL(other::swap_test_class::copy_count(),0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
36
swap/test/specialized_in_std.cpp
Normal file
36
swap/test/specialized_in_std.cpp
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
// Copyright (c) 2007 Joseph Gauterin
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#define BOOST_INCLUDE_MAIN
|
||||||
|
#include <boost/test/test_tools.hpp>
|
||||||
|
|
||||||
|
//Put test class in the global namespace
|
||||||
|
#include "./swap_test_class.hpp"
|
||||||
|
|
||||||
|
|
||||||
|
//Provide swap function in namespace std
|
||||||
|
namespace std
|
||||||
|
{
|
||||||
|
template <>
|
||||||
|
void swap(swap_test_class& left, swap_test_class& right)
|
||||||
|
{
|
||||||
|
left.swap(right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int test_main(int, char*[])
|
||||||
|
{
|
||||||
|
swap_test_class object1;
|
||||||
|
swap_test_class object2;
|
||||||
|
boost::swap(object1,object2);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(swap_test_class::swap_count(),1);
|
||||||
|
BOOST_CHECK_EQUAL(swap_test_class::copy_count(),0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
33
swap/test/std_bitset.cpp
Normal file
33
swap/test/std_bitset.cpp
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
// Copyright (c) 2008 Joseph Gauterin, Niels Dekker
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Tests swapping std::bitset<T> objects by means of boost::swap.
|
||||||
|
// Unlike most other Standard C++ Library template classes,
|
||||||
|
// std::bitset<T> does not have its own std::swap overload.
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#define BOOST_INCLUDE_MAIN
|
||||||
|
#include <boost/test/test_tools.hpp>
|
||||||
|
|
||||||
|
#include <bitset>
|
||||||
|
|
||||||
|
int test_main(int, char*[])
|
||||||
|
{
|
||||||
|
typedef std::bitset<8> bitset_type;
|
||||||
|
const bitset_type initial_value1 = 1ul;
|
||||||
|
const bitset_type initial_value2 = 2ul;
|
||||||
|
|
||||||
|
bitset_type object1 = initial_value1;
|
||||||
|
bitset_type object2 = initial_value2;
|
||||||
|
|
||||||
|
boost::swap(object1,object2);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(object1,initial_value2);
|
||||||
|
BOOST_CHECK_EQUAL(object2,initial_value1);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
32
swap/test/std_dateorder.cpp
Normal file
32
swap/test/std_dateorder.cpp
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
// Copyright (c) 2008 Joseph Gauterin, Niels Dekker
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Tests swapping std::time_base::dateorder objects by means of boost::swap.
|
||||||
|
// std::time_base::dateorder is an enumerated type. It does not have an
|
||||||
|
// std::swap overload or template specialization.
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#define BOOST_INCLUDE_MAIN
|
||||||
|
#include <boost/test/test_tools.hpp>
|
||||||
|
|
||||||
|
#include <locale>
|
||||||
|
|
||||||
|
int test_main(int, char*[])
|
||||||
|
{
|
||||||
|
const std::time_base::dateorder initial_value1 = std::time_base::dmy;
|
||||||
|
const std::time_base::dateorder initial_value2 = std::time_base::mdy;
|
||||||
|
|
||||||
|
std::time_base::dateorder object1 = initial_value1;
|
||||||
|
std::time_base::dateorder object2 = initial_value2;
|
||||||
|
|
||||||
|
boost::swap(object1,object2);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(object1,initial_value2);
|
||||||
|
BOOST_CHECK_EQUAL(object2,initial_value1);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
31
swap/test/std_string.cpp
Normal file
31
swap/test/std_string.cpp
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
// Copyright (c) 2008 Joseph Gauterin, Niels Dekker
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Tests swapping std::string objects by means of boost::swap.
|
||||||
|
// std::string has its own std::swap overload.
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#define BOOST_INCLUDE_MAIN
|
||||||
|
#include <boost/test/test_tools.hpp>
|
||||||
|
|
||||||
|
#include <string>
|
||||||
|
|
||||||
|
int test_main(int, char*[])
|
||||||
|
{
|
||||||
|
const std::string initial_value1 = "one";
|
||||||
|
const std::string initial_value2 = "two";
|
||||||
|
|
||||||
|
std::string object1 = initial_value1;
|
||||||
|
std::string object2 = initial_value2;
|
||||||
|
|
||||||
|
boost::swap(object1,object2);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(object1,initial_value2);
|
||||||
|
BOOST_CHECK_EQUAL(object2,initial_value1);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
32
swap/test/std_typeinfo_ptr.cpp
Normal file
32
swap/test/std_typeinfo_ptr.cpp
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
// Copyright (c) 2008 Joseph Gauterin, Niels Dekker
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Tests swapping std::type_info pointers by means of boost::swap.
|
||||||
|
// There is no std::swap overload or template specialization
|
||||||
|
// for std::type_info pointers.
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#define BOOST_INCLUDE_MAIN
|
||||||
|
#include <boost/test/test_tools.hpp>
|
||||||
|
|
||||||
|
#include <typeinfo>
|
||||||
|
|
||||||
|
int test_main(int, char*[])
|
||||||
|
{
|
||||||
|
const std::type_info * const initial_value1 = 0;
|
||||||
|
const std::type_info * const initial_value2 = &typeid(double);
|
||||||
|
|
||||||
|
const std::type_info * ptr1 = initial_value1;
|
||||||
|
const std::type_info * ptr2 = initial_value2;
|
||||||
|
|
||||||
|
boost::swap(ptr1,ptr2);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(ptr1,initial_value2);
|
||||||
|
BOOST_CHECK_EQUAL(ptr2,initial_value1);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
54
swap/test/std_vector_of_boost.cpp
Normal file
54
swap/test/std_vector_of_boost.cpp
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
// Copyright (c) 2008 Joseph Gauterin, Niels Dekker
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Tests swapping std::vector objects by means of boost::swap,
|
||||||
|
// having boost::swap_test_class as vector element type.
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#define BOOST_INCLUDE_MAIN
|
||||||
|
#include <boost/test/test_tools.hpp>
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
//Put test class in namespace boost
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
#include "./swap_test_class.hpp"
|
||||||
|
}
|
||||||
|
|
||||||
|
//Provide swap function in namespace boost
|
||||||
|
namespace boost
|
||||||
|
{
|
||||||
|
void swap(swap_test_class& left, swap_test_class& right)
|
||||||
|
{
|
||||||
|
left.swap(right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int test_main(int, char*[])
|
||||||
|
{
|
||||||
|
typedef boost::swap_test_class swap_test_class_type;
|
||||||
|
typedef std::vector<swap_test_class_type> vector_type;
|
||||||
|
|
||||||
|
const vector_type::size_type initial_size1 = 1;
|
||||||
|
const vector_type::size_type initial_size2 = 2;
|
||||||
|
|
||||||
|
vector_type object1(initial_size1);
|
||||||
|
vector_type object2(initial_size2);
|
||||||
|
|
||||||
|
swap_test_class_type::reset();
|
||||||
|
|
||||||
|
boost::swap(object1,object2);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(object1.size(),initial_size2);
|
||||||
|
BOOST_CHECK_EQUAL(object2.size(),initial_size1);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(swap_test_class_type::swap_count(),0);
|
||||||
|
BOOST_CHECK_EQUAL(swap_test_class_type::copy_count(),0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
47
swap/test/std_vector_of_global.cpp
Normal file
47
swap/test/std_vector_of_global.cpp
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
// Copyright (c) 2008 Joseph Gauterin, Niels Dekker
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Tests swapping std::vector objects by means of boost::swap,
|
||||||
|
// having ::swap_test_class as vector element type.
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#define BOOST_INCLUDE_MAIN
|
||||||
|
#include <boost/test/test_tools.hpp>
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
//Put test class in the global namespace
|
||||||
|
#include "./swap_test_class.hpp"
|
||||||
|
|
||||||
|
//Provide swap function in the global namespace
|
||||||
|
void swap(swap_test_class& left, swap_test_class& right)
|
||||||
|
{
|
||||||
|
left.swap(right);
|
||||||
|
}
|
||||||
|
|
||||||
|
int test_main(int, char*[])
|
||||||
|
{
|
||||||
|
typedef std::vector<swap_test_class> vector_type;
|
||||||
|
|
||||||
|
const vector_type::size_type initial_size1 = 1;
|
||||||
|
const vector_type::size_type initial_size2 = 2;
|
||||||
|
|
||||||
|
vector_type object1(initial_size1);
|
||||||
|
vector_type object2(initial_size2);
|
||||||
|
|
||||||
|
swap_test_class::reset();
|
||||||
|
|
||||||
|
boost::swap(object1,object2);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(object1.size(),initial_size2);
|
||||||
|
BOOST_CHECK_EQUAL(object2.size(),initial_size1);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(swap_test_class::swap_count(),0);
|
||||||
|
BOOST_CHECK_EQUAL(swap_test_class::copy_count(),0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
54
swap/test/std_vector_of_other.cpp
Normal file
54
swap/test/std_vector_of_other.cpp
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
// Copyright (c) 2008 Joseph Gauterin, Niels Dekker
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Tests swapping std::vector objects by means of boost::swap,
|
||||||
|
// having other::swap_test_class as vector element type.
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#define BOOST_INCLUDE_MAIN
|
||||||
|
#include <boost/test/test_tools.hpp>
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
//Put test class in namespace other
|
||||||
|
namespace other
|
||||||
|
{
|
||||||
|
#include "./swap_test_class.hpp"
|
||||||
|
}
|
||||||
|
|
||||||
|
//Provide swap function in namespace other
|
||||||
|
namespace other
|
||||||
|
{
|
||||||
|
void swap(swap_test_class& left, swap_test_class& right)
|
||||||
|
{
|
||||||
|
left.swap(right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
int test_main(int, char*[])
|
||||||
|
{
|
||||||
|
typedef other::swap_test_class swap_test_class_type;
|
||||||
|
typedef std::vector<swap_test_class_type> vector_type;
|
||||||
|
|
||||||
|
const vector_type::size_type initial_size1 = 1;
|
||||||
|
const vector_type::size_type initial_size2 = 2;
|
||||||
|
|
||||||
|
vector_type object1(initial_size1);
|
||||||
|
vector_type object2(initial_size2);
|
||||||
|
|
||||||
|
swap_test_class_type::reset();
|
||||||
|
|
||||||
|
boost::swap(object1,object2);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(object1.size(),initial_size2);
|
||||||
|
BOOST_CHECK_EQUAL(object2.size(),initial_size1);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(swap_test_class_type::swap_count(),0);
|
||||||
|
BOOST_CHECK_EQUAL(swap_test_class_type::copy_count(),0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
59
swap/test/swap_arrays.cpp
Normal file
59
swap/test/swap_arrays.cpp
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
// Copyright (c) 2008 Joseph Gauterin, Niels Dekker
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
#include <boost/utility/swap.hpp>
|
||||||
|
#define BOOST_INCLUDE_MAIN
|
||||||
|
#include <boost/test/test_tools.hpp>
|
||||||
|
|
||||||
|
//Put test class in the global namespace
|
||||||
|
#include "./swap_test_class.hpp"
|
||||||
|
|
||||||
|
//Provide swap function in both the namespace of swap_test_class
|
||||||
|
//(which is the global namespace), and the std namespace.
|
||||||
|
//It's common to provide a swap function for a class in both
|
||||||
|
//namespaces. Scott Meyers recommends doing so: Effective C++,
|
||||||
|
//Third Edition, item 25, "Consider support for a non-throwing swap".
|
||||||
|
void swap(swap_test_class& left, swap_test_class& right)
|
||||||
|
{
|
||||||
|
left.swap(right);
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace std
|
||||||
|
{
|
||||||
|
template <>
|
||||||
|
void swap(swap_test_class& left, swap_test_class& right)
|
||||||
|
{
|
||||||
|
left.swap(right);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int test_main(int, char*[])
|
||||||
|
{
|
||||||
|
const std::size_t dimension = 7;
|
||||||
|
|
||||||
|
swap_test_class array1[dimension];
|
||||||
|
swap_test_class array2[dimension];
|
||||||
|
boost::swap(array1, array2);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(swap_test_class::swap_count(), dimension);
|
||||||
|
BOOST_CHECK_EQUAL(swap_test_class::copy_count(), 0);
|
||||||
|
|
||||||
|
swap_test_class::reset();
|
||||||
|
|
||||||
|
const std::size_t firstDimension = 3;
|
||||||
|
const std::size_t secondDimension = 4;
|
||||||
|
|
||||||
|
swap_test_class two_d_array1[firstDimension][secondDimension];
|
||||||
|
swap_test_class two_d_array2[firstDimension][secondDimension];
|
||||||
|
boost::swap(two_d_array1, two_d_array2);
|
||||||
|
|
||||||
|
BOOST_CHECK_EQUAL(swap_test_class::swap_count(), firstDimension*secondDimension);
|
||||||
|
BOOST_CHECK_EQUAL(swap_test_class::copy_count(), 0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
84
swap/test/swap_test_class.hpp
Normal file
84
swap/test/swap_test_class.hpp
Normal file
@ -0,0 +1,84 @@
|
|||||||
|
// Copyright (c) 2007-2008 Joseph Gauterin
|
||||||
|
//
|
||||||
|
// 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)
|
||||||
|
|
||||||
|
// Tests class used by the Boost.Swap tests
|
||||||
|
|
||||||
|
#ifndef BOOST_UTILITY_SWAP_TEST_CLASS_HPP
|
||||||
|
#define BOOST_UTILITY_SWAP_TEST_CLASS_HPP
|
||||||
|
|
||||||
|
|
||||||
|
class swap_test_class
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
swap_test_class()
|
||||||
|
{
|
||||||
|
++constructCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
~swap_test_class()
|
||||||
|
{
|
||||||
|
++destructCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
swap_test_class(const swap_test_class&)
|
||||||
|
{
|
||||||
|
++copyCount();
|
||||||
|
++destructCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
swap_test_class& operator=(const swap_test_class&)
|
||||||
|
{
|
||||||
|
++copyCount();
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
void swap(swap_test_class& other)
|
||||||
|
{
|
||||||
|
++swapCount();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static unsigned int swap_count(){ return swapCount(); }
|
||||||
|
static unsigned int copy_count(){ return copyCount(); }
|
||||||
|
static unsigned int construct_count(){ return constructCount(); }
|
||||||
|
static unsigned int destruct_count(){ return destructCount(); }
|
||||||
|
|
||||||
|
static void reset()
|
||||||
|
{
|
||||||
|
swapCount() = 0;
|
||||||
|
copyCount() = 0;
|
||||||
|
constructCount() = 0;
|
||||||
|
destructCount() = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
static unsigned int& swapCount()
|
||||||
|
{
|
||||||
|
static unsigned int value = 0;
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static unsigned int& copyCount()
|
||||||
|
{
|
||||||
|
static unsigned int value = 0;
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static unsigned int& constructCount()
|
||||||
|
{
|
||||||
|
static unsigned int value = 0;
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
static unsigned int& destructCount()
|
||||||
|
{
|
||||||
|
static unsigned int value = 0;
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
36
test/CMakeLists.txt
Normal file
36
test/CMakeLists.txt
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
boost_test_run(addressof_test ../addressof_test.cpp)
|
||||||
|
boost_test_run(assert_test ../assert_test.cpp)
|
||||||
|
boost_test_run(base_from_member_test ../base_from_member_test.cpp)
|
||||||
|
boost_test_run(binary_search_test ../binary_search_test.cpp)
|
||||||
|
boost_test_run(call_traits_test ../call_traits_test.cpp ARGS -u)
|
||||||
|
boost_test_compile_fail(checked_delete_test ../checked_delete_test.cpp)
|
||||||
|
boost_test_run(compressed_pair_test
|
||||||
|
../compressed_pair_test
|
||||||
|
DEPENDS boost_test_exec_monitor)
|
||||||
|
boost_test_run(current_function_test ../current_function_test.cpp)
|
||||||
|
boost_test_run(iterators_test
|
||||||
|
../iterators_test.cpp
|
||||||
|
DEPENDS boost_test_exec_monitor)
|
||||||
|
boost_test_run(next_prior_test DEPENDS boost_test_exec_monitor)
|
||||||
|
boost_test_compile_fail(noncopyable_test ../noncopyable_test.cpp)
|
||||||
|
boost_test_run(numeric_traits_test ../numeric_traits_test.cpp)
|
||||||
|
if (${CMAKE_SYSTEM} MATCHES "FreeBSD-.*")
|
||||||
|
boost_test_compile_fail("operators_test_compilerbug")
|
||||||
|
elseif(${CMAKE_SYSTEM} MATCHES "FreeBSD-.*")
|
||||||
|
boost_test_run(operators_test
|
||||||
|
../operators_test.cpp
|
||||||
|
DEPENDS boost_test_exec_monitor)
|
||||||
|
endif(${CMAKE_SYSTEM} MATCHES "FreeBSD-.*")
|
||||||
|
boost_test_compile(ref_ct_test ../ref_ct_test.cpp)
|
||||||
|
boost_test_run(ref_test
|
||||||
|
../ref_test.cpp
|
||||||
|
DEPENDS boost_test_exec_monitor)
|
||||||
|
boost_test_compile(result_of_test)
|
||||||
|
boost_test_run(shared_iterator_test ../shared_iterator_test.cpp)
|
||||||
|
boost_test_run(value_init_test ../value_init_test.cpp)
|
||||||
|
boost_test_compile_fail(value_init_test_fail1
|
||||||
|
../value_init_test_fail1.cpp)
|
||||||
|
boost_test_compile_fail(value_init_test_fail2
|
||||||
|
../value_init_test_fail2.cpp)
|
||||||
|
boost_test_compile_fail(value_init_test_fail3
|
||||||
|
../value_init_test_fail3.cpp)
|
@ -15,6 +15,7 @@ test-suite utility
|
|||||||
[ run ../assert_test.cpp ]
|
[ run ../assert_test.cpp ]
|
||||||
[ run ../base_from_member_test.cpp ]
|
[ run ../base_from_member_test.cpp ]
|
||||||
[ run ../binary_search_test.cpp ]
|
[ run ../binary_search_test.cpp ]
|
||||||
|
[ run ../binary_test.cpp ]
|
||||||
[ run ../call_traits_test.cpp : -u ]
|
[ run ../call_traits_test.cpp : -u ]
|
||||||
[ compile-fail ../checked_delete_test.cpp ]
|
[ compile-fail ../checked_delete_test.cpp ]
|
||||||
[ run ../compressed_pair_test.cpp ../../test/build//boost_test_exec_monitor/<link>static : -u ]
|
[ run ../compressed_pair_test.cpp ../../test/build//boost_test_exec_monitor/<link>static : -u ]
|
||||||
|
0
test/next_prior_test.cpp
Executable file → Normal file
0
test/next_prior_test.cpp
Executable file → Normal file
@ -177,6 +177,10 @@ int main()
|
|||||||
BOOST_STATIC_ASSERT((is_same<result_of<result_of_member_function_template(int volatile &, int)>::type, int volatile &>::value));
|
BOOST_STATIC_ASSERT((is_same<result_of<result_of_member_function_template(int volatile &, int)>::type, int volatile &>::value));
|
||||||
BOOST_STATIC_ASSERT((is_same<result_of<result_of_member_function_template(int const volatile &, int)>::type, int const volatile &>::value));
|
BOOST_STATIC_ASSERT((is_same<result_of<result_of_member_function_template(int const volatile &, int)>::type, int const volatile &>::value));
|
||||||
|
|
||||||
|
typedef int (*pf_t)(int);
|
||||||
|
BOOST_STATIC_ASSERT((is_same<result_of<pf_t(int)>::type, int>::value));
|
||||||
|
BOOST_STATIC_ASSERT((is_same<result_of<pf_t const(int)>::type,int>::value));
|
||||||
|
|
||||||
#if defined(BOOST_HAS_DECLTYPE)
|
#if defined(BOOST_HAS_DECLTYPE)
|
||||||
BOOST_STATIC_ASSERT((is_same<result_of<no_result_type_or_result_of(double)>::type, int>::value));
|
BOOST_STATIC_ASSERT((is_same<result_of<no_result_type_or_result_of(double)>::type, int>::value));
|
||||||
BOOST_STATIC_ASSERT((is_same<result_of<no_result_type_or_result_of(void)>::type, unsigned int>::value));
|
BOOST_STATIC_ASSERT((is_same<result_of<no_result_type_or_result_of(void)>::type, unsigned int>::value));
|
||||||
|
60
utility.htm
60
utility.htm
@ -23,6 +23,8 @@
|
|||||||
<li>
|
<li>
|
||||||
Function template <a href="#addressof">addressof()</a></li>
|
Function template <a href="#addressof">addressof()</a></li>
|
||||||
<li>Class template <a href="#result_of">result_of</a></li>
|
<li>Class template <a href="#result_of">result_of</a></li>
|
||||||
|
<li>
|
||||||
|
Macro <a href="#BOOST_BINARY">BOOST_BINARY</a></li>
|
||||||
<li><a href="index.html">Other utilities not part of <code>utility.hpp</code></a></li>
|
<li><a href="index.html">Other utilities not part of <code>utility.hpp</code></a></li>
|
||||||
</ul>
|
</ul>
|
||||||
<h2>
|
<h2>
|
||||||
@ -183,9 +185,63 @@ void f() {
|
|||||||
|
|
||||||
<h2>Class templates for the Base-from-Member Idiom</h2>
|
<h2>Class templates for the Base-from-Member Idiom</h2>
|
||||||
<p>See <a href="base_from_member.html">separate documentation</a>.</p>
|
<p>See <a href="base_from_member.html">separate documentation</a>.</p>
|
||||||
|
<h2><a name="BOOST_BINARY">Macro BOOST_BINARY</a></h2>
|
||||||
|
|
||||||
|
<p>The macro <code>BOOST_BINARY</code> is used for the
|
||||||
|
representation of binary literals. It takes as an argument
|
||||||
|
a binary number arranged as an arbitrary amount of 1s and 0s in
|
||||||
|
groupings of length 1 to 8, with groups separated
|
||||||
|
by spaces. The type of the literal yielded is determined by
|
||||||
|
the same rules as those of hex and octal
|
||||||
|
literals (<i>2.13.1p1</i>). By implementation, this macro
|
||||||
|
expands directly to an octal literal during preprocessing, so
|
||||||
|
there is no overhead at runtime and the result is useable in
|
||||||
|
any place that an octal literal would be.</p>
|
||||||
|
|
||||||
|
<p>In order to directly support binary literals with suffixes,
|
||||||
|
additional macros of the form BOOST_BINARY_XXX are also
|
||||||
|
provided, where XXX is a standard integer suffix in all capital
|
||||||
|
letters. In addition, LL and ULL suffixes may be used for representing
|
||||||
|
long long and unsigned long long types in compilers which provide
|
||||||
|
them as an extension.</p>
|
||||||
|
|
||||||
|
|
||||||
|
<p>The BOOST_BINARY family of macros resides in the header
|
||||||
|
<a
|
||||||
|
href="../../boost/utility/binary.hpp"><boost/utility/binary.hpp></a>
|
||||||
|
which is automatically included by
|
||||||
|
<a
|
||||||
|
href="../../boost/utility.hpp"><boost/utility.hpp></a>.
|
||||||
|
|
||||||
|
<p>Contributed by Matt Calabrese.</p><p>
|
||||||
|
</p><h3>Example</h3>
|
||||||
|
<blockquote>
|
||||||
|
<pre>
|
||||||
|
void foo( int );
|
||||||
|
|
||||||
|
void foo( unsigned long );
|
||||||
|
|
||||||
|
void bar()
|
||||||
|
{
|
||||||
|
int value1 = BOOST_BINARY( 100 111000 01 1 110 );
|
||||||
|
|
||||||
|
unsigned long value2 = BOOST_BINARY_UL( 100 001 ); // unsigned long
|
||||||
|
|
||||||
|
long long value3 = BOOST_BINARY_LL( 11 000 ); // long long if supported
|
||||||
|
|
||||||
|
assert( BOOST_BINARY( 10010 )
|
||||||
|
& BOOST_BINARY( 11000 )
|
||||||
|
== BOOST_BINARY( 10000 )
|
||||||
|
);
|
||||||
|
|
||||||
|
foo( BOOST_BINARY( 1010 ) ); // calls the first foo
|
||||||
|
|
||||||
|
foo( BOOST_BINARY_LU( 1010 ) ); // calls the second foo
|
||||||
|
}
|
||||||
|
</pre></blockquote>
|
||||||
<hr>
|
<hr>
|
||||||
<p>Revised <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan
|
<p>Revised <!--webbot bot="Timestamp" S-Type="EDITED" S-Format="%d %B, %Y" startspan
|
||||||
-->07 November, 2007<!--webbot bot="Timestamp" endspan i-checksum="39369"
|
-->04 September, 2008<!--webbot bot="Timestamp" endspan i-checksum="39369"
|
||||||
-->
|
-->
|
||||||
</p>
|
</p>
|
||||||
<p>© Copyright Beman Dawes 1999-2003.</p>
|
<p>© Copyright Beman Dawes 1999-2003.</p>
|
||||||
@ -193,4 +249,4 @@ void f() {
|
|||||||
<a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a></p>
|
<a href="http://www.boost.org/LICENSE_1_0.txt">www.boost.org/LICENSE_1_0.txt</a></p>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
@ -253,7 +253,7 @@ its internal data, prior to constructing the object that it contains.
|
|||||||
|
|
||||||
<h2><a name="val_init"><code>template class value_initialized<T></code></a></h2>
|
<h2><a name="val_init"><code>template class value_initialized<T></code></a></h2>
|
||||||
|
|
||||||
<pre>namespace boost {<br><br>template<class T><br>class value_initialized<br>{<br> public :<br> value_initialized() : x() {}<br> operator T&() const { return x ; }<br> T& data() const { return x ; }<br><br> private :<br> <i>unspecified</i> x ;<br>} ;<br><br>template<class T><br>T const& get ( value_initialized<T> const& x )<br>{<br> return x.data() ;<br>}<br><br>template<class T><br>T& get ( value_initialized<T>& x )<br>{<br> return x.data() ;<br>}<br><br>} // namespace boost<br></pre>
|
<pre>namespace boost {<br><br>template<class T><br>class value_initialized<br>{<br> public :<br> value_initialized() : x() {}<br> operator T&() const { return x ; }<br> T& data() const { return x ; }<br> void swap( value_initialized<T>& );<br><br> private :<br> <i>unspecified</i> x ;<br>} ;<br><br>template<class T><br>T const& get ( value_initialized<T> const& x )<br>{<br> return x.data() ;<br>}<br><br>template<class T><br>T& get ( value_initialized<T>& x )<br>{<br> return x.data() ;<br>}<br><br>} // namespace boost<br></pre>
|
||||||
|
|
||||||
<p>An object of this template class is a <code>T</code>-wrapper convertible
|
<p>An object of this template class is a <code>T</code>-wrapper convertible
|
||||||
to <code>'T&'</code> whose wrapped object (data member of type <code>T</code>)
|
to <code>'T&'</code> whose wrapped object (data member of type <code>T</code>)
|
||||||
@ -276,6 +276,10 @@ non-member function <code>get()</code>: </p>
|
|||||||
<p>Both <code>const</code> and non-<code>const</code> objects can be wrapped.
|
<p>Both <code>const</code> and non-<code>const</code> objects can be wrapped.
|
||||||
Mutable objects can be modified directly from within the wrapper but constant
|
Mutable objects can be modified directly from within the wrapper but constant
|
||||||
objects cannot:</p>
|
objects cannot:</p>
|
||||||
|
|
||||||
|
<p>When <code>T</code> is a <em>Swappable</em> type, <code>value_initialized<T></code>
|
||||||
|
is swappable as well, by calling its <code>swap</code> member function
|
||||||
|
as well as by calling <code>boost::swap</code>.</p>
|
||||||
|
|
||||||
<pre>value_initialized<int> x ; <br>static_cast<int&>(x) = 1 ; // OK<br>get(x) = 1 ; // OK<br><br>value_initialized<int const> y ; <br>static_cast<int&>(y) = 1 ; // ERROR: cannot cast to int&<br>static_cast<int const&>(y) = 1 ; // ERROR: cannot modify a const value<br>get(y) = 1 ; // ERROR: cannot modify a const value</pre>
|
<pre>value_initialized<int> x ; <br>static_cast<int&>(x) = 1 ; // OK<br>get(x) = 1 ; // OK<br><br>value_initialized<int const> y ; <br>static_cast<int&>(y) = 1 ; // ERROR: cannot cast to int&<br>static_cast<int const&>(y) = 1 ; // ERROR: cannot modify a const value<br>get(y) = 1 ; // ERROR: cannot modify a const value</pre>
|
||||||
|
|
||||||
@ -379,7 +383,7 @@ for Boost release version 1.35 (2008), offering a workaround to various compiler
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<hr>
|
<hr>
|
||||||
<p>Revised 23 May 2008</p>
|
<p>Revised 28 August 2008</p>
|
||||||
|
|
||||||
<p>© Copyright Fernando Cacciola, 2002, 2008.</p>
|
<p>© Copyright Fernando Cacciola, 2002, 2008.</p>
|
||||||
|
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
// 21 Ago 2002 (Created) Fernando Cacciola
|
// 21 Ago 2002 (Created) Fernando Cacciola
|
||||||
// 15 Jan 2008 (Added tests regarding compiler issues) Fernando Cacciola, Niels Dekker
|
// 15 Jan 2008 (Added tests regarding compiler issues) Fernando Cacciola, Niels Dekker
|
||||||
// 23 May 2008 (Added tests regarding initialized_value) Niels Dekker
|
// 23 May 2008 (Added tests regarding initialized_value) Niels Dekker
|
||||||
|
// 21 Ago 2008 (Added swap test) Niels Dekker
|
||||||
|
|
||||||
#include <cstring> // For memcmp.
|
#include <cstring> // For memcmp.
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
@ -181,6 +182,35 @@ struct CopyFunctionCallTester
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// A struct that allows testing whether its customized swap function is called.
|
||||||
|
//
|
||||||
|
struct SwapFunctionCallTester
|
||||||
|
{
|
||||||
|
bool is_custom_swap_called;
|
||||||
|
int data;
|
||||||
|
|
||||||
|
SwapFunctionCallTester()
|
||||||
|
: is_custom_swap_called(false), data(0) {}
|
||||||
|
|
||||||
|
SwapFunctionCallTester(const SwapFunctionCallTester & arg)
|
||||||
|
: is_custom_swap_called(false), data(arg.data) {}
|
||||||
|
|
||||||
|
void swap(SwapFunctionCallTester & arg)
|
||||||
|
{
|
||||||
|
std::swap(data, arg.data);
|
||||||
|
is_custom_swap_called = true;
|
||||||
|
arg.is_custom_swap_called = true;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
void swap(SwapFunctionCallTester & lhs, SwapFunctionCallTester & rhs)
|
||||||
|
{
|
||||||
|
lhs.swap(rhs);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
template<class T>
|
template<class T>
|
||||||
void check_initialized_value ( T const& y )
|
void check_initialized_value ( T const& y )
|
||||||
{
|
{
|
||||||
@ -323,9 +353,20 @@ int test_main(int, char **)
|
|||||||
BOOST_CHECK ( ! get(copyFunctionCallTester3).is_copy_constructed);
|
BOOST_CHECK ( ! get(copyFunctionCallTester3).is_copy_constructed);
|
||||||
BOOST_CHECK ( get(copyFunctionCallTester3).is_assignment_called);
|
BOOST_CHECK ( get(copyFunctionCallTester3).is_assignment_called);
|
||||||
|
|
||||||
|
boost::value_initialized<SwapFunctionCallTester> swapFunctionCallTester1;
|
||||||
|
boost::value_initialized<SwapFunctionCallTester> swapFunctionCallTester2;
|
||||||
|
get(swapFunctionCallTester1).data = 1;
|
||||||
|
get(swapFunctionCallTester2).data = 2;
|
||||||
|
boost::swap(swapFunctionCallTester1, swapFunctionCallTester2);
|
||||||
|
BOOST_CHECK( get(swapFunctionCallTester1).data == 2 );
|
||||||
|
BOOST_CHECK( get(swapFunctionCallTester2).data == 1 );
|
||||||
|
BOOST_CHECK( get(swapFunctionCallTester1).is_custom_swap_called );
|
||||||
|
BOOST_CHECK( get(swapFunctionCallTester2).is_custom_swap_called );
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
unsigned int expected_failures = 0;
|
unsigned int expected_failures = 0;
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user