316 Commits

Author SHA1 Message Date
Ion Gaztañaga
2ed37446bc Update changelog with #273 and #269 2024-05-23 23:55:34 +02:00
Ion Gaztañaga
9183729119 Update changelog with #277 and #280 2024-05-23 23:35:10 +02:00
Ion Gaztañaga
397fbda8be Fixes #280 ("Several containers don't support non-movable types when move assigning") 2024-05-23 23:28:54 +02:00
Ion Gaztañaga
c9e544df83 Fix typos and bad link 2024-03-29 22:05:04 +01:00
Ion Gaztañaga
6291e6c1bd Update quickbook version to 1.7 and fix detected errors in qbk 2024-03-18 00:01:22 +01:00
Ion Gaztañaga
fb822f0435 Update 1.85 changelog 2024-01-03 02:33:19 +01:00
Ion Gaztañaga
52013a99ef Fixes #225 ("variable set but not used in dlmalloc_ext_2_8_6.c") 2023-04-18 23:12:33 +02:00
Ion Gaztañaga
3ba7237b32 Update changelog with #242 2023-04-18 22:51:00 +02:00
Ion Gaztañaga
22357b34b7 Update changelog with #233 2023-03-13 13:31:16 +01:00
Ion Gaztañaga
db96d2ad47 Fixes #240 ("_GLIBCXX_DEBUG detects issues in flat_set/map") 2023-02-23 22:16:10 +01:00
Ion Gaztañaga
5cea4e8718 Fixes #236 ("flat_tree::erase_unique uses wrong iterator") 2023-02-13 10:04:07 +01:00
Ion Gaztañaga
3ef88e47b5 Update changelog with issue #238 ("Containers should not be using memset to value-initialize POD types") 2023-02-13 08:57:31 +01:00
Giuseppe D'Angelo
b694ada294 Do not memset(0) POD types
"POD" is the wrong type trait to determine if something can be safely
zero-filled in order to achieve zero initialization. Consider a type
like

  struct POD { int POD::*ptr; };

This is a POD; its value initialization needs to value initialize the
member, and since it's a pointer, that's zero initialization, and that's
setting the pointer to null.

On Itanium, a null pointer to data member is not zero filled; it actually
has the value -1u.

Hence, zero-filling via memset(0) a POD object like the one above is
erroneous. Unfortunately there is no type trait in C++ that we can use to
know if a given datatype can be value initialized by zero-filling -- we
can check for trivial constructability, but that's a necessary
condition, not a sufficient one (POD above is also trivially
constructible).

The test is disabled on MSVC because of a compiler bug.

