Permalink
Browse files

Update to boost 1.52, add boost/units/detail/utility.hpp. (reported b…

…y Leszek Flis)
  • Loading branch information...
1 parent e7c5f51 commit a44c81ff6251387d660a25b3c1c39a5639484079 @inducer committed Jan 13, 2013
Showing with 4,801 additions and 3,844 deletions.
  1. +1 −1 bpl_subset/boost/config/compiler/gcc.hpp
  2. +12 −12 bpl_subset/boost/container/allocator_traits.hpp
  3. +26 −26 bpl_subset/boost/container/container_fwd.hpp
  4. +6 −9 bpl_subset/boost/container/detail/advanced_insert_int.hpp
  5. +24 −0 bpl_subset/boost/container/detail/algorithms.hpp
  6. +110 −1 bpl_subset/boost/container/detail/destroyers.hpp
  7. +83 −20 bpl_subset/boost/container/detail/iterators.hpp
  8. +1 −95 bpl_subset/boost/container/detail/node_alloc_holder.hpp
  9. +62 −17 bpl_subset/boost/container/detail/preprocessor.hpp
  10. +0 −92 bpl_subset/boost/container/detail/stored_ref.hpp
  11. +0 −30 bpl_subset/boost/container/detail/utilities.hpp
  12. +4 −0 bpl_subset/boost/container/detail/workaround.hpp
  13. +665 −542 bpl_subset/boost/container/list.hpp
  14. +16 −16 bpl_subset/boost/container/scoped_allocator.hpp
  15. +479 −610 bpl_subset/boost/container/vector.hpp
  16. +1 −1 bpl_subset/boost/date_time/c_time.hpp
  17. +3 −3 bpl_subset/boost/date_time/date.hpp
  18. +9 −9 bpl_subset/boost/date_time/date_duration.hpp
  19. +7 −4 bpl_subset/boost/date_time/date_facet.hpp
  20. +4 −2 bpl_subset/boost/date_time/date_formatting.hpp
  21. +35 −35 bpl_subset/boost/date_time/date_generators.hpp
  22. +15 −15 bpl_subset/boost/date_time/date_iterator.hpp
  23. +26 −26 bpl_subset/boost/date_time/date_names_put.hpp
  24. +3 −1 bpl_subset/boost/date_time/date_parsing.hpp
  25. +2 −2 bpl_subset/boost/date_time/dst_rules.hpp
  26. +1 −1 bpl_subset/boost/date_time/dst_transition_generators.hpp
  27. +1 −1 bpl_subset/boost/date_time/filetime_functions.hpp
  28. +1 −7 bpl_subset/boost/date_time/format_date_parser.hpp
  29. +1 −1 bpl_subset/boost/date_time/gregorian_calendar.ipp
  30. +6 −6 bpl_subset/boost/date_time/local_time/custom_time_zone.hpp
  31. +2 −2 bpl_subset/boost/date_time/local_time/local_date_time.hpp
  32. +2 −2 bpl_subset/boost/date_time/local_time/posix_time_zone.hpp
  33. +5 −5 bpl_subset/boost/date_time/period_formatter.hpp
  34. +2 −2 bpl_subset/boost/date_time/posix_time/posix_time_config.hpp
  35. +1 −1 bpl_subset/boost/date_time/strings_from_facet.hpp
  36. +17 −6 bpl_subset/boost/date_time/time_duration.hpp
  37. +1 −1 bpl_subset/boost/date_time/time_facet.hpp
  38. +17 −17 bpl_subset/boost/date_time/time_iterator.hpp
  39. +6 −3 bpl_subset/boost/date_time/time_parsing.hpp
  40. +9 −9 bpl_subset/boost/date_time/time_zone_base.hpp
  41. +1 −1 bpl_subset/boost/date_time/tz_db_base.hpp
  42. +27 −27 bpl_subset/boost/date_time/wrapping_int.hpp
  43. +14 −6 bpl_subset/boost/detail/call_traits.hpp
  44. +17 −0 bpl_subset/boost/detail/interlocked.hpp
  45. +9 −5 bpl_subset/boost/foreach.hpp
  46. +50 −1 bpl_subset/boost/function/function_template.hpp
  47. +167 −14 bpl_subset/boost/functional/hash/detail/hash_float.hpp
  48. +0 −91 bpl_subset/boost/functional/hash/detail/hash_float_generic.hpp
  49. +0 −56 bpl_subset/boost/functional/hash/detail/hash_float_x86.hpp
  50. +13 −0 bpl_subset/boost/functional/hash/hash.hpp
  51. +5 −0 bpl_subset/boost/graph/detail/d_ary_heap.hpp
  52. +7 −7 bpl_subset/boost/graph/named_function_params.hpp
  53. +1 −1 bpl_subset/boost/graph/named_graph.hpp
  54. +4 −4 bpl_subset/boost/graph/properties.hpp
  55. +4 −4 bpl_subset/boost/graph/reverse_graph.hpp
  56. +2 −2 bpl_subset/boost/graph/visitors.hpp
  57. +1 −1 bpl_subset/boost/integer_traits.hpp
  58. +2 −2 bpl_subset/boost/iterator/iterator_facade.hpp
  59. +1 −1 bpl_subset/boost/iterator/reverse_iterator.hpp
  60. +140 −82 bpl_subset/boost/lexical_cast.hpp
  61. +4 −4 bpl_subset/boost/math/policies/policy.hpp
  62. +10 −6 bpl_subset/boost/math/special_functions/fpclassify.hpp
  63. +175 −1 bpl_subset/boost/math/special_functions/math_fwd.hpp
  64. +2 −2 bpl_subset/boost/optional/optional.hpp
  65. +21 −63 bpl_subset/boost/pending/property.hpp
  66. +44 −35 bpl_subset/boost/thread/detail/config.hpp
  67. +3 −3 bpl_subset/boost/thread/detail/delete.hpp
  68. +104 −2 bpl_subset/boost/thread/detail/memory.hpp
  69. +4 −4 bpl_subset/boost/thread/detail/move.hpp
  70. +19 −8 bpl_subset/boost/thread/detail/thread.hpp
  71. +196 −31 bpl_subset/boost/thread/future.hpp
  72. +6 −6 bpl_subset/boost/thread/locks.hpp
  73. +3 −0 bpl_subset/boost/thread/pthread/condition_variable_fwd.hpp
  74. +30 −18 bpl_subset/boost/thread/pthread/once.hpp
  75. +2 −2 bpl_subset/boost/thread/pthread/recursive_mutex.hpp
  76. +59 −7 bpl_subset/boost/thread/pthread/thread_data.hpp
  77. +4 −4 bpl_subset/boost/thread/pthread/thread_heap_alloc.hpp
  78. +3 −3 bpl_subset/boost/thread/win32/basic_recursive_mutex.hpp
  79. +1 −1 bpl_subset/boost/thread/win32/basic_timed_mutex.hpp
  80. +15 −7 bpl_subset/boost/thread/win32/condition_variable.hpp
  81. +11 −9 bpl_subset/boost/thread/win32/interlocked_read.hpp
  82. +38 −8 bpl_subset/boost/thread/win32/thread_data.hpp
  83. +1 −1 bpl_subset/boost/thread/win32/thread_heap_alloc.hpp
  84. +13 −7 bpl_subset/boost/thread/win32/thread_primitives.hpp
  85. +104 −0 bpl_subset/boost/units/detail/utility.hpp
  86. +449 −454 bpl_subset/boost/unordered/detail/allocate.hpp
  87. +298 −549 bpl_subset/boost/unordered/detail/buckets.hpp
  88. +37 −157 bpl_subset/boost/unordered/detail/equivalent.hpp
  89. +606 −151 bpl_subset/boost/unordered/detail/table.hpp
  90. +37 −158 bpl_subset/boost/unordered/detail/unique.hpp
  91. +12 −20 bpl_subset/boost/unordered/unordered_map.hpp
  92. +12 −20 bpl_subset/boost/unordered/unordered_set.hpp
  93. +98 −32 bpl_subset/boost/utility/detail/result_of_iterate.hpp
  94. +92 −8 bpl_subset/boost/utility/result_of.hpp
  95. +2 −2 bpl_subset/boost/version.hpp
  96. +1 −1 bpl_subset/libs/thread/src/future.cpp
  97. +5 −5 bpl_subset/libs/thread/src/pthread/once.cpp
  98. +45 −42 bpl_subset/libs/thread/src/pthread/thread.cpp
  99. +2 −2 bpl_subset/libs/thread/src/tss_null.cpp
  100. +100 −72 bpl_subset/libs/thread/src/win32/thread.cpp
  101. +1 −0 bpl_subset/libs/thread/src/win32/tss_dll.cpp
  102. +1 −1 do-extract
