Ion Gaztañaga
e9d10ce544
Fixes GitHub #75 ("flat_set: Heap overflow")
2018-06-26 21:50:05 +02:00
Ion Gaztañaga
920e009d71
Implemented proposed resolution for LWG 3120
2018-06-18 00:29:22 +02:00
Ion Gaztañaga
62a8b6666e
Disable -Wclass-memaccess for GCC 8
2018-06-16 16:35:35 +02:00
Ion Gaztañaga
4faa05e36c
More traits to support additional triviality for pair.
2018-06-16 14:45:20 +02:00
Ion Gaztañaga
62ee740368
Fixed GitHub #74 ("vector assignment not using memcpy")
2018-06-16 11:51:31 +02:00
Ion Gaztañaga
9a22431578
* Clean up constructor template auto deduction guides to use Boost.Container traits
...
* GitHub #73 : '"triviality of pair".
* Fixed race condition bug in unsynchronized_pool_resource
2018-06-14 13:17:55 +02:00
Ion Gaztañaga
88f4a245ca
Merge branch 'ctad_testing' of https://github.com/rmpowell77/container into rmpowell77-ctad_testing
2018-05-14 11:52:41 +02:00
Ion Gaztañaga
ed50d14e9e
Change forward_as_tuple to forward_as_tuple_impl as there are ambiguities when std headers are included. It's is used only in the pair test
2018-05-14 11:49:35 +02:00
Richard Powell
72195ae288
Adding Constructor Template Auto Deduction guides.
2018-05-11 11:35:25 -06:00
Ion Gaztañaga
48c21e3187
Implemented C++14's heterogeneous lookups.
2018-05-01 14:55:24 +02:00
Ion Gaztañaga
04b0791593
* Fixed adaptive pool bugs
...
* Improved adaptive pool testing enabling invariant checking in debug mode.
* New compile-time and runtime calculated parameters for adaptive_pool.
* New test comparing set with default allocator or adaptive pool
2018-04-29 12:42:04 +02:00
Ion Gaztañaga
42c6be5887
Fixes Trac #13533 : "Boost vector resize causes assert(false)"
2018-04-29 12:37:35 +02:00
Ion Gaztañaga
b3eee90a81
Fix ticket #13500 : Memory leak when using erase on string vectors
2018-04-04 00:31:39 +02:00
Ion Gaztañaga
f0736ba73a
Use new "data" member char array in aligned_storage::type for placement new, to avoid breaking strict aliasing.
2018-01-30 14:20:52 +01:00
Ion Gaztañaga
feeafbe9f3
Use pdqsort to sort unique values.
2017-12-31 21:08:19 +01:00
Ion Gaztañaga
9abd56be5e
Recover lost projects from solution
2017-12-31 19:38:11 +01:00
Ion Gaztañaga
6ce2b2d0f8
Add improved range insertion to flat associative containers and improve merge operation for vector.
2017-12-26 22:04:15 +01:00
Ion Gaztañaga
3c6f4ea2ed
Forward declare correction vector iterator
2017-12-20 13:12:47 +01:00
QUvalda
ed6c8bd87d
Fix splice for slist
...
The call of the splice method with iterators leads to an infinite loop inside common_slist_algorithms::get_previous_node
slist<int> lst1 = { 0, 1, 2, 3 };
slist<int> lst2;
lst2.splice(lst2.begin(), lst1, lst1.begin());
expected:
lst1 == { 1, 2, 3 }
lst2 == { 0 }
2017-12-20 12:50:46 +01:00
Ion Gaztañaga
2802a1f50d
- Add configuration options to vector
...
- Cleanup tree configuration options
2017-12-10 23:33:41 +01:00
Ion Gaztañaga
67fddea741
Fix misaligned typedef
2017-12-09 13:07:29 +01:00
Ion Gaztañaga
fa2494631a
Use namespace dtl instead of container_detail to avoid excessively long symbol names.
2017-11-07 00:51:46 +01:00
Ion Gaztañaga
f49e5d0ad1
Fixes #59
2017-10-20 00:32:09 +02:00
Ion Gaztañaga
2a7b5a70a5
Closes #58 ("Comparing strings does not compile in gcc 7+ in C++17 mode")
2017-10-19 21:53:37 +02:00
Ion Gaztañaga
407aabd77b
* Another try to fix [boostorg/container] unused parameter warning when compiling with assertions disabled ( #56 )
2017-10-01 10:45:13 +02:00
Ion Gaztañaga
520dd7cbdd
Try to fix [boostorg/container] unused parameter warning when compiling with assertions disabled ( #56 )
2017-10-01 00:54:51 +02:00
Ion Gaztañaga
9ee836ee3d
Fixes to flat_map when used as an adaptor from regression tests errors in Mingw.
2017-08-28 11:58:43 +02:00
Ion Gaztañaga
c123accab1
Complete support for user-provided containers to flat_[multi]map/set containers, and instantiate them with several container types.
2017-08-28 10:45:29 +02:00
Ion Gaztañaga
2297f6af72
Modify flat associative containers to be adaptors if the allocator argument is a container. This allows using stable_vector, small_vector, static_vector as underlying containers.
2017-08-27 12:40:15 +02:00
Ion Gaztañaga
6530b7870f
Use BOOST_FALLTHROUGH instead of the broken typo version
2017-08-27 01:59:32 +02:00
Ion Gaztañaga
21fbd71ef3
Delete BOOST_CONTAINER_VECTOR_ITERATOR_IS_POINTER
2017-08-27 01:03:24 +02:00
Ion Gaztañaga
f92299434e
Implement resolution for LWG #2969 : polymorphic_allocator::construct() shouldn't pass resource()
2017-08-27 01:03:01 +02:00
Ion Gaztañaga
863b6e0d32
- Remove wrong explicit default constructor for flat_[multi]set.
...
- Add missing forceinline to flat_map
2017-08-17 23:58:58 +02:00
Edward Catmur
63174be55d
Document set::extract and multiset::extract.
2017-07-11 12:28:07 +01:00
Ion Gaztañaga
c748e90b6b
Remove unused to_raw_pointer file
2017-06-26 00:48:00 +02:00
Ion Gaztañaga
d7eaedc1a9
Merge branch 'master' of https://github.com/garyfurnish/container into garyfurnish-master
2017-06-06 13:14:18 +02:00
Gary Furnish
e0aaf744a5
Fix integer rollover that triggers clang ubsan when U is unsigned
2017-06-05 18:18:38 -06:00
Ion Gaztañaga
d5aede745e
Unify std::binders and lambdas with custom binders
2017-05-26 22:31:26 +02:00
Ion Gaztañaga
424b5e5848
Merge branch 'feature/replace-deprecated' of https://github.com/DanielaE/boost.container into DanielaE-feature/replace-deprecated
2017-05-26 22:02:11 +02:00
Ion Gaztañaga
ec91367383
Review all associative containers and implement a different constructor overload to avoid any unnecessary copy construction of the predicate or the allocator.
2017-05-16 16:29:49 +02:00
Mehdi Amini
40451e4bf7
Add variant of map constructors to avoid useless extra allocator copy when using initializer list
...
Many existing constructors have this form:
map(std::initializer_list<value_type> il, const Compare& comp = Compare(), const allocator_type& a = allocator_type())
The issue is that a temporary allocator_type is constructed, and
passed to the base class where it is used to copy-constructed the
rebound allocator.
This temporary allocator_type here is always destroyed at the end
of the map() constructor. For stateful allocators this is not
desirable.
The solution is to adopt what libc++ is doing and have to constructors:
map(std::initializer_list<value_type> il, const Compare& comp = Compare(), const allocator_type& a)
and
map(std::initializer_list<value_type> il, const Compare& comp = Compare())
This way, unless an allocator is provided by the client, no extra temporary
creation/destruction occurs.
2017-05-08 12:39:06 -07:00
Daniela Engert
36c334f414
replace deprecated/removed C++98 binders by equivalent lambda expressions.
...
Signed-off-by: Daniela Engert <dani@ngrt.de >
2017-04-28 19:15:58 +02:00
Ion Gaztañaga
6580c94573
Documentation fixes
2017-04-08 00:23:41 +02:00
Ion Gaztañaga
3516da36b0
Doxygen documentation fixes
2017-04-08 00:17:23 +02:00
Ion Gaztañaga
1d727753e2
Use directly boost::movelib::to_raw_pointer/iterator_to_raw_pointer
2017-04-07 16:07:00 +02:00
Ion Gaztañaga
a7e2bed8f1
Use adaptive_sort for merge operations.
2017-04-06 23:35:08 +02:00
Ion Gaztañaga
d6749960fc
Implement extract_sequence and adopt_sequence for flat ordered associative containers
2017-04-05 16:06:31 +02:00
Ion Gaztañaga
cdb022fda2
Fix ambiguous constructor calls for piecewise_construct and Boost vs std tuples
2017-04-05 16:04:53 +02:00
Ion Gaztañaga
01d7c71ea8
Fix node_handle bugs:
...
-> Bad allocator destruction in swap
-> Wrong assertion in operator=
-> Make dangerous functions private
Added full testsuite.
2017-04-02 00:20:38 +02:00
Ion Gaztañaga
e919196b8c
Fix GitHub Pull #46 : "Fix use of propagate_on_container_swap"
2017-03-28 13:40:08 +02:00