Fixed build errors with Boost 1.59

This commit is contained in:
Mathieu Champlon 2015-09-04 22:56:29 +02:00
parent dd866ab895
commit 1ab35d8912
7 changed files with 95 additions and 23 deletions

View file

@ -1,3 +1,4 @@
/*.opensdf /*.opensdf
/*.sdf /*.sdf
/*.suo /*.suo
*.ipch

View file

@ -102,6 +102,18 @@
<IntDir Condition="'$(Configuration)|$(Platform)'=='release|Win32'">../../out/vc100/$(Configuration)/libraries/$(ProjectName)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='release|Win32'">../../out/vc100/$(Configuration)/libraries/$(ProjectName)\</IntDir>
<IntDir Condition="'$(Configuration)|$(Platform)'=='release|x64'">../../out/vc100_x64/$(Configuration)/libraries/$(ProjectName)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='release|x64'">../../out/vc100_x64/$(Configuration)/libraries/$(ProjectName)\</IntDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|Win32'">
<IncludePath>C:\dev\home\boost;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'">
<IncludePath>C:\dev\home\boost;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
<IncludePath>C:\dev\home\boost;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;</IncludePath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'">
<IncludePath>C:\dev\home\boost;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;</IncludePath>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile> <ClCompile>
<AdditionalOptions>/Zm179 %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/Zm179 %(AdditionalOptions)</AdditionalOptions>

View file

@ -88,26 +88,26 @@
<IntDir Condition="'$(Configuration)|$(Platform)'=='release|x64'">../../out/vc100_x64/$(Configuration)/tests/$(ProjectName)\</IntDir> <IntDir Condition="'$(Configuration)|$(Platform)'=='release|x64'">../../out/vc100_x64/$(Configuration)/tests/$(ProjectName)\</IntDir>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|Win32'">
<IncludePath>c:\dev\include;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;</IncludePath> <IncludePath>C:\dev\home\boost;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;</IncludePath>
<LibraryPath>c:\dev\lib\vc100_x64;$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib</LibraryPath> <LibraryPath>C:\dev\home\boost\stage\lib;$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib</LibraryPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|Win32'">
<IncludePath>c:\dev\include;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;</IncludePath> <IncludePath>C:\dev\home\boost;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;</IncludePath>
<LibraryPath>c:\dev\lib\vc100_x64;$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib</LibraryPath> <LibraryPath>C:\dev\home\boost\stage\lib;$(VCInstallDir)lib;$(VCInstallDir)atlmfc\lib;$(WindowsSdkDir)lib;$(FrameworkSDKDir)\lib</LibraryPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='debug|x64'">
<IncludePath>c:\dev\include;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;</IncludePath> <IncludePath>C:\dev\home\boost;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;</IncludePath>
<LibraryPath>c:\dev\lib\vc100_x64;$(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64;</LibraryPath> <LibraryPath>C:\dev\home\boost\stage\lib;$(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64;</LibraryPath>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'"> <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='release|x64'">
<IncludePath>c:\dev\include;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;</IncludePath> <IncludePath>C:\dev\home\boost;$(VCInstallDir)include;$(VCInstallDir)atlmfc\include;$(WindowsSdkDir)include;$(FrameworkSDKDir)\include;</IncludePath>
<LibraryPath>c:\dev\lib\vc100_x64;$(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64;</LibraryPath> <LibraryPath>C:\dev\home\boost\stage\lib;$(VCInstallDir)lib\amd64;$(VCInstallDir)atlmfc\lib\amd64;$(WindowsSdkDir)lib\x64;</LibraryPath>
</PropertyGroup> </PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile> <ClCompile>
<AdditionalOptions>/Zm172 %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/Zm172 %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../..; ../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@ -140,7 +140,7 @@
<ClCompile> <ClCompile>
<AdditionalOptions>/Zm172 %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/Zm172 %(AdditionalOptions)</AdditionalOptions>
<Optimization>Disabled</Optimization> <Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>../..;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks> <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
@ -172,7 +172,7 @@
<ClCompile> <ClCompile>
<AdditionalOptions>/Zm162 %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/Zm162 %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization> <Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>../..; ../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>Default</BasicRuntimeChecks> <BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
@ -205,7 +205,7 @@
<ClCompile> <ClCompile>
<AdditionalOptions>/Zm162 %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions>/Zm162 %(AdditionalOptions)</AdditionalOptions>
<Optimization>MaxSpeed</Optimization> <Optimization>MaxSpeed</Optimization>
<AdditionalIncludeDirectories>../..;../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>../../include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<BasicRuntimeChecks>Default</BasicRuntimeChecks> <BasicRuntimeChecks>Default</BasicRuntimeChecks>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary> <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>

View file

@ -11,6 +11,7 @@
Not yet released Not yet released
* Fixed missing thread synchronization in mock::sequence * Fixed missing thread synchronization in mock::sequence
* Fixed build errors with Boost 1.59
[endsect] [endsect]

View file

@ -13,7 +13,9 @@
#include "constraint.hpp" #include "constraint.hpp"
#include "detail/addressof.hpp" #include "detail/addressof.hpp"
#include <boost/ref.hpp> #include <boost/ref.hpp>
#include <boost/version.hpp>
#include <boost/utility/enable_if.hpp> #include <boost/utility/enable_if.hpp>
#include <boost/type_traits/common_type.hpp>
#include <boost/type_traits/is_convertible.hpp> #include <boost/type_traits/is_convertible.hpp>
#include <boost/test/floating_point_comparison.hpp> #include <boost/test/floating_point_comparison.hpp>
@ -30,24 +32,67 @@ namespace mock
MOCK_NARY_CONSTRAINT( less_equal, 1, ( expected ), actual <= expected ) MOCK_NARY_CONSTRAINT( less_equal, 1, ( expected ), actual <= expected )
MOCK_NARY_CONSTRAINT( greater_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 #ifdef BOOST_MSVC
# pragma push_macro( "small" ) # pragma push_macro( "small" )
# undef small # undef small
#endif #endif
MOCK_NARY_CONSTRAINT( small, 1, ( expected ), MOCK_NARY_CONSTRAINT( small, 1, ( tolerance ),
( boost::test_tools::check_is_small( actual, expected ) ) ) ( MOCK_SMALL() ) )
#ifdef BOOST_MSVC #ifdef BOOST_MSVC
# pragma pop_macro( "small" ) # pragma pop_macro( "small" )
#endif #endif
MOCK_NARY_CONSTRAINT( close, 2, ( expected, tolerance ), MOCK_NARY_CONSTRAINT( close, 2, ( expected, tolerance ),
( boost::test_tools::check_is_close( ( MOCK_PERCENT_TOLERANCE() ) )
actual, expected,
boost::test_tools::percent_tolerance( tolerance ) ) ) )
MOCK_NARY_CONSTRAINT( close_fraction, 2, ( expected, tolerance ), MOCK_NARY_CONSTRAINT( close_fraction, 2, ( expected, tolerance ),
( boost::test_tools::check_is_close( ( MOCK_FRACTION_TOLERANCE() ) )
actual, expected,
boost::test_tools::fraction_tolerance( tolerance ) ) ) ) #undef MOCK_PERCENT_TOLERANCE
#undef MOCK_FRACTION_TOLERANCE
#ifdef BOOST_MSVC #ifdef BOOST_MSVC
# pragma push_macro( "near" ) # pragma push_macro( "near" )

View file

@ -28,7 +28,7 @@ namespace detail
mock::reset(); mock::reset();
} }
}; };
BOOST_GLOBAL_FIXTURE( cleanup ) BOOST_GLOBAL_FIXTURE( cleanup );
} }
} // mock } // mock

View file

@ -12,6 +12,7 @@
#include "config.hpp" #include "config.hpp"
#ifdef MOCK_USE_BOOST_TEST #ifdef MOCK_USE_BOOST_TEST
#include "exception.hpp" #include "exception.hpp"
#include <boost/version.hpp>
#include <boost/test/framework.hpp> #include <boost/test/framework.hpp>
#include <boost/test/test_tools.hpp> #include <boost/test/test_tools.hpp>
#include <boost/test/unit_test_suite.hpp> #include <boost/test/unit_test_suite.hpp>
@ -39,7 +40,13 @@ namespace mock
static void fail( const char* message, const Context& context, static void fail( const char* message, const Context& context,
const char* file = "unknown location", int line = 0 ) 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::unit_test_log
<< boost::unit_test::log::begin( file, << boost::unit_test::log::begin( file,
static_cast< std::size_t >( line ) ) static_cast< std::size_t >( line ) )
@ -51,7 +58,13 @@ namespace mock
template< typename Context > template< typename Context >
static void call( const Context& context, const char* file, int line ) 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::unit_test_log
<< boost::unit_test::log::begin( file, << boost::unit_test::log::begin( file,
static_cast< std::size_t >( line ) ) static_cast< std::size_t >( line ) )