@@ -184,7 +184,7 @@
# define BOOST_NO_CXX11_DELETED_FUNCTIONS
#endif
-#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 4)
+#if __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 5)
# define BOOST_NO_SFINAE_EXPR
#endif
@@ -70,41 +70,41 @@ struct allocator_traits
typedef unspecified pointer;
//! Alloc::const_pointer if such a type exists ; otherwise, pointer_traits<pointer>::rebind<const
//!
- typedef unspecified const_pointer;
+ typedef see_documentation const_pointer;
//! Non-standard extension
//! Alloc::reference if such a type exists; otherwise, value_type&
- typedef unspecified reference;
+ typedef see_documentation reference;
//! Non-standard extension
//! Alloc::const_reference if such a type exists ; otherwise, const value_type&
- typedef unspecified const_reference;
+ typedef see_documentation const_reference;
//! Alloc::void_pointer if such a type exists ; otherwise, pointer_traits<pointer>::rebind<void>.
//!
- typedef unspecified void_pointer;
+ typedef see_documentation void_pointer;
//! Alloc::const_void_pointer if such a type exists ; otherwis e, pointer_traits<pointer>::rebind<const
//!
- typedef unspecified const_void_pointer;
+ typedef see_documentation const_void_pointer;
//! Alloc::difference_type if such a type exists ; otherwise, pointer_traits<pointer>::difference_type.
//!
- typedef unspecified difference_type;
+ typedef see_documentation difference_type;
//! Alloc::size_type if such a type exists ; otherwise, make_unsigned<difference_type>::type
//!
- typedef unspecified size_type;
+ typedef see_documentation size_type;
//! Alloc::propagate_on_container_copy_assignment if such a type exists, otherwise an integral_constant
//! type with internal constant static member `value` == false.
- typedef unspecified propagate_on_container_copy_assignment;
+ typedef see_documentation propagate_on_container_copy_assignment;
//! Alloc::propagate_on_container_move_assignment if such a type exists, otherwise an integral_constant
//! type with internal constant static member `value` == false.
- typedef unspecified propagate_on_container_move_assignment;
+ typedef see_documentation propagate_on_container_move_assignment;
//! Alloc::propagate_on_container_swap if such a type exists, otherwise an integral_constant
//! type with internal constant static member `value` == false.
- typedef unspecified propagate_on_container_swap;
+ typedef see_documentation propagate_on_container_swap;
//! Defines an allocator: Alloc::rebind<T>::other if such a type exists; otherwise, Alloc<T, Args>
//! if Alloc is a class template instantiation of the form Alloc<U, Args>, where Args is zero or
//! more type arguments ; otherwise, the instantiation of rebind_alloc is ill-formed.
//!
//! In C++03 compilers `rebind_alloc` is a struct derived from an allocator
//! deduced by previously detailed rules.
- template <class T> using rebind_alloc = unspecified;
+ template <class T> using rebind_alloc = see_documentation;
//! In C++03 compilers `rebind_traits` is a struct derived from
//! `allocator_traits<OtherAlloc>`, where `OtherAlloc` is
@@ -115,7 +115,7 @@ struct allocator_traits
//! `type` is an allocator related to Alloc deduced deduced by rules explained in `rebind_alloc`.
template <class T>
struct portable_rebind_alloc
- { typedef unspecified_type type; };
+ { typedef see_documentation type; };
#else
//pointer
typedef BOOST_INTRUSIVE_OBTAIN_TYPE_WITH_DEFAULT(boost::container::container_detail::, Alloc,
@@ -49,85 +49,85 @@ namespace container {
//vector class
template <class T
- ,class A = std::allocator<T> >
+ ,class Allocator = std::allocator<T> >
class vector;
//vector class
template <class T
- ,class A = std::allocator<T> >
+ ,class Allocator = std::allocator<T> >
class stable_vector;
//vector class
template <class T
- ,class A = std::allocator<T> >
+ ,class Allocator = std::allocator<T> >
class deque;
//list class
template <class T
- ,class A = std::allocator<T> >
+ ,class Allocator = std::allocator<T> >
class list;
//slist class
template <class T
- ,class A = std::allocator<T> >
+ ,class Allocator = std::allocator<T> >
class slist;
//set class
-template <class T
- ,class Pred = std::less<T>
- ,class A = std::allocator<T> >
+template <class Key
+ ,class Compare = std::less<Key>
+ ,class Allocator = std::allocator<Key> >
class set;
//multiset class
-template <class T
- ,class Pred = std::less<T>
- ,class A = std::allocator<T> >
+template <class Key
+ ,class Compare = std::less<Key>
+ ,class Allocator = std::allocator<Key> >
class multiset;
//map class
template <class Key
,class T
- ,class Pred = std::less<Key>
- ,class A = std::allocator<std::pair<const Key, T> > >
+ ,class Compare = std::less<Key>
+ ,class Allocator = std::allocator<std::pair<const Key, T> > >
class map;
//multimap class
template <class Key
,class T
- ,class Pred = std::less<Key>
- ,class A = std::allocator<std::pair<const Key, T> > >
+ ,class Compare = std::less<Key>
+ ,class Allocator = std::allocator<std::pair<const Key, T> > >
class multimap;
//flat_set class
-template <class T
- ,class Pred = std::less<T>
- ,class A = std::allocator<T> >
+template <class Key
+ ,class Compare = std::less<Key>
+ ,class Allocator = std::allocator<Key> >
class flat_set;
//flat_multiset class
-template <class T
- ,class Pred = std::less<T>
- ,class A = std::allocator<T> >
+template <class Key
+ ,class Compare = std::less<Key>
+ ,class Allocator = std::allocator<Key> >
class flat_multiset;
//flat_map class
template <class Key
,class T
- ,class Pred = std::less<Key>
- ,class A = std::allocator<std::pair<Key, T> > >
+ ,class Compare = std::less<Key>
+ ,class Allocator = std::allocator<std::pair<Key, T> > >
class flat_map;
//flat_multimap class
template <class Key
,class T
- ,class Pred = std::less<Key>
- ,class A = std::allocator<std::pair<Key, T> > >
+ ,class Compare = std::less<Key>
+ ,class Allocator = std::allocator<std::pair<Key, T> > >
class flat_multimap;
//basic_string class
template <class CharT
,class Traits = std::char_traits<CharT>
- ,class A = std::allocator<CharT> >
+ ,class Allocator = std::allocator<CharT> >
class basic_string;
//! Type used to tag that the input range is
@@ -173,7 +173,6 @@ struct default_construct_aux_proxy
#ifdef BOOST_CONTAINER_PERFECT_FORWARDING
#include <boost/container/detail/variadic_templates_tools.hpp>
-#include <boost/container/detail/stored_ref.hpp>
#include <boost/move/move.hpp>
#include <typeinfo>
//#include <iostream> //For debugging purposes
@@ -227,8 +226,7 @@ struct advanced_insert_aux_non_movable_emplace
if(!this->used_){
alloc_traits::construct( this->a_
, container_detail::to_raw_pointer(&*p)
- , ::boost::container::container_detail::
- stored_ref<Args>::forward(get<IdxPack>(this->args_))...
+ , ::boost::forward<Args>(get<IdxPack>(this->args_))...
);
this->used_ = true;
}
@@ -241,8 +239,7 @@ struct advanced_insert_aux_non_movable_emplace
if(!this->used_){
alloc_traits::construct( this->a_
, container_detail::to_raw_pointer(&*p)
- , ::boost::container::container_detail::
- stored_ref<Args>::forward(get<IdxPack>(this->args_))...
+ , ::boost::forward<Args>(get<IdxPack>(this->args_))...
);
this->used_ = true;
}
@@ -288,7 +285,7 @@ struct advanced_insert_aux_emplace
aligned_storage<sizeof(value_type), alignment_of<value_type>::value> v;
value_type *vp = static_cast<value_type *>(static_cast<void *>(&v));
alloc_traits::construct(this->a_, vp,
- ::boost::container::container_detail::stored_ref<Args>::forward(get<IdxPack>(this->args_))...);
+ ::boost::forward<Args>(get<IdxPack>(this->args_))...);
scoped_destructor<A> d(this->a_, vp);
*p = ::boost::move(*vp);
d.release();
@@ -305,7 +302,7 @@ struct advanced_insert_aux_emplace
aligned_storage<sizeof(value_type), alignment_of<value_type>::value> v;
value_type *vp = static_cast<value_type *>(static_cast<void *>(&v));
alloc_traits::construct(this->a_, vp,
- ::boost::container::container_detail::stored_ref<Args>::forward(get<IdxPack>(this->args_))...);
+ ::boost::forward<Args>(get<IdxPack>(this->args_))...);
try {
*p = ::boost::move(*vp);
} catch (...) {
@@ -413,7 +410,7 @@ struct BOOST_PP_CAT(BOOST_PP_CAT(advanced_insert_aux_emplace, n), arg)
alloc_traits::construct(this->a_, vp \
BOOST_PP_ENUM_TRAILING(n, BOOST_CONTAINER_PP_MEMBER_FORWARD, _)); \
scoped_destructor<A> d(this->a_, vp); \
- *p = ::boost::move(*vp); \
+ *p = ::boost::move(*vp); \
d.release(); \
this->used_ = true; \
} \
@@ -430,7 +427,7 @@ struct BOOST_PP_CAT(BOOST_PP_CAT(advanced_insert_aux_emplace, n), arg)
alloc_traits::construct(this->a_, vp \
BOOST_PP_ENUM_TRAILING(n, BOOST_CONTAINER_PP_MEMBER_FORWARD, _)); \
scoped_destructor<A> d(this->a_, vp); \
- *p = ::boost::move(*vp); \
+ *p = ::boost::move(*vp); \
d.release(); \
this->used_ = true; \
} \
@@ -34,6 +34,30 @@
namespace boost {
namespace container {
+template<class It>
+struct is_default_construct_iterator
+{
+ static const bool value = false;
+};
+
+template<class U, class D>
+struct is_default_construct_iterator<default_construct_iterator<U, D> >
+{
+ static const bool value = true;
+};
+
+template<class It>
+struct is_emplace_iterator
+{
+ static const bool value = false;
+};
+
+template<class U, class EF, class D>
+struct is_emplace_iterator<emplace_iterator<U, EF, D> >
+{
+ static const bool value = true;
+};
+
template<class A, class T, class InpIt>
inline void construct_in_place(A &a, T* dest, InpIt source)
{ boost::container::allocator_traits<A>::construct(a, dest, *source); }
Oops, something went wrong.

0 comments on commit a44c81f

Please sign in to comment.