Ensure error_category::operator< test works regardless of how compiler lays out memory.

[SVN r39248]
This commit is contained in:
Beman Dawes
2007-09-13 21:47:25 +00:00
parent 1818d5f65a
commit 0a283a8f00

View File

@@ -24,6 +24,7 @@
#include <sstream>
#include <string>
#include <cstring>
#include <functional>
#include <boost/cerrno.hpp>
// Although using directives are not the best programming practice, testing
@@ -66,8 +67,18 @@ int test_main( int, char ** )
BOOST_CHECK( system_category == system_category );
BOOST_CHECK( posix_category != system_category );
BOOST_CHECK( system_category != posix_category );
BOOST_CHECK( posix_category < system_category );
BOOST_CHECK( !(system_category < posix_category) );
if ( std::less<const error_category*>()( &posix_category, &system_category ) )
{
BOOST_CHECK( posix_category < system_category );
BOOST_CHECK( !(system_category < posix_category) );
}
else
{
BOOST_CHECK( system_category < posix_category );
BOOST_CHECK( !(posix_category < system_category) );
}
error_code ec;
error_condition dec;