Fixes #238
2023-02-02 11:29:53 +01:00
Ion Gaztañaga
2f70cddf55 Update changelog with #232 2022-12-11 23:58:08 +01:00
Ion Gaztañaga
4bed49ee14 Reworked devector's relocation options, instead of relocation_limit<relocation_limit_XX>, it's specified by single "relocate_on_XX" 2022-10-01 23:39:28 +02:00
Ion Gaztañaga
704bf10058 Refactor advanced insertion algorithms and implement a new devector insert strategy, moving elements to the middle if there is a reasonable free capacity at the other end of the container. 2022-09-20 00:22:19 +02:00
Ion Gaztañaga
231dd48e70 Fixes #211 ("Use atomics for pmr get/set default resource") 2022-07-25 01:28:58 +02:00
Ion Gaztañaga
b8c59d595c Fixes #210: ("Use sized delete in boost::container::new_allocator...") 2022-07-16 20:55:42 +02:00
Ion Gaztañaga
0d5068a0cc Fixes #209 2022-07-16 17:26:09 +02:00
Ion Gaztañaga
b7725ea473 Fixes #218 ("small_vector static capacity is too small when not a multiple of 8 bytes") 2022-07-10 18:36:02 +02:00
Ion Gaztañaga
34cd414280 Fixes #221 ("flat_set and friends should offer a const sequence_type& sequence() const method (...)") 2022-06-25 20:29:16 +02:00
Ion Gaztañaga
4ea5cd7911 Fixes GitHub #223 ("Possible copypaste typo") 2022-06-25 19:49:54 +02:00
Ion Gaztañaga
d3ec5c677d Fixes #222 ("Fix incomplete type error when using list with pair") 2022-06-25 19:40:05 +02:00
Ion Gaztañaga
f548e87cf5 Fixes #217 ("Broken link in docs") 2022-05-15 08:49:53 +02:00
Ion Gaztañaga
f5b2c7ba74 Fixes #214: ("string is not properly null-terminated in assignments") 2022-03-06 22:37:41 +01:00
Ion Gaztañaga
3787fc3021 Fixes #207 ("boost.vector doesn't work with common_iterator") 2022-01-12 01:38:05 +01:00
Ion Gaztañaga
25f90dbb28 Update changelog with #195 2022-01-07 22:22:03 +01:00
Ion Gaztañaga
2e583241c1 Fixes #204 ("Inconsistent noexcept-ness of static_vector::reserve"). 2022-01-07 11:15:27 +01:00
Ion Gaztañaga
cf3d6d3c51 Fixes #199 ("Apply LWG issue 3471") 2022-01-06 23:33:54 +01:00
Ion Gaztañaga
0eb901ee05 Fix wrongly committed boost_iterator_comp_test version 2021-12-30 23:27:40 +01:00
Ion Gaztañaga
3f76f9fdf7 Fixes #206 ("operator-> on static_vector::iterator causes cast alignment warning") 2021-12-28 15:17:15 +01:00
Ion Gaztañaga
f6a03fd3f2 Fixes #197 ("small_vector::swap causes spurious allocations and suboptimal performance") 2021-11-01 00:19:16 +01:00
Ion Gaztañaga
bcd41a1c64 - Add BOOST_CONTAINER_FORCEINLINE to trivial string internal functions
- Fixes #192 ("basic_string::clear() has poor codegen compared to STL implementations")
2021-09-13 14:19:38 +02:00
Ion Gaztañaga
bfbab6ed7f Fixes #186 ("Warnings out the wazoo") 2021-08-09 00:59:57 +02:00
Ion Gaztañaga
1cc35bbc98 Fixes #187 ("flat_map::erase and unique keys") 2021-08-08 00:38:29 +02:00
Ion Gaztañaga
aaa2485ebf Fixes #188 ("Build fails when RTTI is disabled") 2021-08-08 00:06:01 +02:00
Ion Gaztañaga
15bed478eb Fixes #185 ("Including headers adds exports"), replacing BOOST_SYMBOL_EXPORT with BOOST_SYMBOL_VISIBLE. 2021-05-03 09:18:51 +02:00
Ion Gaztañaga
b7d48f1e08 Fixes #180: ("polymorphic_allocator's copy special member functions are not noexcept") 2021-04-21 00:53:43 +02:00
Ion Gaztañaga
ad7167c564 Fixes #150 ("Use std::contiguous_iterator_tag if available"), tested in MSVC and GCC. 2021-04-21 00:43:31 +02:00
Ion Gaztañaga
249d537b58 Add BOOST_NOEXCEPT macro to doxygen 2021-04-19 21:53:32 +02:00
Ion Gaztañaga
16cada57ea Fixes #184 ("Issues with custom exceptions implementation") 2021-04-19 21:52:55 +02:00
Ion Gaztañaga
d7e99e56c6 Rewrite [flat_]map/set insert overloads to be more standard compliant. Fixes #102 ("flat_map::insert ambiguous with initializer list & pairs that need to convert"). 2021-01-01 23:50:50 +01:00
Ion Gaztañaga
d5a830434e - Replaced default standard exception classes with Boost.Container own classes, reducing considerably the included files overhead 2020-12-30 15:07:32 +01:00
Ion Gaztañaga
b17dabf47a Fixes #141 ('small_vector does not propagate no throw properties of move operation of contained type') 2020-12-30 00:19:22 +01:00
Ion Gaztañaga
93bbf37dad Fixes #139 ("flat_map merge and iterators"). 2020-11-14 00:10:46 +01:00
Ion Gaztañaga
ae93df82ea Fixes #164 ("Compile error when using pmr::map with a std::pair; works when using a std::tuple") 2020-11-13 23:43:02 +01:00
Ion Gaztañaga
2a458005d9 Fixes #171 ("deque::clear() uses undefined behaviour") 2020-11-10 10:08:03 +01:00
Ion Gaztañaga
6100bcfdeb Update changelog for 1.76 2020-11-05 14:30:41 +01:00
Ion Gaztañaga
0a0ad0009e Add support for [[nodiscard]]:
- Decorate container and allocator functions.
- Make sure to disable warnings in tests
- Update doxygen documentation to support it
2020-11-05 14:24:35 +01:00
Ion Gaztañaga
99d56db196 Update changelog with #162. 2020-11-02 15:08:19 +01:00