Compare commits

...

30 Commits

Author SHA1 Message Date
Daniel James
9678f6aa3b Create merge base for git. 2014-04-06 13:53:46 +01:00
Michel Morin
c0b1609ddb Merge r86524 (Correct broken links to C++ standard papers); fixes #9212
[SVN r86673]
2013-11-13 03:22:55 +00:00
Marshall Clow
a73b6fb582 Merged boost::algorithm::gather and updated tests for Utility, Algorithm and Utility libraries
[SVN r83154]
2013-02-25 18:43:26 +00:00
Marshall Clow
ba1a2437cf Merge doc changes to release; fixes #6988
[SVN r78948]
2012-06-14 16:01:03 +00:00
Marshall Clow
3db6930a22 Added support Boost.Hash; checked in a test yesterday, but forgot to merge the actual code
[SVN r78581]
2012-05-24 13:04:02 +00:00
Marshall Clow
859fb5aa97 Merged changes for Boost.Array to release; adds support for Boost.Hash
[SVN r78558]
2012-05-23 16:35:13 +00:00
Marshall Clow
5a97de6f2e Merge changes in Boost.Array to release
[SVN r70698]
2011-03-29 14:49:32 +00:00
Marshall Clow
eea368fadf Merge changes in Boost.Array to release
[SVN r70697]
2011-03-29 14:47:50 +00:00
Marshall Clow
26edbea113 Merging changes to release; fixes #4761
[SVN r68100]
2011-01-13 15:49:03 +00:00
Marshall Clow
9644ee6662 Merged array changes to release; fixes #4757
[SVN r67477]
2010-12-28 18:28:22 +00:00
Marshall Clow
a603bffc48 Merged Array changes to release
[SVN r63410]
2010-06-28 17:59:21 +00:00
Marshall Clow
0c8902e8c2 Merged array changes from trunk to release; Fixes #3893 and #3168
[SVN r60824]
2010-03-25 15:32:12 +00:00
Marshall Clow
88868ba0df Merged array changes from trunk to release
[SVN r58921]
2010-01-12 05:55:52 +00:00
Troy D. Straszheim
99631823f6 rm cmake from the release branch before it goes out broken. Policy dictates that you never commit to release, you commit to trunk and merge to release.
[SVN r56941]
2009-10-17 01:10:45 +00:00
Troy D. Straszheim
5661b8cd63 Add basic copyright/license to keep cmake out of the inspection report
[SVN r55095]
2009-07-22 21:51:01 +00:00
Steven Watanabe
86b069ad0e Merge [53104] and [53105] from the trunk
[SVN r53198]
2009-05-23 06:00:42 +00:00
Troy D. Straszheim
3d20bb1310 merge of cmake build files from trunk per beman
[SVN r50756]
2009-01-24 18:57:20 +00:00
Boris Gubenko
e7122b3f20 merge tests and Jamfiles for 7 libraries
[SVN r50456]
2009-01-04 05:17:02 +00:00
Beman Dawes
4dd2cf1b64 Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41370]
2007-11-25 18:38:02 +00:00
Beman Dawes
2e88dc228d Full merge from trunk at revision 41356 of entire boost-root tree.
[SVN r41369]
2007-11-25 18:07:19 +00:00
Beman Dawes
0a4d7e81ef Starting point for releases
[SVN r39706]
2007-10-05 14:25:06 +00:00
nobody
96d4c5f737 This commit was manufactured by cvs2svn to create tag
'Version_1_34_1'.

[SVN r38286]
2007-07-24 19:28:14 +00:00
Andreas Huber
5a23b06a83 Merged L & C issue fixes from trunk to branch.
[SVN r36225]
2006-12-01 11:34:43 +00:00
Beman Dawes
e85feee293 Merged copyright and license addition
[SVN r35907]
2006-11-07 19:27:00 +00:00
Gennaro Prota
b6522b3f60 (merge from head)
http://www.josuttis.com/ hasn't the latest version any more


