Ion Gaztañaga
dcf4ac7960
Add missing include for boost::forward
2016-08-24 02:21:02 +02:00
Ion Gaztañaga
db5c24e0e7
Fix piecewise_construct pair constructor for compilers with variadics and constructor forwarding. Current code unconditionally moves instead of forwarding.
2016-08-24 01:52:53 +02:00
Ion Gaztañaga
79a75f470e
Add piecewise_construct construction to internal pair.
2016-08-23 02:14:19 +02:00
Ion Gaztañaga
0b98372af5
Silence most vexing parse warnings in clang.
2016-08-23 02:13:56 +02:00
Ion Gaztañaga
eb42811079
Delegating constructors detection, as Boost.Config does not yet provide it.
2016-08-23 02:13:30 +02:00
Ion Gaztañaga
c7407e34f6
Replaced int with std::size_t when building indexes.
2016-08-23 02:13:03 +02:00
Ion Gaztañaga
2d6f781a2f
Implemented "insert_or_assign" for map-like containers.
2016-08-18 20:29:04 +02:00
Ion Gaztañaga
fb1be6fa75
Fix Trac #12117 ("flat_set constructor with ordered_unique_range") adding checks to constructors in debug mode
...
Fix typos on value_type checks in flat_[multi]map.
2016-08-15 23:22:57 +02:00
Ion Gaztañaga
324130703e
Fix incorrect header guards
2016-08-15 23:21:10 +02:00
Ion Gaztañaga
d5adae2eda
Fixes Trac #11802 ("Incorrect ordering after using insert() with ordered_range_t on a flat_multiset with a non-default sort order")
2016-08-12 00:43:16 +02:00
Ion Gaztañaga
b13ba0f911
Fixed Trac #9481 ("Minor comment typo in Boost.Container")
2016-08-11 11:25:11 +02:00
Ion Gaztañaga
37c1558a81
Fixed Trac #12256 (set<std::pair<int,int>>::insert cause compilation error in debug configuration in Visual Studio 2012)
2016-08-09 00:59:39 +02:00
Ion Gaztañaga
4122e722a4
Added constant static_vector<>/small_vector::static_capacity to use the configured capacity in constant expressions.
2016-08-03 00:18:11 +02:00
Ion Gaztañaga
649aba461e
Fixes Trac #12296 ("boost::container::{deque,string} combine for a memory leak"). The use of trivial_destructor_after_move was incorrect in several contexts.
2016-08-02 00:49:38 +02:00
Ion Gaztañaga
225e2da77e
Revised noexcept expressions of default and move constructors in all containers.
2016-08-01 23:49:51 +02:00
Ion Gaztañaga
b6d3906895
Use value-initialized pointers when null is required, as conversion from literal 0 is not guaranteed in smart pointers.
2016-07-31 23:16:08 +02:00
Pavel A. Lebedev
0b75df9920
Allow reuse of buffer in reserve with v2 allocator
...
allocation_command uses expand_{fwd,bwd} flags and its result is later compared with the old pointer, but the old pointer was not passed for reuse.
2016-07-16 18:52:10 +03:00
Ion Gaztañaga
2a04243de7
Add safety assertion
2016-06-25 11:05:07 +02:00
Ion Gaztañaga
153fd7f474
Add more is_class, is_class_or_union, is_enum specialization to pair to allow recursive containers and type traits intrinsics
2016-06-25 11:04:55 +02:00
Ion Gaztañaga
a52684beea
Some dispatch_uses_allocator overloads don't forward the allocator argument
2016-06-25 11:03:57 +02:00
Ion Gaztañaga
b888d2ae47
Fixes Trac #12183 (GCC 6.1 thinks boost::container::string violates strict aliasing)
2016-05-16 16:59:25 +02:00
Ion Gaztañaga
132e57a348
Fixes Trac #12177 ("vector::priv_merge uses unqualified uintptr_t")
2016-05-13 23:50:34 +02:00
Ion Gaztañaga
873daf9a0c
Fixed bug Trac #11170
2016-05-13 22:17:03 +02:00
Ion Gaztañaga
3e82a27917
Fixes Trac #11912 : "flat_map use of vector::priv_forward_range_insert_expand_backwards may cause move with same source"
2016-02-24 22:27:53 +01:00
Ion Gaztañaga
310d8eaf10
Fixed Trac #11957 : "static_vector::max_size() is higher than the capacity"
2016-02-24 14:45:44 +01:00
Ion Gaztañaga
a7158c7975
Fixed Trac #12014 : "boost::container::set can not insert const (ref) range"
2016-02-24 10:13:07 +01:00
Ion Gaztañaga
530713139d
Fix typo
2016-02-23 13:28:31 +01:00
Ion Gaztañaga
b436c91590
Fix Trac #11866 : small_vector does not have range constructor. Added all missing constructors to small vector
2015-12-25 13:27:30 +01:00
Ion Gaztañaga
4e2dfe138b
Add workaround to correctly implement allocator_traits::destroy with small_vector_allocator<std::allocator>
2015-12-25 13:25:56 +01:00
Ion Gaztañaga
c894ddf5a5
Use SFINAE in range constructors to detect iterators
2015-12-25 13:24:27 +01:00
Ion Gaztañaga
641d1a5d5a
small_vector: Added copy/move constructor/assignments from small_vector_base
2015-12-24 13:46:00 +01:00
Ion Gaztañaga
75f7c8fa73
Introduced BOOST_CONTAINER_FORCEINLINE so that mandatory inlining can be disabled selectively
2015-12-24 10:22:38 +01:00
Ion Gaztañaga
a3262c0ae7
Fix for Trac #11820 ("compiler error when using operator[] of map")
2015-12-24 01:14:10 +01:00
Ion Gaztañaga
283d8ff717
Merge branch 'include-string' of https://github.com/muggenhor/boost-container into muggenhor-include-string
2015-12-23 10:28:49 +01:00
Ion Gaztañaga
08e768f1d8
Fix comment about self-assignment
2015-11-06 21:49:55 +01:00
Ion Gaztañaga
629a2aa85c
Use boost.container placement version in priv_construct
2015-10-31 00:53:59 +01:00
Giel van Schijndel
f60f0bde95
Make sure std::string constructor is available
...
.. because <stdexcept> only needs to have a forward declaration of
std::string. But that's not enough to invoke constructors of
std::exception (and derivatives) if we don't have a reference to an
std::string handy.
2015-10-30 14:23:37 +01:00
Ion Gaztañaga
e50a8f7cdf
Merge branch 'patch-1' of https://github.com/praetorian20/container into praetorian20-patch-1
2015-10-24 21:39:06 +02:00
Ion Gaztañaga
c4505003c7
Minimize ifdef-ed code for BOOST_MOVE_HELPERS_RETURN_SFINAE_BROKEN
2015-10-17 10:17:30 +02:00
Ion Gaztañaga
1d5c367d62
Use BOOST_MOVE_HELPERS_RETURN_SFINAE_BROKEN as some compilers prefer return type SFINAE while others don't support it.
2015-10-17 09:39:56 +02:00
Ion Gaztañaga
d517bf46a8
- Simplified code using new priv_raw_begin(), renamed back_raw to priv_back_raw to match it.
...
- Avoid dynamic allocation in priv_merge when there is enough capacity for new elements.
2015-10-12 18:57:44 +02:00
Ion Gaztañaga
7764e05444
Changes to support GCC 3.4
2015-10-12 18:51:08 +02:00
Ion Gaztañaga
f8a4f01a86
Fixed Trac #11698 ("Missing return statement in static_storage_allocator")
2015-09-30 22:39:44 +02:00
Ion Gaztañaga
79274e4aae
Fixed Trac #11697 ("Wrong initialization order in tuple copy-constructor")
2015-09-30 22:35:17 +02:00
Ion Gaztañaga
85b2ed509b
Added debug assertions via BOOST_ASSERT to check preconditions in several members. All checks are O(1)
2015-09-18 14:39:17 +02:00
Ion Gaztañaga
3f4a5dec6e
Add some C++1 missing functions to string and a couple of debug assertions
2015-09-18 14:38:38 +02:00
Ion Gaztañaga
f637fada71
Use newly refactored move/detail/std_fwd_xxx.hpp headers
2015-09-14 22:38:26 +02:00
Ion Gaztañaga
7071fbc7d8
Fixed unused argument warning in swap_resources().
...
Fixed changelog copy-paste error.
2015-09-10 12:09:08 +02:00
Ion Gaztañaga
f1f97518d3
Fixed Track #11627 and #11628
2015-09-09 09:48:09 +02:00
Ion Gaztañaga
33d2f0f7af
Add Polymorphic Memory Resource utilities and rework the separately compiled library:
...
- Dlmalloc's based C function are boost_cont_xxx no longer exported, but wrapped into C++ linkage dlmalloc_xxx functions to effectively reuse Boost's dynamic library and autolink machinery instead of rewriting machinery to compile the C source file.
- Refactored scoped_allocator_adaptor's construct logic as it was shared with polymorphic allocator's one. Moved common logic to detail/dispatch_uses_allocator.hpp. Refactored also scoped_allocator_adaptor test utilities to be reused with polymorphic_allocator tests.
2015-09-07 19:16:46 +02:00