diff --git a/build/vc100/.gitignore b/build/vc100/.gitignore
index bacfd8c..b6f8d86 100644
--- a/build/vc100/.gitignore
+++ b/build/vc100/.gitignore
@@ -1,3 +1,4 @@
/*.opensdf
/*.sdf
/*.suo
+*.ipch
\ No newline at end of file
diff --git a/build/vc100/turtle.vcxproj b/build/vc100/turtle.vcxproj
index cc9280e..2fc8585 100644
--- a/build/vc100/turtle.vcxproj
+++ b/build/vc100/turtle.vcxproj
@@ -102,6 +102,18 @@
../../out/vc100/$(Configuration)/libraries/$(ProjectName)\
../../out/vc100_x64/$(Configuration)/libraries/$(ProjectName)\
+
+ C:\dev\home\boost;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;
+
+
+ C:\dev\home\boost;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;
+
+
+ C:\dev\home\boost;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;
+
+
+ C:\dev\home\boost;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;
+
/Zm179 %(AdditionalOptions)
diff --git a/build/vc100/turtle_test.vcxproj b/build/vc100/turtle_test.vcxproj
index 82f561e..a6aed44 100644
--- a/build/vc100/turtle_test.vcxproj
+++ b/build/vc100/turtle_test.vcxproj
@@ -88,26 +88,26 @@
../../out/vc100_x64/$(Configuration)/tests/$(ProjectName)\
- c:\dev\include;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;
- c:\dev\lib\vc100_x64;$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib
+ C:\dev\home\boost;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;
+ C:\dev\home\boost\stage\lib;$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib
- c:\dev\include;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;
- c:\dev\lib\vc100_x64;$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib
+ C:\dev\home\boost;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;
+ C:\dev\home\boost\stage\lib;$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib
- c:\dev\include;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;
- c:\dev\lib\vc100_x64;$(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64;
+ C:\dev\home\boost;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;
+ C:\dev\home\boost\stage\lib;$(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64;
- c:\dev\include;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;
- c:\dev\lib\vc100_x64;$(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64;
+ C:\dev\home\boost;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;
+ C:\dev\home\boost\stage\lib;$(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64;
/Zm172 %(AdditionalOptions)
Disabled
- ../..; ../../include;%(AdditionalIncludeDirectories)
+ ../../include;%(AdditionalIncludeDirectories)
WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebugDLL
@@ -140,7 +140,7 @@
/Zm172 %(AdditionalOptions)
Disabled
- ../..;../../include;%(AdditionalIncludeDirectories)
+ ../../include;%(AdditionalIncludeDirectories)
WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)
EnableFastChecks
MultiThreadedDebugDLL
@@ -172,7 +172,7 @@
/Zm162 %(AdditionalOptions)
MaxSpeed
- ../..; ../../include;%(AdditionalIncludeDirectories)
+ ../../include;%(AdditionalIncludeDirectories)
WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
Default
MultiThreadedDLL
@@ -205,7 +205,7 @@
/Zm162 %(AdditionalOptions)
MaxSpeed
- ../..;../../include;%(AdditionalIncludeDirectories)
+ ../../include;%(AdditionalIncludeDirectories)
WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)
Default
MultiThreadedDLL
diff --git a/doc/changelog.qbk b/doc/changelog.qbk
index f5dcd63..87bec51 100644
--- a/doc/changelog.qbk
+++ b/doc/changelog.qbk
@@ -11,6 +11,7 @@
Not yet released
* Fixed missing thread synchronization in mock::sequence
+* Fixed build errors with Boost 1.59
[endsect]
diff --git a/include/turtle/constraints.hpp b/include/turtle/constraints.hpp
index c0ce82c..6a814a2 100644
--- a/include/turtle/constraints.hpp
+++ b/include/turtle/constraints.hpp
@@ -13,7 +13,9 @@
#include "constraint.hpp"
#include "detail/addressof.hpp"
#include
+#include
#include
+#include
#include
#include
@@ -30,24 +32,67 @@ namespace mock
MOCK_NARY_CONSTRAINT( less_equal, 1, ( expected ), actual <= expected )
MOCK_NARY_CONSTRAINT( greater_equal, 1, ( expected ), actual >= expected )
+#if BOOST_VERSION < 105900
+
+# define MOCK_SMALL() \
+ boost::test_tools::check_is_small( actual, tolerance )
+# define MOCK_PERCENT_TOLERANCE() \
+ boost::test_tools::check_is_close( \
+ actual, \
+ expected, \
+ boost::test_tools::percent_tolerance( tolerance ) )
+# define MOCK_FRACTION_TOLERANCE() \
+ boost::test_tools::check_is_close( \
+ actual, \
+ expected, \
+ boost::test_tools::fraction_tolerance( tolerance ) )
+
+#else // BOOST_VERSION < 105900
+
+namespace detail
+{
+ template< typename T, typename Tolerance >
+ bool is_small( const T& t, const Tolerance& tolerance )
+ {
+ return boost::math::fpc::small_with_tolerance< T >( tolerance )( t );
+ }
+
+ template< typename T1, typename T2, typename Tolerance >
+ bool is_close( const T1& t1, const T2& t2, const Tolerance& tolerance )
+ {
+ typedef typename boost::common_type< T1, T2 >::type common_type;
+ return boost::math::fpc::close_at_tolerance< common_type >(
+ tolerance, boost::math::fpc::FPC_STRONG )( t1, t2 );
+ }
+}
+
+# define MOCK_SMALL() \
+ detail::is_small( actual, tolerance )
+# define MOCK_PERCENT_TOLERANCE() \
+ detail::is_close( actual, expected, boost::math::fpc::percent_tolerance( tolerance ) )
+# define MOCK_FRACTION_TOLERANCE() \
+ detail::is_close( actual, expected, tolerance )
+
+#endif // BOOST_VERSION < 105900
+
#ifdef BOOST_MSVC
# pragma push_macro( "small" )
# undef small
#endif
- MOCK_NARY_CONSTRAINT( small, 1, ( expected ),
- ( boost::test_tools::check_is_small( actual, expected ) ) )
+ MOCK_NARY_CONSTRAINT( small, 1, ( tolerance ),
+ ( MOCK_SMALL() ) )
#ifdef BOOST_MSVC
# pragma pop_macro( "small" )
#endif
MOCK_NARY_CONSTRAINT( close, 2, ( expected, tolerance ),
- ( boost::test_tools::check_is_close(
- actual, expected,
- boost::test_tools::percent_tolerance( tolerance ) ) ) )
+ ( MOCK_PERCENT_TOLERANCE() ) )
+
MOCK_NARY_CONSTRAINT( close_fraction, 2, ( expected, tolerance ),
- ( boost::test_tools::check_is_close(
- actual, expected,
- boost::test_tools::fraction_tolerance( tolerance ) ) ) )
+ ( MOCK_FRACTION_TOLERANCE() ) )
+
+#undef MOCK_PERCENT_TOLERANCE
+#undef MOCK_FRACTION_TOLERANCE
#ifdef BOOST_MSVC
# pragma push_macro( "near" )
diff --git a/include/turtle/detail/cleanup.hpp b/include/turtle/detail/cleanup.hpp
index ca5d212..87cc5fb 100644
--- a/include/turtle/detail/cleanup.hpp
+++ b/include/turtle/detail/cleanup.hpp
@@ -28,7 +28,7 @@ namespace detail
mock::reset();
}
};
- BOOST_GLOBAL_FIXTURE( cleanup )
+ BOOST_GLOBAL_FIXTURE( cleanup );
}
} // mock
diff --git a/include/turtle/error.hpp b/include/turtle/error.hpp
index 7b04ad3..95be42c 100644
--- a/include/turtle/error.hpp
+++ b/include/turtle/error.hpp
@@ -12,6 +12,7 @@
#include "config.hpp"
#ifdef MOCK_USE_BOOST_TEST
#include "exception.hpp"
+#include
#include
#include
#include
@@ -39,7 +40,13 @@ namespace mock
static void fail( const char* message, const Context& context,
const char* file = "unknown location", int line = 0 )
{
- boost::unit_test::framework::assertion_result( false );
+ boost::unit_test::framework::assertion_result(
+#if BOOST_VERSION < 105900
+ false
+#else
+ boost::unit_test::AR_FAILED
+#endif
+ );
boost::unit_test::unit_test_log
<< boost::unit_test::log::begin( file,
static_cast< std::size_t >( line ) )
@@ -51,7 +58,13 @@ namespace mock
template< typename Context >
static void call( const Context& context, const char* file, int line )
{
- boost::unit_test::framework::assertion_result( true );
+ boost::unit_test::framework::assertion_result(
+#if BOOST_VERSION < 105900
+ true
+#else
+ boost::unit_test::AR_PASSED
+#endif
+ );
boost::unit_test::unit_test_log
<< boost::unit_test::log::begin( file,
static_cast< std::size_t >( line ) )