[SVN r34856]
2006-08-08 18:53:30 +00:00
John Maddock
3044ab376c Simplified code.
[SVN r34384]
2006-06-24 11:31:19 +00:00
John Maddock
69188c998f Fix compiler errors resulting from missing return values.
[SVN r34259]
2006-06-09 11:40:07 +00:00
Alisdair Meredith
4c5212f5e4 Remove size zero support for old compilers that do not support partial template specialization
[SVN r34162]
2006-06-04 12:10:17 +00:00
Alisdair Meredith
276cd991f3 Support for zero length arrays
[SVN r34156]
2006-06-03 13:04:27 +00:00
nobody
1f8298fb08 This commit was manufactured by cvs2svn to create branch 'RC_1_34_0'.
[SVN r33417]
2006-03-21 02:26:31 +00:00
5 changed files with 58 additions and 93 deletions

View File

@@ -68,7 +68,7 @@
<para>Note that this class is suggested to be part of the next
Technical Report, which will extend the C++ Standard (see
<ulink url="http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1548.htm">http://std.dkuug.dk/jtc1/sc22/wg21/docs/papers/2003/n1548.htm</ulink>).</para>
<ulink url="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1548.htm">http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2003/n1548.htm</ulink>).</para>
<para>Update: <code>std::array</code> is (as of C++11) part of the C++ standard.
The differences between <code>boost::array</code> and <code>std::array</code> are minimal.

View File

@@ -4,13 +4,18 @@
import testing ;
alias unit_test_framework
: # sources
/boost//unit_test_framework
;
test-suite array :
[ run array0.cpp ]
[ run array0.cpp unit_test_framework : : : : array0 ]
[ run array1.cpp ]
[ run array2.cpp ]
[ run array3.cpp ]
[ run array4.cpp ]
[ run array5.cpp ]
[ run array6.cpp ]
[ run array_hash.cpp ]
[ run array6.cpp unit_test_framework : : : : array6 ]
[ run array_hash.cpp unit_test_framework : : : : array_hash ]
;

View File

