Commit Graph

745 Commits

Author SHA1 Message Date
Ion Gaztañaga
fdf6b37b67 - Use newly added is_constructible to implement portably constructible_with_allocator_suffix/constructible_with_allocator_prefix 2025-11-29 21:51:31 +01:00
Ion Gaztañaga
5039410be5 Add is_constructible implementation, compatible with several C++03 compilers 2025-11-29 21:48:11 +01:00
Ion Gaztañaga
86a69d852e Use newly added limit_by_stored_size_type 2025-11-29 21:46:39 +01:00
Ion Gaztañaga
a682f10fbb Implement helper functions to deal with potential narrowing and avoid warnings 2025-11-29 21:46:06 +01:00
Ion Gaztañaga
68914708b2 Add dummy allocator utility to be able to use allocator_traits machinery without instantiating a real allocator 2025-11-24 21:25:04 +01:00
Ion Gaztañaga
aca13505b8 Fix typo 2025-11-24 21:24:27 +01:00
Ion Gaztañaga
558e3f24e8 Fix typo 2025-11-23 00:43:27 +01:00
Ion Gaztañaga
5353cfc736 Implement C++26 heterogeneous "insert" for set and flat_set. Range insertion functions in flat_tree are renamed to support some older compilers that have problems with SFINAE against the heterogeneous insert overload 2025-11-09 21:16:24 +01:00
Ion Gaztañaga
e4f42d03cb Implement heterogeneous "at()" operation for map/flat_map 2025-11-07 23:09:05 +01:00
Ion Gaztañaga
9f08eccc05 Implement C++26 heterogeneous operator[], refactor operator[] implementation. 2025-11-07 22:24:37 +01:00
Ion Gaztañaga
92d46cc151 Add C++26 transparent "try_emplace" to map and flat_map 2025-11-06 23:59:05 +01:00
Ion Gaztañaga
21725febaa Add C++23 transparent extract() method to set/multiset/map/multimap 2025-11-05 22:31:54 +01:00
Ion Gaztañaga
d179658a08 Add small test to set/flat_map for transparent erase 2025-11-05 15:04:50 +01:00
Ion Gaztañaga
5610e49409 Fix transparent "erase" documentation 2025-11-05 13:49:05 +01:00
Ion Gaztañaga
f394ffc98a Implement transparent insert_or_assign (C++26) for flat_map 2025-11-04 23:51:36 +01:00
Ion Gaztañaga
ade3238536 Remove copy-pasted text from map that does not apply to flat_map, since it's not a node-based container and does not implement extract operations. 2025-11-04 23:30:07 +01:00
Ion Gaztañaga
2932339965 Fix transparent erase signature to "K&&" 2025-11-03 23:55:52 +01:00
Ion Gaztañaga
73d91c52ce Implement transparent insert_or_assign (C++26) for map. 2025-11-03 22:42:55 +01:00
Ion Gaztañaga
c7a3d86206 Fix incorrect return value description for insert_or_assign with hint. 2025-11-03 22:38:45 +01:00
Ion Gaztañaga
3fec38d9cc Fix -Wcast-qual 2025-11-03 00:12:16 +01:00
Ion Gaztañaga
5923493b1f Fix -Wsign-conversion 2025-11-03 00:11:52 +01:00
Ion Gaztañaga
1ef175aa91 Fix -Wcast-qual warnings. 2025-11-02 23:01:14 +01:00
Ion Gaztañaga
22bc5024d5 Implement erase_if for map and flat_map 2025-11-01 21:50:14 +01:00
Ion Gaztañaga
a7873e975d Add erase_if for set/flat_set 2025-11-01 11:49:49 +01:00
Ion Gaztañaga
5fea200894 Correct indentation for erase/erase_if 2025-11-01 10:36:44 +01:00
Ion Gaztañaga
6911e6adce Implement erase/erase_if for list and slist 2025-10-31 15:37:07 +01:00
Ion Gaztañaga
ec6364a3c5 Fix inserter function, it was inserting in reverse order 2025-10-31 15:35:26 +01:00
Ion Gaztañaga
3763c80ec6 Added C++20 remove and remove_if overloads to vector-like containers 2025-10-29 00:12:43 +01:00
Ion Gaztañaga
8b6bd59051 Fixes #321 ("devector does not work with pmr allocators") 2025-10-28 15:50:22 +01:00
Ion Gaztañaga
247ffd0336 Fixes #304 ("Usage of boost::container::small_vector with custom allocator") 2025-10-27 23:55:05 +01:00
Ion Gaztañaga
2170155cb9 Fixes #312 2025-10-27 09:07:47 +01:00
Ion Gaztañaga
cae7d2c306 Add missing <boost/container/throw_exception.hpp> include 2025-10-26 22:22:36 +01:00
Ion Gaztañaga
e18078f846 Define operator_new_allocate/operator_delete_deallocate helpers, taking care of __cpp_aligned_new and __cpp_sized_deallocation, and use them in new_allocator 2025-10-26 22:06:59 +01:00
Ion Gaztañaga
ef4626b531 Forward declare std::align_val_t 2025-10-26 21:33:07 +01:00
Ion Gaztañaga
bdad103aa5 Add missing include for true/false_type 2025-10-26 21:25:05 +01:00
Ion Gaztañaga
243b74cb9d - Refactor "prot_reallocate_map_and_nodes" "priv_reserve_elements_at_back" and "priv_reserve_elements_at_front"
- Use 1,5 growth factor for reservable deques
2025-10-08 00:43:04 +02:00
Ion Gaztañaga
0a2144896d Fix Options documentation issue with Doxygen 2025-09-29 14:51:38 +02:00
Ion Gaztañaga
2774b3c9ba Remove "ingroup" from doxygen documentation 2025-09-29 12:15:41 +02:00
Ion Gaztañaga
806aee2b7b Add experimental "reservable" option to deque. 2025-09-29 00:43:44 +02:00
Ion Gaztañaga
7115c0ae95 Fix incorrect ifdef for GCC pop_options 2025-09-29 00:42:46 +02:00
Ion Gaztañaga
d1e26b23f9 Make front/back_capacity public 2025-09-28 23:35:47 +02:00
Ion Gaztañaga
990e2b8842 Add front_capacity and back_capacity 2025-09-27 22:19:52 +02:00
Ion Gaztañaga
8470abf32d Comment default block size logic, round up default_block_start 2025-09-24 23:05:11 +02:00
Ion Gaztañaga
df4af0989c Implement the initial machinery to support "stored_size" option. 2025-09-22 00:35:20 +02:00
Ion Gaztañaga
473bff0c5b Make default block bytes dependent on the architecture's word-width 2025-09-21 11:42:28 +02:00
Ion Gaztañaga
85ea77309b Put range check in the first position to clean up code 2025-09-21 11:12:09 +02:00
Ion Gaztañaga
d877b36629 Make deque_iterator explicit instantiation friendly. 2025-09-21 07:51:51 +02:00
Ion Gaztañaga
c59f740c68 Put deque_iterator in the main namespace, like in vector 2025-09-21 07:31:49 +02:00
Ion Gaztañaga
c006897da0 Try workaround for GCC 12 C++03 failures 2025-09-20 12:29:16 +02:00
Ion Gaztañaga
5be25a65db Add new deque implementation. 2025-09-20 10:48:50 +02:00