diff --git a/Builds/VisualStudio2012/beast.vcxproj b/Builds/VisualStudio2012/beast.vcxproj index e066b66e5..07a2ab45f 100644 --- a/Builds/VisualStudio2012/beast.vcxproj +++ b/Builds/VisualStudio2012/beast.vcxproj @@ -90,7 +90,7 @@ - + @@ -104,8 +104,6 @@ - - @@ -295,6 +293,8 @@ + + @@ -416,7 +416,6 @@ true true - true @@ -1150,6 +1149,7 @@ true true + true @@ -1306,7 +1306,7 @@ Disabled WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions) - $(ProjectDir) + $(ProjectDir);%(AdditionalIncludeDirectories) Windows @@ -1321,7 +1321,7 @@ true true WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - $(ProjectDir) + $(ProjectDir);%(AdditionalIncludeDirectories) Windows @@ -1338,7 +1338,7 @@ true true WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions) - $(ProjectDir) + $(ProjectDir);%(AdditionalIncludeDirectories) Windows diff --git a/Builds/VisualStudio2012/beast.vcxproj.filters b/Builds/VisualStudio2012/beast.vcxproj.filters index b0ca0d76a..c8800430f 100644 --- a/Builds/VisualStudio2012/beast.vcxproj.filters +++ b/Builds/VisualStudio2012/beast.vcxproj.filters @@ -143,12 +143,6 @@ {beb81776-4aad-401d-8826-81478dbbf30b} - - {0eac8b8d-7049-4eda-b6b4-53194d336a97} - - - {1e6959ed-fcb9-4a3b-ac5a-eb26973e21f6} - {493db217-b3e4-4b08-97b2-a2d753cc8c35} @@ -161,6 +155,12 @@ {5df65855-1ccd-4997-97c1-f9788924ee2b} + + {2f5b95a8-1adf-4319-8464-ddc2b2e03f0b} + + + {bf498396-2e1f-4903-be68-3053ba439af5} + @@ -695,9 +695,6 @@ beast_asio\sockets - - beast_asio\system - beast_asio\tests @@ -794,18 +791,12 @@ beast_core\diagnostic - - beast_boost - beast_core\threads beast_core\threads - - beast_boost\traits - beast_core\thread @@ -911,6 +902,15 @@ beast_asio + + beast_asio\system + + + beast_extras\traits + + + beast_extras + @@ -1327,9 +1327,6 @@ beast_asio\async - - beast_boost - beast_core\threads @@ -1387,6 +1384,9 @@ beast_asio\basics + + beast_extras + diff --git a/modules/beast_asio/beast_asio.h b/modules/beast_asio/beast_asio.h index f858ab967..66cd28ab4 100644 --- a/modules/beast_asio/beast_asio.h +++ b/modules/beast_asio/beast_asio.h @@ -41,7 +41,7 @@ #include "../beast_core/beast_core.h" // This module requires boost and possibly OpenSSL -#include "system/beast_BoostIncludes.h" +#include "system/BoostIncludes.h" // Checking overrides replaces unimplemented stubs with pure virtuals #ifndef BEAST_COMPILER_CHECKS_SOCKET_OVERRIDES diff --git a/modules/beast_asio/sockets/beast_SocketWrapper.h b/modules/beast_asio/sockets/beast_SocketWrapper.h index b7e86ab09..ea2f67166 100644 --- a/modules/beast_asio/sockets/beast_SocketWrapper.h +++ b/modules/beast_asio/sockets/beast_SocketWrapper.h @@ -190,7 +190,7 @@ public: // // This include will be needed: // - // #include + // boost/tti/has_type.hpp // // BOOST_TTI_HAS_TYPE(native_handle_type) diff --git a/modules/beast_asio/system/beast_BoostIncludes.h b/modules/beast_asio/system/BoostIncludes.h similarity index 67% rename from modules/beast_asio/system/beast_BoostIncludes.h rename to modules/beast_asio/system/BoostIncludes.h index 72cad3b01..7f7970247 100644 --- a/modules/beast_asio/system/beast_BoostIncludes.h +++ b/modules/beast_asio/system/BoostIncludes.h @@ -38,8 +38,11 @@ # endif #endif -#include +// Unfortunately, we use some boost detail elements +// +// https://svn.boost.org/trac/boost/ticket/9024 +#include #include #include #include @@ -47,29 +50,9 @@ #include #include #include - -// Unfortunately, we need to use some boost detail -// -// https://svn.boost.org/trac/boost/ticket/9024 -// #include #include -// Not sure when handler_type was added but it's not in 1.48 -#ifndef BEAST_ASIO_HAS_HANDLER_TYPE -# if BOOST_VERSION >= 105400 -# define BEAST_ASIO_HAS_HANDLER_TYPE 1 -# else -# define BEAST_ASIO_HAS_HANDLER_TYPE 0 -# endif -#endif -#if BEAST_ASIO_HAS_HANDLER_TYPE -# include -# define BEAST_ASIO_HANDLER_TYPE(h, sig) BOOST_ASIO_HANDLER_TYPE(h, sig) -#else -# define BEAST_ASIO_HANDLER_TYPE(h, sig) h -#endif - // Continuation hooks added in 1.54.0 #ifndef BEAST_ASIO_HAS_CONTINUATION_HOOKS # if BOOST_VERSION >= 105400 @@ -89,33 +72,10 @@ # ifndef BEAST_ASIO_HAS_BUFFEREDHANDSHAKE # define BEAST_ASIO_HAS_BUFFEREDHANDSHAKE 1 # endif -# ifndef BEAST_ASIO_HAS_FUTURE_RETURNS -# define BEAST_ASIO_HAS_FUTURE_RETURNS 1 -# endif #else # ifndef BEAST_ASIO_HAS_BUFFEREDHANDSHAKE # define BEAST_ASIO_HAS_BUFFEREDHANDSHAKE 0 # endif -# ifndef BEAST_ASIO_HAS_FUTURE_RETURNS -# define BEAST_ASIO_HAS_FUTURE_RETURNS 0 -# endif -#endif - -#if ! BEAST_ASIO_HAS_FUTURE_RETURNS -# define BEAST_ASIO_INITFN_RESULT_TYPE(expr,val) void -# define BEAST_ASIO_INITFN_RESULT_TYPE_MEMBER(expr,val) void -#else -# define BEAST_ASIO_INITFN_RESULT_TYPE(expr,val) BOOST_ASIO_INITFN_RESULT_TYPE(expr,val) -# if defined(GENERATING_DOCUMENTATION) -# define BEAST_ASIO_INITFN_RESULT_TYPE_MEMBER(h, sig) \ - void_or_deduced -# elif defined(_MSC_VER) && (_MSC_VER < 1500) -# define BEAST_ASIO_INITFN_RESULT_TYPE_MEMBER(h, sig) \ - boost::asio::detail::async_result_type_helper::type -# else -# define BEAST_ASIO_INITFN_RESULT_TYPE_MEMBER(h, sig) \ - boost::asio::async_result ::type>::type -# endif #endif #endif diff --git a/modules/beast_core/diagnostic/beast_LeakChecked.cpp b/modules/beast_core/diagnostic/beast_LeakChecked.cpp index 5173b047d..b70e41697 100644 --- a/modules/beast_core/diagnostic/beast_LeakChecked.cpp +++ b/modules/beast_core/diagnostic/beast_LeakChecked.cpp @@ -89,7 +89,11 @@ void LeakCheckedBase::CounterBase::checkForLeaks () //------------------------------------------------------------------------------ +#if BEAST_DEBUG void LeakCheckedBase::reportDanglingPointer (char const* objectName) +#else +void LeakCheckedBase::reportDanglingPointer (char const*) +#endif { /* If you hit this, then you've managed to delete more instances of this class than you've created. That indicates that you're diff --git a/modules/beast_core/system/BindIncludes.h b/modules/beast_core/system/BindIncludes.h index 1782ad2e7..0eb1504ee 100644 --- a/modules/beast_core/system/BindIncludes.h +++ b/modules/beast_core/system/BindIncludes.h @@ -50,8 +50,7 @@ #elif BEAST_BIND_USES_TR1 # include #elif BEAST_BIND_USES_BOOST -# include -# include +// included in BoostIncludes.h #endif #endif diff --git a/modules/beast_core/system/BoostIncludes.h b/modules/beast_core/system/BoostIncludes.h index f25557b50..fcd1ceaf4 100644 --- a/modules/beast_core/system/BoostIncludes.h +++ b/modules/beast_core/system/BoostIncludes.h @@ -31,27 +31,39 @@ #endif //------------------------------------------------------------------------------ + #if BEAST_BOOST_IS_AVAILABLE +// Prevent from being included +#ifdef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED +# error "boost/bind.hpp must not be included before this file" +#else +# define BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED +#endif + +#include +#include +#include +#include +#include // for FifoFreeStoreWithTLS #include + #if BOOST_VERSION > 105499 # error "This hasnt been tested with boost versions above 1.54" #endif -// Used for FifoFreeStoreWithTLS -#include - -// This is a hack to fix boost's goofy placeholders -#ifdef BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED -#error must not be included before this file -#endif - -// Prevent from being included -#define BOOST_BIND_PLACEHOLDERS_HPP_INCLUDED -#include -#include - -// This based on +// This is a hack to fix boost's goofy placeholders going into the global +// namespace. First we prevent the user from including boost/bind.hpp +// before us. Then we define the include guard macro and include +// boost/bind.hpp ourselves to get the declarations. Finally we repeat +// the missing placeholder declarations but put them in a proper namespace. +// +// We put the placeholders in boost::placeholders so they can be accessed +// explicitly to handle the common case of a "using namespace oost" directive +// being in effect. +// +// Declarations based on boost/bind/placeholders.cpp +// namespace boost { namespace placeholders { extern boost::arg<1> _1; @@ -68,6 +80,7 @@ using namespace placeholders; } #endif + //------------------------------------------------------------------------------ #endif diff --git a/modules/beast_boost/beast_boost.cpp b/modules/beast_extras/beast_extras.cpp similarity index 97% rename from modules/beast_boost/beast_boost.cpp rename to modules/beast_extras/beast_extras.cpp index 7a58ced01..2813fee75 100644 --- a/modules/beast_boost/beast_boost.cpp +++ b/modules/beast_extras/beast_extras.cpp @@ -19,7 +19,7 @@ #include "BeastConfig.h" -#include "beast_boost.h" +#include "beast_extras.h" namespace beast { diff --git a/modules/beast_boost/beast_boost.h b/modules/beast_extras/beast_extras.h similarity index 95% rename from modules/beast_boost/beast_boost.h rename to modules/beast_extras/beast_extras.h index 6e49a8a35..b9df7bf43 100644 --- a/modules/beast_boost/beast_boost.h +++ b/modules/beast_extras/beast_extras.h @@ -17,8 +17,8 @@ */ //============================================================================== -#ifndef BEAST_BOOST_H_INCLUDED -#define BEAST_BOOST_H_INCLUDED +#ifndef BEAST_EXTRAS_H_INCLUDED +#define BEAST_EXTRAS_H_INCLUDED // Adds boost-specific features to beast. diff --git a/modules/beast_boost/traits/beast_BoostLockableTraits.h b/modules/beast_extras/traits/beast_BoostLockableTraits.h similarity index 100% rename from modules/beast_boost/traits/beast_BoostLockableTraits.h rename to modules/beast_extras/traits/beast_BoostLockableTraits.h