Commit Graph

405 Commits

Author SHA1 Message Date
Ion Gaztañaga
059133a345 Fix GitHub #79 ("Mark small_vector move operations noexcept") 2018-11-11 00:20:22 +01:00
Ion Gaztañaga
3a2f61fdb0 Merge branch 'container-misc-typos' of https://github.com/luzpaz/container into luzpaz-container-misc-typos 2018-11-10 23:32:42 +01:00
Ion Gaztañaga
10a618afe8 Fix GitHub #83: ("Iterator zero incrementing leads to assert on empty vector") 2018-11-10 23:12:46 +01:00
Tobias Ludwig
b7355bb2b4 add missing warning re-enabling include
fixes msvc warning C5032: "detected #pragma warning(push) with no corresponding #pragma warning(pop)"
2018-10-29 22:31:52 +01:00
Ion Gaztañaga
76b181f024 Make some sanitizers happier avoiding wraparound. 2018-09-29 09:58:52 +02:00
Ion Gaztañaga
0b39d57b6a Enable again push_back/push_front. 2018-09-29 09:58:24 +02:00
Ion Gaztañaga
c0a1c5cfc0 Fix invalid multiallocation_chain iterator increment after memory was overwritten. 2018-09-29 09:57:36 +02:00
Ion Gaztañaga
92e5ffb151 Add BOOST_LIKELY hints 2018-09-26 01:11:34 +02:00
Ion Gaztañaga
e787c4a24d Use uninitialized memory for node-based containers to improve aliasing conformance 2018-09-26 01:10:37 +02:00
Ion Gaztañaga
1e509c308e Add ASAN detection macro (BOOST_CONTAINER_ASAN) 2018-09-26 01:09:44 +02:00
Ion Gaztañaga
d242914572 Forward declare equal_to 2018-09-26 01:09:19 +02:00
Ion Gaztañaga
09e757ee1c Reenable some commented operations 2018-09-26 01:09:02 +02:00
Ion Gaztañaga
abccf168af Use more correct code in allocate_many 2018-09-26 01:08:24 +02:00
luz.paz
a6ac16d0c4 container: misc-typos
Found via `codespell -q 3 -L iff,nd`
2018-09-23 15:54:39 -04:00
Ion Gaztañaga
72c7ef7801 Fix assertion produced by previous string changes to avoid UB. 2018-09-18 14:23:31 +02:00
Ion Gaztañaga
ffbf76df00 Add more constructor overloads to support future unordered containers. 2018-09-15 01:23:23 +02:00
Ion Gaztañaga
25a109f8d2 Export boost::move_detail::nat2 and boost::move_detail::nat3 to container detail namespace 2018-09-15 01:22:18 +02:00
Ion Gaztañaga
60aea31db7 Make value_to_node_compare return type configurable 2018-09-15 01:21:47 +02:00
Ion Gaztañaga
43c0d7a731 Fix some type punning warnings, avoiding forming a reference to non-constructed objects 2018-09-15 01:20:43 +02:00
Ion Gaztañaga
5ab5c7de63 Add noexcept_if to tree::swap 2018-09-15 01:18:27 +02:00
Ion Gaztañaga
7cba84ca97 Make non-const overload of internal_storage and make them BOOST_CONTAINER_FORCEINLINE 2018-09-15 01:16:28 +02:00
Ion Gaztañaga
6504af8708 Disable false positives on "-Wstringop-overflow" and "-Warray-bounds" in release mode 2018-09-15 01:15:25 +02:00
Ion Gaztañaga
cce2ef763a Improve short/long representation to avoid aliasing problems and disable "-Wmaybe-uninitialized" for compilers that have false positives. 2018-09-15 01:10:50 +02:00
Ion Gaztañaga
f28fe5d33e Fix some type punning warnings, avoiding forming a reference to non-constructed objects 2018-09-15 00:52:18 +02:00
Ion Gaztañaga
73ad892393 Make set::equal_range BOOST_CONTAINER_FORCEINLINE 2018-09-15 00:51:13 +02:00
Ion Gaztañaga
fb0854bd08 Fix unused variable warning. 2018-09-15 00:50:51 +02:00
Ion Gaztañaga
d4ff624264 Fixes GitHub #82: "Function definition in header file". 2018-08-29 22:19:29 +02:00
Ion Gaztañaga
139db663a3 * Implemented C++20 contains() for associative containers as specified in P0458R2.
* Fixed serious bug in heterogeneous lookup functions (is_transparent was broken).
2018-08-13 15:36:00 +02:00
Ion Gaztañaga
b56cbb60e0 Add assertions to invalid operations. 2018-06-27 16:50:58 +02:00
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