diff --git a/Jamroot b/Jamroot
index 4e913c2b..42a0af60 100644
--- a/Jamroot
+++ b/Jamroot
@@ -144,9 +144,12 @@ import option ;
import tools/boost\_install/boost-install ;
path-constant BOOST_ROOT : . ;
-constant BOOST_VERSION : 1.71.0 ;
+constant BOOST_VERSION : 1.80.0 ;
constant BOOST_JAMROOT_MODULE : $(__name__) ;
+# Allow subprojects to simply `import config : requires ;` to get access to the requires rule
+modules.poke : BOOST_BUILD_PATH : $(BOOST_ROOT)/libs/config/checks [ modules.peek : BOOST_BUILD_PATH ] ;
+
boostcpp.set-version $(BOOST_VERSION) ;
use-project /boost/architecture : libs/config/checks/architecture ;
@@ -210,18 +213,15 @@ rule handle-static-runtime ( properties * )
# dangerous on Windows. Therefore, we disallow it. This might be drastic,
# but it was disabled for a while without anybody complaining.
- # For CW, static runtime is needed so that std::locale works.
- if shared in $(properties) && static in $(properties) &&
- ! ( cw in $(properties) )
- {
- if ! $(.shared-static-warning-emitted)
- {
- ECHO "warning: skipping configuration link=shared, runtime-link=static" ;
- ECHO "warning: this combination is either impossible or too dangerous" ;
- ECHO "warning: to be of any use" ;
- .shared-static-warning-emitted = 1 ;
- }
+ local argv = [ modules.peek : ARGV ] ;
+ if shared in $(properties)
+ && static in $(properties)
+ # For CW, static runtime is needed so that std::locale works.
+ && ! ( cw in $(properties) )
+ && ! --allow-shared-static in $(argv)
+ {
+ boostcpp.emit-shared-static-warning ;
return no ;
}
}
diff --git a/boost/algorithm/string/compare.hpp b/boost/algorithm/string/compare.hpp
index 734303a9..dc34007c 100644
--- a/boost/algorithm/string/compare.hpp
+++ b/boost/algorithm/string/compare.hpp
@@ -65,7 +65,7 @@ namespace boost {
template< typename T1, typename T2 >
bool operator()( const T1& Arg1, const T2& Arg2 ) const
{
- #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
+ #if defined(BOOST_BORLANDC) && (BOOST_BORLANDC >= 0x560) && (BOOST_BORLANDC <= 0x564) && !defined(_USE_OLD_RW_STL)
return std::toupper(Arg1)==std::toupper(Arg2);
#else
return std::toupper(Arg1,m_Loc)==std::toupper(Arg2,m_Loc);
@@ -118,7 +118,7 @@ namespace boost {
template< typename T1, typename T2 >
bool operator()( const T1& Arg1, const T2& Arg2 ) const
{
- #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
+ #if defined(BOOST_BORLANDC) && (BOOST_BORLANDC >= 0x560) && (BOOST_BORLANDC <= 0x564) && !defined(_USE_OLD_RW_STL)
return std::toupper(Arg1)(Arg1,m_Loc)(Arg2,m_Loc);
@@ -171,7 +171,7 @@ namespace boost {
template< typename T1, typename T2 >
bool operator()( const T1& Arg1, const T2& Arg2 ) const
{
- #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
+ #if defined(BOOST_BORLANDC) && (BOOST_BORLANDC >= 0x560) && (BOOST_BORLANDC <= 0x564) && !defined(_USE_OLD_RW_STL)
return std::toupper(Arg1)<=std::toupper(Arg2);
#else
return std::toupper(Arg1,m_Loc)<=std::toupper(Arg2,m_Loc);
diff --git a/boost/algorithm/string/detail/case_conv.hpp b/boost/algorithm/string/detail/case_conv.hpp
index 233912ca..188602a1 100644
--- a/boost/algorithm/string/detail/case_conv.hpp
+++ b/boost/algorithm/string/detail/case_conv.hpp
@@ -15,6 +15,9 @@
#include
#include
+#include
+#include
+#include
#include
namespace boost {
@@ -40,7 +43,7 @@ namespace boost {
// Operation
CharT operator ()( CharT Ch ) const
{
- #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
+ #if defined(BOOST_BORLANDC) && (BOOST_BORLANDC >= 0x560) && (BOOST_BORLANDC <= 0x564) && !defined(_USE_OLD_RW_STL)
return std::tolower( static_cast::type> ( Ch ));
#else
return std::tolower( Ch, *m_Loc );
@@ -62,7 +65,7 @@ namespace boost {
// Operation
CharT operator ()( CharT Ch ) const
{
- #if defined(__BORLANDC__) && (__BORLANDC__ >= 0x560) && (__BORLANDC__ <= 0x564) && !defined(_USE_OLD_RW_STL)
+ #if defined(BOOST_BORLANDC) && (BOOST_BORLANDC >= 0x560) && (BOOST_BORLANDC <= 0x564) && !defined(_USE_OLD_RW_STL)
return std::toupper( static_cast::type> ( Ch ));
#else
return std::toupper( Ch, *m_Loc );
diff --git a/boost/algorithm/string/detail/find_format_all.hpp b/boost/algorithm/string/detail/find_format_all.hpp
index 52930c83..311fa26f 100644
--- a/boost/algorithm/string/detail/find_format_all.hpp
+++ b/boost/algorithm/string/detail/find_format_all.hpp
@@ -18,6 +18,8 @@
#include
#include
+#include
+
namespace boost {
namespace algorithm {
namespace detail {
diff --git a/boost/algorithm/string/detail/finder.hpp b/boost/algorithm/string/detail/finder.hpp
index a2a95821..8e70240d 100644
--- a/boost/algorithm/string/detail/finder.hpp
+++ b/boost/algorithm/string/detail/finder.hpp
@@ -13,7 +13,7 @@
#include
#include
-#include
+#include
#include
#include
@@ -127,8 +127,8 @@ namespace boost {
if( boost::empty(m_Search) )
return result_type( End, End );
- typedef BOOST_STRING_TYPENAME boost::detail::
- iterator_traits::iterator_category category;
+ typedef BOOST_STRING_TYPENAME
+ std::iterator_traits::iterator_category category;
return findit( Begin, End, category() );
}
@@ -344,9 +344,8 @@ namespace boost {
typedef iterator_range result_type;
input_iterator_type It=Begin;
- for(
- unsigned int Index=0;
- Index::iterator_category category;
+ typedef BOOST_STRING_TYPENAME
+ std::iterator_traits::iterator_category category;
return ::boost::algorithm::detail::find_head_impl( Begin, End, N, category() );
}
@@ -397,10 +396,12 @@ namespace boost {
input_iterator_type It2=Begin;
// Advance It2 by N increments
- for( Index=0; Index result_type;
input_iterator_type It=End;
- for(
- unsigned int Index=0;
- Index::iterator_category category;
+ typedef BOOST_STRING_TYPENAME
+ std::iterator_traits::iterator_category category;
return ::boost::algorithm::detail::find_tail_impl( Begin, End, N, category() );
}
diff --git a/boost/algorithm/string/detail/formatter.hpp b/boost/algorithm/string/detail/formatter.hpp
index c071822f..f4c6728b 100644
--- a/boost/algorithm/string/detail/formatter.hpp
+++ b/boost/algorithm/string/detail/formatter.hpp
@@ -42,7 +42,7 @@ namespace boost {
m_Format(::boost::begin(Format), ::boost::end(Format)) {}
// Operation
-#if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))
+#if BOOST_WORKAROUND(BOOST_BORLANDC, BOOST_TESTED_AT(0x564))
template
result_type& operator()(const Range2T&)
{
diff --git a/boost/algorithm/string/find_format.hpp b/boost/algorithm/string/find_format.hpp
index 0e84a4ee..4d9315cb 100644
--- a/boost/algorithm/string/find_format.hpp
+++ b/boost/algorithm/string/find_format.hpp
@@ -12,7 +12,6 @@
#define BOOST_STRING_FIND_FORMAT_HPP
#include
-#include
#include
#include
#include
@@ -40,7 +39,7 @@ namespace boost {
this substring and replace it in the input.
The result is a modified copy of the input. It is returned as a sequence
or copied to the output iterator.
-
+
\param Output An output iterator to which the result will be copied
\param Input An input sequence
\param Finder A Finder object used to search for a match to be replaced
diff --git a/boost/algorithm/string/formatter.hpp b/boost/algorithm/string/formatter.hpp
index de8681bc..0e08ae7b 100644
--- a/boost/algorithm/string/formatter.hpp
+++ b/boost/algorithm/string/formatter.hpp
@@ -11,7 +11,6 @@
#ifndef BOOST_STRING_FORMATTER_HPP
#define BOOST_STRING_FORMATTER_HPP
-#include
#include
#include
#include
diff --git a/boost/align/align.hpp b/boost/align/align.hpp
new file mode 100644
index 00000000..92f0c616
--- /dev/null
+++ b/boost/align/align.hpp
@@ -0,0 +1,19 @@
+/*
+Copyright 2014-2015 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_ALIGN_HPP
+#define BOOST_ALIGN_ALIGN_HPP
+
+#include
+
+#if !defined(BOOST_NO_CXX11_STD_ALIGN) && !defined(BOOST_LIBSTDCXX_VERSION)
+#include
+#else
+#include
+#endif
+
+#endif
diff --git a/boost/align/aligned_alloc.hpp b/boost/align/aligned_alloc.hpp
new file mode 100644
index 00000000..1d81a133
--- /dev/null
+++ b/boost/align/aligned_alloc.hpp
@@ -0,0 +1,47 @@
+/*
+Copyright 2014-2015 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_ALIGNED_ALLOC_HPP
+#define BOOST_ALIGN_ALIGNED_ALLOC_HPP
+
+#include
+
+#if defined(BOOST_HAS_UNISTD_H)
+#include
+#endif
+
+#if defined(__APPLE__) || defined(__APPLE_CC__) || defined(macintosh)
+#include
+#endif
+
+#if defined(BOOST_ALIGN_USE_ALIGN)
+#include
+#elif defined(BOOST_ALIGN_USE_NEW)
+#include
+#elif defined(_MSC_VER) && !defined(UNDER_CE)
+#include
+#elif defined(__MINGW32__) && (__MSVCRT_VERSION__ >= 0x0700)
+#include
+#elif defined(__MINGW32__)
+#include
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= 1090
+#include
+#elif MAC_OS_X_VERSION_MIN_REQUIRED >= 1060
+#include
+#elif defined(__ANDROID__)
+#include
+#elif defined(__SunOS_5_11) || defined(__SunOS_5_12)
+#include
+#elif defined(sun) || defined(__sun)
+#include
+#elif (_POSIX_C_SOURCE >= 200112L) || (_XOPEN_SOURCE >= 600)
+#include
+#else
+#include
+#endif
+
+#endif
diff --git a/boost/align/alignment_of.hpp b/boost/align/alignment_of.hpp
new file mode 100644
index 00000000..b7c50f1a
--- /dev/null
+++ b/boost/align/alignment_of.hpp
@@ -0,0 +1,54 @@
+/*
+Copyright 2014-2016 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_ALIGNMENT_OF_HPP
+#define BOOST_ALIGN_ALIGNMENT_OF_HPP
+
+#include
+#include
+
+#if defined(_MSC_VER) && defined(__clang__)
+#include
+#elif defined(BOOST_MSVC)
+#include
+#elif defined(__GNUC__) && defined(__unix__) && !defined(__LP64__)
+#include
+#elif defined(BOOST_CLANG) && !defined(__x86_64__)
+#include
+#elif !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)
+#include
+#elif defined(__ghs__) && (__GHS_VERSION_NUMBER >= 600)
+#include
+#elif defined(BOOST_CODEGEARC)
+#include
+#elif defined(BOOST_CLANG)
+#include
+#elif __GNUC__ > 4
+#include
+#elif (__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)
+#include
+#else
+#include
+#endif
+
+namespace boost {
+namespace alignment {
+
+template
+struct alignment_of
+ : detail::alignment_of::type>::type { };
+
+#if !defined(BOOST_NO_CXX14_VARIABLE_TEMPLATES)
+template
+constexpr std::size_t alignment_of_v = alignment_of::value;
+#endif
+
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/alignment_of_forward.hpp b/boost/align/alignment_of_forward.hpp
new file mode 100644
index 00000000..31db15f2
--- /dev/null
+++ b/boost/align/alignment_of_forward.hpp
@@ -0,0 +1,20 @@
+/*
+Copyright 2014 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_ALIGNMENT_OF_FORWARD_HPP
+#define BOOST_ALIGN_ALIGNMENT_OF_FORWARD_HPP
+
+namespace boost {
+namespace alignment {
+
+template
+struct alignment_of;
+
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/align.hpp b/boost/align/detail/align.hpp
new file mode 100644
index 00000000..77b327a2
--- /dev/null
+++ b/boost/align/detail/align.hpp
@@ -0,0 +1,38 @@
+/*
+Copyright 2014-2020 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGN_HPP
+#define BOOST_ALIGN_DETAIL_ALIGN_HPP
+
+#include
+#include
+
+namespace boost {
+namespace alignment {
+
+inline void*
+align(std::size_t alignment, std::size_t size, void*& ptr,
+ std::size_t& space)
+{
+ BOOST_ASSERT(boost::alignment::detail::is_alignment(alignment));
+ if (size <= space) {
+ char* p = reinterpret_cast(~(alignment - 1) &
+ (reinterpret_cast(ptr) + alignment - 1));
+ std::size_t n = p - static_cast(ptr);
+ if (n <= space - size) {
+ ptr = p;
+ space -= n;
+ return p;
+ }
+ }
+ return 0;
+}
+
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/align_cxx11.hpp b/boost/align/detail/align_cxx11.hpp
new file mode 100644
index 00000000..637541ab
--- /dev/null
+++ b/boost/align/detail/align_cxx11.hpp
@@ -0,0 +1,21 @@
+/*
+Copyright 2014 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGN_CXX11_HPP
+#define BOOST_ALIGN_DETAIL_ALIGN_CXX11_HPP
+
+#include
+
+namespace boost {
+namespace alignment {
+
+using std::align;
+
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/aligned_alloc.hpp b/boost/align/detail/aligned_alloc.hpp
new file mode 100644
index 00000000..d27a5499
--- /dev/null
+++ b/boost/align/detail/aligned_alloc.hpp
@@ -0,0 +1,52 @@
+/*
+Copyright 2014-2015 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_HPP
+#define BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_HPP
+
+#include
+#include
+#include
+#include
+#include
+
+namespace boost {
+namespace alignment {
+
+inline void*
+aligned_alloc(std::size_t alignment, std::size_t size) BOOST_NOEXCEPT
+{
+ BOOST_ASSERT(detail::is_alignment(alignment));
+ enum {
+ N = alignment_of::value
+ };
+ if (alignment < N) {
+ alignment = N;
+ }
+ std::size_t n = size + alignment - N;
+ void* p = std::malloc(sizeof(void*) + n);
+ if (p) {
+ void* r = static_cast(p) + sizeof(void*);
+ (void)boost::alignment::align(alignment, size, r, n);
+ *(static_cast(r) - 1) = p;
+ p = r;
+ }
+ return p;
+}
+
+inline void
+aligned_free(void* ptr) BOOST_NOEXCEPT
+{
+ if (ptr) {
+ std::free(*(static_cast(ptr) - 1));
+ }
+}
+
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/aligned_alloc_android.hpp b/boost/align/detail/aligned_alloc_android.hpp
new file mode 100644
index 00000000..4119fbd9
--- /dev/null
+++ b/boost/align/detail/aligned_alloc_android.hpp
@@ -0,0 +1,34 @@
+/*
+Copyright 2014 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_ANDROID_HPP
+#define BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_ANDROID_HPP
+
+#include
+#include
+#include
+
+namespace boost {
+namespace alignment {
+
+inline void*
+aligned_alloc(std::size_t alignment, std::size_t size) BOOST_NOEXCEPT
+{
+ BOOST_ASSERT(detail::is_alignment(alignment));
+ return ::memalign(alignment, size);
+}
+
+inline void
+aligned_free(void* ptr) BOOST_NOEXCEPT
+{
+ ::free(ptr);
+}
+
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/aligned_alloc_macos.hpp b/boost/align/detail/aligned_alloc_macos.hpp
new file mode 100644
index 00000000..76366fa5
--- /dev/null
+++ b/boost/align/detail/aligned_alloc_macos.hpp
@@ -0,0 +1,44 @@
+/*
+Copyright 2014 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_MACOS_HPP
+#define BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_MACOS_HPP
+
+#include
+#include
+#include
+
+namespace boost {
+namespace alignment {
+
+inline void*
+aligned_alloc(std::size_t alignment, std::size_t size) BOOST_NOEXCEPT
+{
+ BOOST_ASSERT(detail::is_alignment(alignment));
+ if (size == 0) {
+ return 0;
+ }
+ if (alignment < sizeof(void*)) {
+ alignment = sizeof(void*);
+ }
+ void* p;
+ if (::posix_memalign(&p, alignment, size) != 0) {
+ p = 0;
+ }
+ return p;
+}
+
+inline void
+aligned_free(void* ptr) BOOST_NOEXCEPT
+{
+ ::free(ptr);
+}
+
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/aligned_alloc_mingw.hpp b/boost/align/detail/aligned_alloc_mingw.hpp
new file mode 100644
index 00000000..36be3d5f
--- /dev/null
+++ b/boost/align/detail/aligned_alloc_mingw.hpp
@@ -0,0 +1,34 @@
+/*
+Copyright 2020 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_MINGW_HPP
+#define BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_MINGW_HPP
+
+#include
+#include
+#include
+
+namespace boost {
+namespace alignment {
+
+inline void*
+aligned_alloc(std::size_t alignment, std::size_t size) BOOST_NOEXCEPT
+{
+ BOOST_ASSERT(detail::is_alignment(alignment));
+ return ::__mingw_aligned_malloc(size, alignment);
+}
+
+inline void
+aligned_free(void* ptr) BOOST_NOEXCEPT
+{
+ ::__mingw_aligned_free(ptr);
+}
+
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/aligned_alloc_msvc.hpp b/boost/align/detail/aligned_alloc_msvc.hpp
new file mode 100644
index 00000000..45c57c99
--- /dev/null
+++ b/boost/align/detail/aligned_alloc_msvc.hpp
@@ -0,0 +1,34 @@
+/*
+Copyright 2014 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_MSVC_HPP
+#define BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_MSVC_HPP
+
+#include
+#include
+#include
+
+namespace boost {
+namespace alignment {
+
+inline void*
+aligned_alloc(std::size_t alignment, std::size_t size) BOOST_NOEXCEPT
+{
+ BOOST_ASSERT(detail::is_alignment(alignment));
+ return ::_aligned_malloc(size, alignment);
+}
+
+inline void
+aligned_free(void* ptr) BOOST_NOEXCEPT
+{
+ ::_aligned_free(ptr);
+}
+
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/aligned_alloc_new.hpp b/boost/align/detail/aligned_alloc_new.hpp
new file mode 100644
index 00000000..a97da65d
--- /dev/null
+++ b/boost/align/detail/aligned_alloc_new.hpp
@@ -0,0 +1,52 @@
+/*
+Copyright 2014-2015 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_NEW_HPP
+#define BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_NEW_HPP
+
+#include
+#include
+#include
+#include
+#include
+
+namespace boost {
+namespace alignment {
+
+inline void*
+aligned_alloc(std::size_t alignment, std::size_t size) BOOST_NOEXCEPT
+{
+ BOOST_ASSERT(detail::is_alignment(alignment));
+ enum {
+ N = alignment_of::value
+ };
+ if (alignment < N) {
+ alignment = N;
+ }
+ std::size_t n = size + alignment - N;
+ void* p = ::operator new(sizeof(void*) + n, std::nothrow);
+ if (p) {
+ void* r = static_cast(p) + sizeof(void*);
+ (void)boost::alignment::align(alignment, size, r, n);
+ *(static_cast(r) - 1) = p;
+ p = r;
+ }
+ return p;
+}
+
+inline void
+aligned_free(void* ptr) BOOST_NOEXCEPT
+{
+ if (ptr) {
+ ::operator delete(*(static_cast(ptr) - 1));
+ }
+}
+
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/aligned_alloc_posix.hpp b/boost/align/detail/aligned_alloc_posix.hpp
new file mode 100644
index 00000000..78fc842d
--- /dev/null
+++ b/boost/align/detail/aligned_alloc_posix.hpp
@@ -0,0 +1,41 @@
+/*
+Copyright 2014 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_POSIX_HPP
+#define BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_POSIX_HPP
+
+#include
+#include
+#include
+
+namespace boost {
+namespace alignment {
+
+inline void*
+aligned_alloc(std::size_t alignment, std::size_t size) BOOST_NOEXCEPT
+{
+ BOOST_ASSERT(detail::is_alignment(alignment));
+ if (alignment < sizeof(void*)) {
+ alignment = sizeof(void*);
+ }
+ void* p;
+ if (::posix_memalign(&p, alignment, size) != 0) {
+ p = 0;
+ }
+ return p;
+}
+
+inline void
+aligned_free(void* ptr) BOOST_NOEXCEPT
+{
+ ::free(ptr);
+}
+
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/aligned_alloc_sunos.hpp b/boost/align/detail/aligned_alloc_sunos.hpp
new file mode 100644
index 00000000..0948b40e
--- /dev/null
+++ b/boost/align/detail/aligned_alloc_sunos.hpp
@@ -0,0 +1,34 @@
+/*
+Copyright 2014 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_SUNOS_HPP
+#define BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_SUNOS_HPP
+
+#include
+#include
+#include
+
+namespace boost {
+namespace alignment {
+
+inline void*
+aligned_alloc(std::size_t alignment, std::size_t size) BOOST_NOEXCEPT
+{
+ BOOST_ASSERT(detail::is_alignment(alignment));
+ return ::memalign(alignment, size);
+}
+
+inline void
+aligned_free(void* ptr) BOOST_NOEXCEPT
+{
+ ::free(ptr);
+}
+
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/alignment_of.hpp b/boost/align/detail/alignment_of.hpp
new file mode 100644
index 00000000..b6fc3dcd
--- /dev/null
+++ b/boost/align/detail/alignment_of.hpp
@@ -0,0 +1,31 @@
+/*
+Copyright 2014-2015 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGNMENT_OF_HPP
+#define BOOST_ALIGN_DETAIL_ALIGNMENT_OF_HPP
+
+#include
+
+namespace boost {
+namespace alignment {
+namespace detail {
+
+template
+struct offset_value {
+ char value;
+ T object;
+};
+
+template
+struct alignment_of
+ : min_size) - sizeof(T)> { };
+
+} /* detail */
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/alignment_of_clang.hpp b/boost/align/detail/alignment_of_clang.hpp
new file mode 100644
index 00000000..95773e5e
--- /dev/null
+++ b/boost/align/detail/alignment_of_clang.hpp
@@ -0,0 +1,26 @@
+/*
+Copyright 2014 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGNMENT_OF_CLANG_HPP
+#define BOOST_ALIGN_DETAIL_ALIGNMENT_OF_CLANG_HPP
+
+#include
+#include
+
+namespace boost {
+namespace alignment {
+namespace detail {
+
+template
+struct alignment_of
+ : integral_constant { };
+
+} /* detail */
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/alignment_of_codegear.hpp b/boost/align/detail/alignment_of_codegear.hpp
new file mode 100644
index 00000000..ea6f9042
--- /dev/null
+++ b/boost/align/detail/alignment_of_codegear.hpp
@@ -0,0 +1,26 @@
+/*
+Copyright 2014 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGNMENT_OF_CODEGEAR_HPP
+#define BOOST_ALIGN_DETAIL_ALIGNMENT_OF_CODEGEAR_HPP
+
+#include
+#include
+
+namespace boost {
+namespace alignment {
+namespace detail {
+
+template
+struct alignment_of
+ : integral_constant { };
+
+} /* detail */
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/alignment_of_cxx11.hpp b/boost/align/detail/alignment_of_cxx11.hpp
new file mode 100644
index 00000000..05c74293
--- /dev/null
+++ b/boost/align/detail/alignment_of_cxx11.hpp
@@ -0,0 +1,23 @@
+/*
+Copyright 2014 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGNMENT_OF_CXX11_HPP
+#define BOOST_ALIGN_DETAIL_ALIGNMENT_OF_CXX11_HPP
+
+#include
+
+namespace boost {
+namespace alignment {
+namespace detail {
+
+using std::alignment_of;
+
+} /* detail */
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/alignment_of_gcc.hpp b/boost/align/detail/alignment_of_gcc.hpp
new file mode 100644
index 00000000..66a63a50
--- /dev/null
+++ b/boost/align/detail/alignment_of_gcc.hpp
@@ -0,0 +1,26 @@
+/*
+Copyright 2014 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGNMENT_OF_GCC_HPP
+#define BOOST_ALIGN_DETAIL_ALIGNMENT_OF_GCC_HPP
+
+#include
+#include
+
+namespace boost {
+namespace alignment {
+namespace detail {
+
+template
+struct alignment_of
+ : integral_constant { };
+
+} /* detail */
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/alignment_of_msvc.hpp b/boost/align/detail/alignment_of_msvc.hpp
new file mode 100644
index 00000000..440b840d
--- /dev/null
+++ b/boost/align/detail/alignment_of_msvc.hpp
@@ -0,0 +1,32 @@
+/*
+Copyright 2014-2015 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ALIGNMENT_OF_MSVC_HPP
+#define BOOST_ALIGN_DETAIL_ALIGNMENT_OF_MSVC_HPP
+
+#include
+
+namespace boost {
+namespace alignment {
+namespace detail {
+
+template
+struct offset_value {
+ T first;
+ char value;
+ T second;
+};
+
+template
+struct alignment_of
+ : min_size) - (sizeof(T) << 1)> { };
+
+} /* detail */
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/element_type.hpp b/boost/align/detail/element_type.hpp
new file mode 100644
index 00000000..5b2b732d
--- /dev/null
+++ b/boost/align/detail/element_type.hpp
@@ -0,0 +1,91 @@
+/*
+Copyright 2015 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_ELEMENT_TYPE_HPP
+#define BOOST_ALIGN_DETAIL_ELEMENT_TYPE_HPP
+
+#include
+
+#if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)
+#include
+#else
+#include
+#endif
+
+namespace boost {
+namespace alignment {
+namespace detail {
+
+#if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)
+using std::remove_reference;
+using std::remove_all_extents;
+using std::remove_cv;
+#else
+template
+struct remove_reference {
+ typedef T type;
+};
+
+template
+struct remove_reference {
+ typedef T type;
+};
+
+#if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
+template
+struct remove_reference {
+ typedef T type;
+};
+#endif
+
+template
+struct remove_all_extents {
+ typedef T type;
+};
+
+template
+struct remove_all_extents {
+ typedef typename remove_all_extents::type type;
+};
+
+template
+struct remove_all_extents {
+ typedef typename remove_all_extents::type type;
+};
+
+template
+struct remove_cv {
+ typedef T type;
+};
+
+template
+struct remove_cv {
+ typedef T type;
+};
+
+template
+struct remove_cv {
+ typedef T type;
+};
+
+template
+struct remove_cv {
+ typedef T type;
+};
+#endif
+
+template
+struct element_type {
+ typedef typename remove_cv::type>::type>::type type;
+};
+
+} /* detail */
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/integral_constant.hpp b/boost/align/detail/integral_constant.hpp
new file mode 100644
index 00000000..a1e0b467
--- /dev/null
+++ b/boost/align/detail/integral_constant.hpp
@@ -0,0 +1,53 @@
+/*
+Copyright 2014-2016 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_INTEGRAL_CONSTANT_HPP
+#define BOOST_ALIGN_DETAIL_INTEGRAL_CONSTANT_HPP
+
+#include
+
+#if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)
+#include
+#endif
+
+namespace boost {
+namespace alignment {
+namespace detail {
+
+#if !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)
+using std::integral_constant;
+using std::true_type;
+using std::false_type;
+#else
+template
+struct integral_constant {
+ typedef T value_type;
+ typedef integral_constant type;
+
+ BOOST_CONSTEXPR operator value_type() const BOOST_NOEXCEPT {
+ return Value;
+ }
+
+ BOOST_CONSTEXPR value_type operator()() const BOOST_NOEXCEPT {
+ return Value;
+ }
+
+ BOOST_STATIC_CONSTEXPR T value = Value;
+};
+
+template
+BOOST_CONSTEXPR_OR_CONST T integral_constant::value;
+
+typedef integral_constant true_type;
+typedef integral_constant false_type;
+#endif
+
+} /* detail */
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/is_alignment.hpp b/boost/align/detail/is_alignment.hpp
new file mode 100644
index 00000000..542fbe46
--- /dev/null
+++ b/boost/align/detail/is_alignment.hpp
@@ -0,0 +1,28 @@
+/*
+Copyright 2014 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_IS_ALIGNMENT_HPP
+#define BOOST_ALIGN_DETAIL_IS_ALIGNMENT_HPP
+
+#include
+#include
+
+namespace boost {
+namespace alignment {
+namespace detail {
+
+BOOST_CONSTEXPR inline bool
+is_alignment(std::size_t value) BOOST_NOEXCEPT
+{
+ return (value > 0) && ((value & (value - 1)) == 0);
+}
+
+} /* detail */
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/align/detail/min_size.hpp b/boost/align/detail/min_size.hpp
new file mode 100644
index 00000000..5b478fda
--- /dev/null
+++ b/boost/align/detail/min_size.hpp
@@ -0,0 +1,26 @@
+/*
+Copyright 2014 Glen Joseph Fernandes
+(glenjofe@gmail.com)
+
+Distributed under the Boost Software License, Version 1.0.
+(http://www.boost.org/LICENSE_1_0.txt)
+*/
+#ifndef BOOST_ALIGN_DETAIL_MIN_SIZE_HPP
+#define BOOST_ALIGN_DETAIL_MIN_SIZE_HPP
+
+#include
+#include
+
+namespace boost {
+namespace alignment {
+namespace detail {
+
+template
+struct min_size
+ : integral_constant { };
+
+} /* detail */
+} /* alignment */
+} /* boost */
+
+#endif
diff --git a/boost/archive/archive_exception.hpp b/boost/archive/archive_exception.hpp
index fabcdb5f..dd9181c3 100644
--- a/boost/archive/archive_exception.hpp
+++ b/boost/archive/archive_exception.hpp
@@ -9,7 +9,7 @@
/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
// archive/archive_exception.hpp:
-// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
// Use, modification and distribution is subject to the Boost Software
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
@@ -20,16 +20,16 @@
#include
#include
-#include
+#include
#include
// note: the only reason this is in here is that windows header
// includes #define exception_code _exception_code (arrrgghhhh!).
// the most expedient way to address this is be sure that this
// header is always included whenever this header file is included.
-#if defined(BOOST_WINDOWS)
-#include
-#endif
+#if defined(BOOST_WINDOWS)
+#include
+#endif
#include // must be the last header
@@ -39,7 +39,7 @@ namespace archive {
//////////////////////////////////////////////////////////////////////
// exceptions thrown by archives
//
-class BOOST_SYMBOL_VISIBLE archive_exception :
+class BOOST_SYMBOL_VISIBLE archive_exception :
public virtual std::exception
{
private:
@@ -52,7 +52,7 @@ protected:
public:
typedef enum {
no_exception, // initialized without code
- other_exception, // any excepton not listed below
+ other_exception, // any exception not listed below
unregistered_class, // attempt to serialize a pointer of
// an unregistered class
invalid_signature, // first line of archive does not contain
@@ -61,9 +61,9 @@ public:
// subsequent to this one
pointer_conflict, // an attempt has been made to directly
// serialize an object which has
- // already been serialized through a pointer.
- // Were this permitted, the archive load would result
- // in the creation of an extra copy of the obect.
+ // already been serialized through a pointer.
+ // Were this permitted, the archive load would result
+ // in the creation of an extra copy of the object.
incompatible_native_format, // attempt to read native binary format
// on incompatible platform
array_size_too_short,// array being loaded doesn't fit in array allocated
@@ -71,9 +71,9 @@ public:
invalid_class_name, // class name greater than the maximum permitted.
// most likely a corrupted archive or an attempt
// to insert virus via buffer overrun method.
- unregistered_cast, // base - derived relationship not registered with
+ unregistered_cast, // base - derived relationship not registered with
// void_cast_register
- unsupported_class_version, // type saved with a version # greater than the
+ unsupported_class_version, // type saved with a version # greater than the
// one used by the program. This indicates that the program
// needs to be rebuilt.
multiple_code_instantiation, // code for implementing serialization for some
@@ -83,13 +83,13 @@ public:
exception_code code;
BOOST_ARCHIVE_DECL archive_exception(
- exception_code c,
+ exception_code c,
const char * e1 = NULL,
const char * e2 = NULL
) BOOST_NOEXCEPT;
- BOOST_ARCHIVE_DECL archive_exception(archive_exception const &) BOOST_NOEXCEPT ;
- virtual BOOST_ARCHIVE_DECL ~archive_exception() BOOST_NOEXCEPT_OR_NOTHROW ;
- virtual BOOST_ARCHIVE_DECL const char * what() const BOOST_NOEXCEPT_OR_NOTHROW ;
+ BOOST_ARCHIVE_DECL archive_exception(archive_exception const &) BOOST_NOEXCEPT;
+ BOOST_ARCHIVE_DECL ~archive_exception() BOOST_NOEXCEPT_OR_NOTHROW BOOST_OVERRIDE;
+ BOOST_ARCHIVE_DECL const char * what() const BOOST_NOEXCEPT_OR_NOTHROW BOOST_OVERRIDE;
};
}// namespace archive
diff --git a/boost/archive/basic_archive.hpp b/boost/archive/basic_archive.hpp
index 9283974f..381a1275 100644
--- a/boost/archive/basic_archive.hpp
+++ b/boost/archive/basic_archive.hpp
@@ -9,7 +9,7 @@
/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
// basic_archive.hpp:
-// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
// Use, modification and distribution is subject to the Boost Software
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
@@ -18,9 +18,9 @@
#include // count
#include
#include
-#include // size_t
-#include
#include
+#include
+#include
#include
#include // must be the last header
@@ -33,76 +33,43 @@ namespace archive {
#pragma warning( disable : 4244 4267 )
#endif
-/* NOTE : Warning : Warning : Warning : Warning : Warning
- * Don't ever changes this. If you do, they previously created
- * binary archives won't be readable !!!
- */
-class library_version_type {
-private:
- typedef uint_least16_t base_type;
- base_type t;
-public:
- library_version_type(): t(0) {};
- explicit library_version_type(const unsigned int & t_) : t(t_){
- BOOST_ASSERT(t_ <= boost::integer_traits::const_max);
- }
- library_version_type(const library_version_type & t_) :
- t(t_.t)
- {}
- library_version_type & operator=(const library_version_type & rhs){
- t = rhs.t;
- return *this;
- }
- // used for text output
- operator base_type () const {
- return t;
- }
- // used for text input
- operator base_type & (){
- return t;
- }
- bool operator==(const library_version_type & rhs) const {
- return t == rhs.t;
- }
- bool operator<(const library_version_type & rhs) const {
- return t < rhs.t;
- }
-};
-
-BOOST_ARCHIVE_DECL library_version_type
+BOOST_ARCHIVE_DECL boost::serialization::library_version_type
BOOST_ARCHIVE_VERSION();
+// create alias in boost::archive for older user code.
+typedef boost::serialization::library_version_type library_version_type;
+
class version_type {
private:
typedef uint_least32_t base_type;
base_type t;
public:
// should be private - but MPI fails if it's not!!!
- version_type(): t(0) {};
+ version_type(): t(0) {}
explicit version_type(const unsigned int & t_) : t(t_){
BOOST_ASSERT(t_ <= boost::integer_traits::const_max);
}
- version_type(const version_type & t_) :
+ version_type(const version_type & t_) :
t(t_.t)
{}
version_type & operator=(const version_type & rhs){
- t = rhs.t;
+ t = rhs.t;
return *this;
}
// used for text output
operator base_type () const {
return t;
- }
+ }
// used for text intput
operator base_type & (){
return t;
- }
+ }
bool operator==(const version_type & rhs) const {
return t == rhs.t;
- }
+ }
bool operator<(const version_type & rhs) const {
return t < rhs.t;
- }
+ }
};
class class_id_type {
@@ -111,73 +78,73 @@ private:
base_type t;
public:
// should be private - but then can't use BOOST_STRONG_TYPE below
- class_id_type() : t(0) {};
+ class_id_type() : t(0) {}
explicit class_id_type(const int t_) : t(t_){
BOOST_ASSERT(t_ <= boost::integer_traits::const_max);
}
explicit class_id_type(const std::size_t t_) : t(t_){
// BOOST_ASSERT(t_ <= boost::integer_traits::const_max);
}
- class_id_type(const class_id_type & t_) :
+ class_id_type(const class_id_type & t_) :
t(t_.t)
{}
class_id_type & operator=(const class_id_type & rhs){
- t = rhs.t;
+ t = rhs.t;
return *this;
}
// used for text output
operator base_type () const {
return t;
- }
+ }
// used for text input
operator base_type &() {
return t;
- }
+ }
bool operator==(const class_id_type & rhs) const {
return t == rhs.t;
- }
+ }
bool operator<(const class_id_type & rhs) const {
return t < rhs.t;
- }
+ }
};
-#define NULL_POINTER_TAG boost::archive::class_id_type(-1)
+#define BOOST_SERIALIZATION_NULL_POINTER_TAG boost::archive::class_id_type(-1)
class object_id_type {
private:
typedef uint_least32_t base_type;
base_type t;
public:
- object_id_type(): t(0) {};
+ object_id_type(): t(0) {}
// note: presumes that size_t >= unsigned int.
// use explicit cast to silence useless warning
explicit object_id_type(const std::size_t & t_) : t(static_cast(t_)){
- // make quadriple sure that we haven't lost any real integer
+ // make quadruple sure that we haven't lost any real integer
// precision
BOOST_ASSERT(t_ <= boost::integer_traits::const_max);
}
- object_id_type(const object_id_type & t_) :
+ object_id_type(const object_id_type & t_) :
t(t_.t)
{}
object_id_type & operator=(const object_id_type & rhs){
- t = rhs.t;
+ t = rhs.t;
return *this;
}
// used for text output
operator base_type () const {
return t;
- }
+ }
// used for text input
operator base_type & () {
return t;
- }
+ }
bool operator==(const object_id_type & rhs) const {
return t == rhs.t;
- }
+ }
bool operator<(const object_id_type & rhs) const {
return t < rhs.t;
- }
+ }
};
#if defined(_MSC_VER)
@@ -188,16 +155,16 @@ struct tracking_type {
bool t;
explicit tracking_type(const bool t_ = false)
: t(t_)
- {};
+ {}
tracking_type(const tracking_type & t_)
: t(t_.t)
{}
operator bool () const {
return t;
- };
+ }
operator bool & () {
return t;
- };
+ }
tracking_type & operator=(const bool t_){
t = t_;
return *this;
@@ -214,8 +181,8 @@ struct tracking_type {
}
};
-struct class_name_type :
- private boost::noncopyable
+struct class_name_type :
+ private boost::noncopyable
{
char *t;
operator const char * & () const {
@@ -227,9 +194,9 @@ struct class_name_type :
std::size_t size() const {
return std::strlen(t);
}
- explicit class_name_type(const char *key_)
+ explicit class_name_type(const char *key_)
: t(const_cast(key_)){}
- explicit class_name_type(char *key_)
+ explicit class_name_type(char *key_)
: t(key_){}
class_name_type & operator=(const class_name_type & rhs){
t = rhs.t;
@@ -249,7 +216,7 @@ BOOST_ARCHIVE_DECL const char *
BOOST_ARCHIVE_SIGNATURE();
/* NOTE : Warning : Warning : Warning : Warning : Warning
- * If any of these are changed to different sized types,
+ * If any of these are changed to different sized types,
* binary_iarchive won't be able to read older archives
* unless you rev the library version and include conditional
* code based on the library version. There is nothing
@@ -279,7 +246,7 @@ BOOST_ARCHIVE_STRONG_TYPEDEF(object_id_type, object_reference_type)
// set implementation level to primitive for all types
// used internally by the serialization library
-BOOST_CLASS_IMPLEMENTATION(boost::archive::library_version_type, primitive_type)
+BOOST_CLASS_IMPLEMENTATION(boost::serialization::library_version_type, primitive_type)
BOOST_CLASS_IMPLEMENTATION(boost::archive::version_type, primitive_type)
BOOST_CLASS_IMPLEMENTATION(boost::archive::class_id_type, primitive_type)
BOOST_CLASS_IMPLEMENTATION(boost::archive::class_id_reference_type, primitive_type)
@@ -291,10 +258,10 @@ BOOST_CLASS_IMPLEMENTATION(boost::archive::tracking_type, primitive_type)
#include
-// set types used internally by the serialization library
+// set types used internally by the serialization library
// to be bitwise serializable
-BOOST_IS_BITWISE_SERIALIZABLE(boost::archive::library_version_type)
+BOOST_IS_BITWISE_SERIALIZABLE(boost::serialization::library_version_type)
BOOST_IS_BITWISE_SERIALIZABLE(boost::archive::version_type)
BOOST_IS_BITWISE_SERIALIZABLE(boost::archive::class_id_type)
BOOST_IS_BITWISE_SERIALIZABLE(boost::archive::class_id_reference_type)
diff --git a/boost/archive/basic_binary_iarchive.hpp b/boost/archive/basic_binary_iarchive.hpp
index c85ead86..2ec90ce0 100644
--- a/boost/archive/basic_binary_iarchive.hpp
+++ b/boost/archive/basic_binary_iarchive.hpp
@@ -16,7 +16,7 @@
// IN GENERAL, ARCHIVES CREATED WITH THIS CLASS WILL NOT BE READABLE
// ON PLATFORM APART FROM THE ONE THEY ARE CREATED ON
-// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
// Use, modification and distribution is subject to the Boost Software
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
@@ -30,6 +30,7 @@
#include
#include
#include
+#include
#include
#include
@@ -40,7 +41,7 @@
#include // must be the last header
-namespace boost {
+namespace boost {
namespace archive {
namespace detail {
@@ -50,7 +51,7 @@ namespace detail {
/////////////////////////////////////////////////////////////////////////
// class basic_binary_iarchive - read serialized objects from a input binary stream
template
-class BOOST_SYMBOL_VISIBLE basic_binary_iarchive :
+class BOOST_SYMBOL_VISIBLE basic_binary_iarchive :
public detail::common_iarchive
{
#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
@@ -66,7 +67,7 @@ protected:
#endif
#endif
// intermediate level to support override of operators
- // fot templates in the absence of partial function
+ // fot templates in the absence of partial function
// template ordering. If we get here pass to base class
// note extra nonsense to sneak it pass the borland compiers
typedef detail::common_iarchive detail_common_iarchive;
@@ -84,12 +85,12 @@ protected:
BOOST_STATIC_ASSERT(sizeof(object_id_type) == sizeof(uint_least32_t));
BOOST_STATIC_ASSERT(sizeof(object_reference_type) == sizeof(uint_least32_t));
- // binary files don't include the optional information
+ // binary files don't include the optional information
void load_override(class_id_optional_type & /* t */){}
void load_override(tracking_type & t, int /*version*/){
- library_version_type lvt = this->get_library_version();
- if(boost::archive::library_version_type(6) < lvt){
+ boost::serialization::library_version_type lv = this->get_library_version();
+ if(boost::serialization::library_version_type(6) < lv){
int_least8_t x=0;
* this->This() >> x;
t = boost::archive::tracking_type(x);
@@ -101,7 +102,7 @@ protected:
}
}
void load_override(class_id_type & t){
- library_version_type lvt = this->get_library_version();
+ boost::serialization::library_version_type lv = this->get_library_version();
/*
* library versions:
* boost 1.39 -> 5
@@ -117,10 +118,10 @@ protected:
* - v > 6 : 16bit
* - other : 32bit
* --> which is obviously incorrect, see point 1
- *
+ *
* the fix here decodes class_id_type on 16bit for all v <= 7, which seems to be the correct behaviour ...
*/
- if(boost::archive::library_version_type(7) < lvt){
+ if(boost::serialization::library_version_type (7) < lv){
this->detail_common_iarchive::load_override(t);
}
else{
@@ -134,24 +135,24 @@ protected:
}
void load_override(version_type & t){
- library_version_type lvt = this->get_library_version();
- if(boost::archive::library_version_type(7) < lvt){
+ boost::serialization::library_version_type lv = this->get_library_version();
+ if(boost::serialization::library_version_type(7) < lv){
this->detail_common_iarchive::load_override(t);
}
else
- if(boost::archive::library_version_type(6) < lvt){
+ if(boost::serialization::library_version_type(6) < lv){
uint_least8_t x=0;
* this->This() >> x;
t = boost::archive::version_type(x);
}
else
- if(boost::archive::library_version_type(5) < lvt){
+ if(boost::serialization::library_version_type(5) < lv){
uint_least16_t x=0;
* this->This() >> x;
t = boost::archive::version_type(x);
}
else
- if(boost::archive::library_version_type(2) < lvt){
+ if(boost::serialization::library_version_type(2) < lv){
// upto 255 versions
unsigned char x=0;
* this->This() >> x;
@@ -165,13 +166,13 @@ protected:
}
void load_override(boost::serialization::item_version_type & t){
- library_version_type lvt = this->get_library_version();
-// if(boost::archive::library_version_type(7) < lvt){
- if(boost::archive::library_version_type(6) < lvt){
+ boost::serialization::library_version_type lv = this->get_library_version();
+// if(boost::serialization::library_version_type(7) < lvt){
+ if(boost::serialization::library_version_type(6) < lv){
this->detail_common_iarchive::load_override(t);
}
else
- if(boost::archive::library_version_type(6) < lvt){
+ if(boost::serialization::library_version_type(6) < lv){
uint_least16_t x=0;
* this->This() >> x;
t = boost::serialization::item_version_type(x);
@@ -184,21 +185,21 @@ protected:
}
void load_override(serialization::collection_size_type & t){
- if(boost::archive::library_version_type(5) < this->get_library_version()){
+ if(boost::serialization::library_version_type(5) < this->get_library_version()){
this->detail_common_iarchive::load_override(t);
}
else{
unsigned int x=0;
* this->This() >> x;
t = serialization::collection_size_type(x);
- }
+ }
}
BOOST_ARCHIVE_OR_WARCHIVE_DECL void
load_override(class_name_type & t);
BOOST_ARCHIVE_OR_WARCHIVE_DECL void
init();
-
+
basic_binary_iarchive(unsigned int flags) :
detail::common_iarchive(flags)
{}
diff --git a/boost/archive/basic_binary_iprimitive.hpp b/boost/archive/basic_binary_iprimitive.hpp
index 665d3e81..a2902407 100644
--- a/boost/archive/basic_binary_iprimitive.hpp
+++ b/boost/archive/basic_binary_iprimitive.hpp
@@ -20,7 +20,7 @@
// IN GENERAL, ARCHIVES CREATED WITH THIS CLASS WILL NOT BE READABLE
// ON PLATFORM APART FROM THE ONE THEY ARE CREATED ON
-// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
// Use, modification and distribution is subject to the Boost Software
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
@@ -37,8 +37,8 @@
#include
#if defined(BOOST_NO_STDC_NAMESPACE)
-namespace std{
- using ::memcpy;
+namespace std{
+ using ::memcpy;
using ::size_t;
} // namespace std
#endif
@@ -48,7 +48,6 @@ namespace std{
#include
#include
-//#include
#include
#include
@@ -58,7 +57,7 @@ namespace std{
#include
#include // must be the last header
-namespace boost {
+namespace boost {
namespace archive {
/////////////////////////////////////////////////////////////////////////////
@@ -98,8 +97,8 @@ public:
/////////////////////////////////////////////////////////
// fundamental types that need special treatment
-
- // trap usage of invalid uninitialized boolean
+
+ // trap usage of invalid uninitialized boolean
void load(bool & t){
load_binary(& t, sizeof(t));
int i = t;
@@ -119,29 +118,29 @@ public:
BOOST_ARCHIVE_OR_WARCHIVE_DECL void
init();
- BOOST_ARCHIVE_OR_WARCHIVE_DECL
+ BOOST_ARCHIVE_OR_WARCHIVE_DECL
basic_binary_iprimitive(
- std::basic_streambuf & sb,
+ std::basic_streambuf & sb,
bool no_codecvt
);
- BOOST_ARCHIVE_OR_WARCHIVE_DECL
+ BOOST_ARCHIVE_OR_WARCHIVE_DECL
~basic_binary_iprimitive();
public:
// we provide an optimized load for all fundamental types
- // typedef serialization::is_bitwise_serializable
+ // typedef serialization::is_bitwise_serializable
// use_array_optimization;
- struct use_array_optimization {
- template
- #if defined(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS)
- struct apply {
- typedef typename boost::serialization::is_bitwise_serializable< T >::type type;
+ struct use_array_optimization {
+ template
+ #if defined(BOOST_NO_DEPENDENT_NESTED_DERIVATIONS)
+ struct apply {
+ typedef typename boost::serialization::is_bitwise_serializable< T >::type type;
};
#else
- struct apply : public boost::serialization::is_bitwise_serializable< T > {};
+ struct apply : public boost::serialization::is_bitwise_serializable< T > {};
#endif
};
- // the optimized load_array dispatches to load_binary
+ // the optimized load_array dispatches to load_binary
template
void load_array(serialization::array_wrapper& a, unsigned int)
{
@@ -155,17 +154,17 @@ public:
template
inline void
basic_binary_iprimitive::load_binary(
- void *address,
+ void *address,
std::size_t count
){
// note: an optimizer should eliminate the following for char files
BOOST_ASSERT(
- static_cast(count / sizeof(Elem))
+ static_cast(count / sizeof(Elem))
<= boost::integer_traits::const_max
);
std::streamsize s = static_cast(count / sizeof(Elem));
std::streamsize scount = m_sb.sgetn(
- static_cast(address),
+ static_cast(address),
s
);
if(scount != s)
diff --git a/boost/archive/basic_binary_oarchive.hpp b/boost/archive/basic_binary_oarchive.hpp
index f05f2f86..61bd8faa 100644
--- a/boost/archive/basic_binary_oarchive.hpp
+++ b/boost/archive/basic_binary_oarchive.hpp
@@ -9,7 +9,7 @@
/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
// basic_binary_oarchive.hpp
-// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
// Use, modification and distribution is subject to the Boost Software
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
@@ -58,7 +58,7 @@ namespace detail {
// does have the virtue of buiding the smalles archive in the minimum amount
// of time. So under some circumstances it may be he right choice.
template
-class BOOST_SYMBOL_VISIBLE basic_binary_oarchive :
+class BOOST_SYMBOL_VISIBLE basic_binary_oarchive :
public detail::common_oarchive
{
#ifdef BOOST_NO_MEMBER_TEMPLATE_FRIENDS
@@ -90,18 +90,18 @@ protected:
BOOST_STATIC_ASSERT(sizeof(object_id_type) == sizeof(uint_least32_t));
BOOST_STATIC_ASSERT(sizeof(object_reference_type) == sizeof(uint_least32_t));
- // binary files don't include the optional information
+ // binary files don't include the optional information
void save_override(const class_id_optional_type & /* t */){}
// enable this if we decide to support generation of previous versions
#if 0
void save_override(const boost::archive::version_type & t){
library_version_type lvt = this->get_library_version();
- if(boost::archive::library_version_type(7) < lvt){
+ if(boost::serialization::library_version_type(7) < lvt){
this->detail_common_oarchive::save_override(t);
}
else
- if(boost::archive::library_version_type(6) < lvt){
+ if(boost::serialization::library_version_type(6) < lvt){
const boost::uint_least16_t x = t;
* this->This() << x;
}
@@ -112,11 +112,11 @@ protected:
}
void save_override(const boost::serialization::item_version_type & t){
library_version_type lvt = this->get_library_version();
- if(boost::archive::library_version_type(7) < lvt){
+ if(boost::serialization::library_version_type(7) < lvt){
this->detail_common_oarchive::save_override(t);
}
else
- if(boost::archive::library_version_type(6) < lvt){
+ if(boost::serialization::library_version_type(6) < lvt){
const boost::uint_least16_t x = t;
* this->This() << x;
}
@@ -128,11 +128,11 @@ protected:
void save_override(class_id_type & t){
library_version_type lvt = this->get_library_version();
- if(boost::archive::library_version_type(7) < lvt){
+ if(boost::serialization::library_version_type(7) < lvt){
this->detail_common_oarchive::save_override(t);
}
else
- if(boost::archive::library_version_type(6) < lvt){
+ if(boost::serialization::library_version_type(6) < lvt){
const boost::int_least16_t x = t;
* this->This() << x;
}
@@ -155,11 +155,11 @@ protected:
#if 0
void save_override(const serialization::collection_size_type & t){
- if (get_library_version() < boost::archive::library_version_type(6)){
+ if (get_library_version() < boost::serialization::library_version_type(6)){
unsigned int x=0;
* this->This() >> x;
t = serialization::collection_size_type(x);
- }
+ }
else{
* this->This() >> t;
}
diff --git a/boost/archive/basic_binary_oprimitive.hpp b/boost/archive/basic_binary_oprimitive.hpp
index 6dc770c6..6c5e8e5e 100644
--- a/boost/archive/basic_binary_oprimitive.hpp
+++ b/boost/archive/basic_binary_oprimitive.hpp
@@ -9,7 +9,7 @@
/////////1/////////2/////////3/////////4/////////5/////////6/////////7/////////8
// basic_binary_oprimitive.hpp
-// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
+// (C) Copyright 2002 Robert Ramey - http://www.rrsd.com .
// Use, modification and distribution is subject to the Boost Software
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
@@ -32,8 +32,8 @@
#include
#if defined(BOOST_NO_STDC_NAMESPACE)
-namespace std{
- using ::size_t;
+namespace std{
+ using ::size_t;
} // namespace std
#endif
@@ -43,7 +43,6 @@ namespace std{
#include
#include
-//#include
#include
#include
@@ -93,7 +92,7 @@ public:
/////////////////////////////////////////////////////////
// fundamental types that need special treatment
-
+
// trap usage of invalid uninitialized boolean which would
// otherwise crash on load.
void save(const bool t){
@@ -113,32 +112,32 @@ public:
BOOST_ARCHIVE_OR_WARCHIVE_DECL void
init();
-
- BOOST_ARCHIVE_OR_WARCHIVE_DECL
+
+ BOOST_ARCHIVE_OR_WARCHIVE_DECL
basic_binary_oprimitive(
- std::basic_streambuf & sb,
+ std::basic_streambuf