@@ -9,18 +9,15 @@
#include <iostream>
#include <boost/array.hpp>
namespace {
unsigned int failed_tests = 0;
#define BOOST_TEST_MAIN
#include <boost/test/unit_test.hpp>
void fail_test( const char * reason ) {
++failed_tests;
std::cerr << "Test failure " << failed_tests << ": " << reason << std::endl;
}
namespace {
template< class T >
void BadValue( const T & )
{
fail_test( "Unexpected value" );
BOOST_CHECK ( false );
}
template< class T >
@@ -36,46 +33,24 @@ void RunTests()
// front/back and operator[] must compile, but calling them is undefined
// Likewise, all tests below should evaluate to false, avoiding undefined behaviour
if( !test_case.empty() ) {
BadValue( test_case.front() );
}
BOOST_CHECK ( test_case.empty());
BOOST_CHECK ( const_test_case.empty());
if( !const_test_case.empty() ) {
BadValue( const_test_case.back() );
}
if( test_case.size() > 0 ) {
BadValue( test_case[ 0 ] );
}
if( const_test_case.max_size() > 0 ) {
BadValue( const_test_case[ 0 ] );
}
BOOST_CHECK ( test_case.size() == 0 );
BOOST_CHECK ( const_test_case.size() == 0 );
// Assert requirements of TR1 6.2.2.4
if( test_case.begin() != test_case.end() ) {
fail_test( "Not an empty range" );
}
if( test_case.cbegin() != test_case.cend() ) {
fail_test( "Not an empty range" );
}
if( const_test_case.begin() != const_test_case.end() ) {
fail_test( "Not an empty range" );
}
if( const_test_case.cbegin() != const_test_case.cend() ) {
fail_test( "Not an empty range" );
}
if( test_case.begin() == const_test_case.begin() ) {
fail_test( "iterators for different containers are not distinct" );
}
BOOST_CHECK ( test_case.begin() == test_case.end());
BOOST_CHECK ( test_case.cbegin() == test_case.cend());
BOOST_CHECK ( const_test_case.begin() == const_test_case.end());
BOOST_CHECK ( const_test_case.cbegin() == const_test_case.cend());
BOOST_CHECK ( test_case.begin() != const_test_case.begin() );
if( test_case.data() == const_test_case.data() ) {
// Value of data is unspecified in TR1, so no requirement this test pass or fail
// However, it must compile!
}
// Check can safely use all iterator types with std algorithms
std::for_each( test_case.begin(), test_case.end(), BadValue< T > );
std::for_each( test_case.rbegin(), test_case.rend(), BadValue< T > );
@@ -87,12 +62,12 @@ void RunTests()
// Check swap is well formed
std::swap( test_case, test_case );
// Check assigment operator and overloads are well formed
// Check assignment operator and overloads are well formed
test_case = const_test_case;
// Confirm at() throws the std lib defined exception
try {
BadValue( test_case.at( 0 ) );
BadValue( test_case.at( 0 ));
} catch ( const std::out_of_range & ) {
}
@@ -104,12 +79,11 @@ void RunTests()
}
int main()
BOOST_AUTO_TEST_CASE( test_main )
{
RunTests< bool >();
RunTests< void * >();
RunTests< long double >();
RunTests< std::string >();
return failed_tests;
}

View File

@@ -10,39 +10,31 @@
#include <boost/array.hpp>
#include <algorithm>
#define BOOST_TEST_MAIN
#include <boost/test/unit_test.hpp>
namespace {
unsigned int failed_tests = 0;
void fail_test( const char * reason ) {
++failed_tests;
std::cerr << "Test failure " << failed_tests << ": " << reason << std::endl;
}
template< class T >
void RunTests()
{
typedef boost::array< T, 5 > test_type;
typedef T arr[5];
test_type test_case; // = { 1, 1, 2, 3, 5 };
template< class T >
void RunTests()
{
typedef boost::array< T, 5 > test_type;
typedef T arr[5];
test_type test_case; // = { 1, 1, 2, 3, 5 };
arr &aRef = get_c_array ( test_case );
if ( &*test_case.begin () != &aRef[0] )
fail_test ( "Array6: Same thing not equal?(1)" );
arr &aRef = get_c_array ( test_case );
BOOST_CHECK ( &*test_case.begin () == &aRef[0] );
const arr &caRef = get_c_array ( test_case );
typename test_type::const_iterator iter = test_case.begin ();
if ( &*iter != &caRef[0] )
fail_test ( "Array6: Same thing not equal?(2)" );
const arr &caRef = get_c_array ( test_case );
typename test_type::const_iterator iter = test_case.begin ();
BOOST_CHECK ( &*iter == &caRef[0] );
}
}
}
int main()
BOOST_AUTO_TEST_CASE( test_main )
{
RunTests< bool >();
RunTests< void * >();
RunTests< long double >();
RunTests< std::string >();
return failed_tests;
}

View File

@@ -11,39 +11,33 @@
#include <algorithm>
#include <boost/functional/hash.hpp>
#define BOOST_TEST_MAIN
#include <boost/test/unit_test.hpp>
namespace {
unsigned int failed_tests = 0;
void fail_test( const char * reason ) {
++failed_tests;
std::cerr << "Test failure " << failed_tests << ": " << reason << std::endl;
}
template< class T >
void RunTests()
{
// std::size_t hash0 = boost::hash<boost::array<T,0> > () ( boost::array<T, 0> ());
// std::size_t hash1 = boost::hash<boost::array<T,1> > () ( boost::array<T, 1> ());
template< class T >
void RunTests()
{
// std::size_t hash0 = boost::hash<boost::array<T,0> > () ( boost::array<T, 0> ());
// std::size_t hash1 = boost::hash<boost::array<T,1> > () ( boost::array<T, 1> ());
typedef boost::array< T, 5 > barr;
typedef T arr[5];
barr test_barr = {{ 1, 1, 2, 3, 5 }};
arr test_arr = { 1, 1, 2, 3, 5 };
typedef boost::array< T, 5 > barr;
typedef T arr[5];
barr test_barr = {{ 1, 1, 2, 3, 5 }};
arr test_arr = { 1, 1, 2, 3, 5 };
std::size_t bhash = boost::hash<barr> () ( test_barr );
std::size_t ahash = boost::hash<arr> () ( test_arr );
if ( ahash != bhash )
fail_test ( "Array_hash: Hash-mismatch on " );
}
std::size_t bhash = boost::hash<barr> () ( test_barr );
std::size_t ahash = boost::hash<arr> () ( test_arr );
BOOST_CHECK ( ahash == bhash );
}
}
int main()
BOOST_AUTO_TEST_CASE( test_main )
{
RunTests< int >();
RunTests< long >();
RunTests< long double >();
return failed_tests;
}