Commit Graph

861 Commits

Author SHA1 Message Date
Ion Gaztañaga 6af550e851 Tidy conditional code 2026-03-15 23:55:28 +01:00
Ion Gaztañaga 57e7578def generate_ref should support sentinels 2026-03-15 23:47:42 +01:00
Ion Gaztañaga 69242181c4 Use forward declared random access iterator from detail 2026-03-15 23:47:26 +01:00
Ion Gaztañaga 6449da8e64 Refactor segmented_generate_ref to use generate_ref 2026-03-15 23:32:09 +01:00
Ion Gaztañaga e1561323f8 Improve performance detecting random access iterators and avoiding checking count on every iteration 2026-03-15 23:31:16 +01:00
Ion Gaztañaga 4a3878a8e2 Implemente fill and fill_n in terms of generate and generate_n 2026-03-15 23:30:51 +01:00
Ion Gaztañaga f61f3379a5 Improve local iterator 2026-03-15 23:05:59 +01:00
Ion Gaztañaga 4f133c33c4 Reformat is_sorted. 2026-03-15 17:20:29 +01:00
Ion Gaztañaga b213a5a96d Optimize nest_local_iterator comparison (support only same-segment comparison 2026-03-15 17:20:03 +01:00
Ion Gaztañaga 74540abf67 Avoid aliasing in equal_ref 2026-03-15 17:19:27 +01:00
Ion Gaztañaga 40aa14be74 Minor tweaks to nest 2026-03-14 01:10:50 +01:00
Ion Gaztañaga ee4d1bb7eb Implement segmented_remove_if as segmented_find_if + segmented_remove_copy_if 2026-03-13 23:17:46 +01:00
Ion Gaztañaga 6231b1990e Clean "segmented_find_if" segmented dispatch 2026-03-13 23:17:20 +01:00
Ion Gaztañaga 3dae33c40e forceinline equal_to_value basic operations 2026-03-13 23:16:56 +01:00
Ion Gaztañaga 52d139a0b5 Temporarily use simpler, but segmented_find_if based code for remove_if 2026-03-13 15:54:36 +01:00
Ion Gaztañaga 0015930d1a Dispatch some xxx algorithms to their xxx_if counterpart 2026-03-13 15:54:03 +01:00
Ion Gaztañaga bf5248374f Optimized "reverse" algorithms 2026-03-12 23:08:06 +01:00
Ion Gaztañaga ad3db6feec Avoid aliasing in reference passed "count" argument 2026-03-12 23:04:11 +01:00
Ion Gaztañaga 345c428f75 Erase algorithms with no easy segmentation strategy 2026-03-12 23:03:32 +01:00
Ion Gaztañaga 5bed25c4da Put nest iterators outside "nest_detail" 2026-03-12 15:40:02 +01:00
Ion Gaztañaga 3e5895285a Rename nest's iterator to "nest_iterator" 2026-03-12 14:12:00 +01:00
Ion Gaztañaga e82af3c973 Fix is_segmented_iterator definition in deque_iterator 2026-03-12 14:02:03 +01:00
Ion Gaztañaga e5f2e681b6 Add segmented_iterator_traits to nest 2026-03-12 14:01:34 +01:00
Ion Gaztañaga 22137e16bd Add experimental segmented algorithms 2026-03-10 23:28:26 +01:00
Ion Gaztañaga 6807b47c2e Use BOOST_IF_CONSTEXPR if possible for constant conditions. 2026-02-26 23:35:42 +01:00
Ion Gaztañaga 3d5ad2303f Avoid additional extra slots for reservable segmented types 2026-02-25 23:10:42 +01:00
Ion Gaztañaga 4f196ad71b Try back insertion first. 2026-02-25 23:07:38 +01:00
Ion Gaztañaga bc531d7430 Small fixes to deque_impl 2026-02-24 23:59:58 +01:00
Ion Gaztañaga 0e5b465d0d Fix rvref splice overload for C++03 compilers, avoiding infinite recursion 2026-02-22 23:25:14 +01:00
Ion Gaztañaga 835b212507 Refactor several similar functions using Boost.Container's special iterators 2026-02-22 17:35:47 +01:00
Ion Gaztañaga ad878e2c2c Remove unneeded variadic template for value_init_t overload 2026-02-22 17:33:56 +01:00
Ion Gaztañaga 689fa2f2ce Make value_init_construct_iterator::operator*() return a value_init_t reference so that it can be intercepted by allocator_traits 2026-02-22 17:33:25 +01:00
Ion Gaztañaga c53dc00f71 Add value_init_t overload to make regular implementations for value initialization overloads 2026-02-22 17:02:40 +01:00
Ion Gaztañaga d8a9959360 Convert force and force_copy in macros so that it's a no-op for modern compilers. 2026-02-21 22:45:06 +01:00
Ion Gaztañaga 67f4bf69a2 Add prefetch option 2026-02-21 22:43:21 +01:00
Ion Gaztañaga e2278d3ab6 Fixes #332 ("aligned_alloc not available in C++11/14 on XCode 12") 2026-02-20 23:19:32 +01:00
Ion Gaztañaga 958fe7d326 Fixes #330: ("boost/container/detail/pair.hpp: partial specializations of boost::move_detail traits for std::pair break Unity (jumbo)") 2026-02-16 22:53:37 +01:00
Ion Gaztañaga be8fa0ae35 Fix incorrect BOOST_MOVE_BASE usage 2026-02-13 17:25:20 +01:00
Ion Gaztañaga db62e4b814 Refactor block_base/block to avoid storing the data pointer and make sizeof(next) smaller. 2026-02-13 10:11:32 +01:00
Ion Gaztañaga 1a50b78e15 Add "store_data_in_block" option to nest 2026-02-12 22:42:54 +01:00
Ion Gaztañaga 078fb8671e Added, for testing and comparison and benchmarking purposes, experimental "nest" container under "experimental" folder, a C++03 backport and adaptation to use Boost.Container internals of Joaquín López Muñoz's "hub" container proposal (https://lists.boost.org/archives/list/boost@lists.boost.org/thread/6YXMHMARNAEFTGBTZYYAETCAYCYHHKQP/). 2026-02-11 12:05:12 +01:00
Ion Gaztañaga d24ff073cf Rename segmented_vector to segtor, to reserve "vector" name to contiguous memory containers. 2026-02-07 15:04:21 +01:00
Ion Gaztañaga 1620287965 Clarify the block_size/block_bytes option 2026-02-06 00:00:47 +01:00
Ion Gaztañaga cd0387b5fc Changed return type of erase/erase_if/unique members of list and slist to size_type to follow C++20 changes to std::list. 2026-02-05 00:29:03 +01:00
Ion Gaztañaga 2b1c08b010 Add "get_segment_size/bytes" to segmented_vector. 2026-02-04 00:27:01 +01:00
Ion Gaztañaga bfb2563355 Use "get_segment_size/bytes" in deque and its example. 2026-02-04 00:26:25 +01:00
Ion Gaztañaga ea94858c0a Add "get_segment_size" alias 2026-02-04 00:25:49 +01:00
Ion Gaztañaga 3205bce1b7 Remove experimental warning to segmented_vector 2026-02-04 00:05:33 +01:00
Ion Gaztañaga 0e0e9c51a7 Add segment_size/segment_bytes aliases 2026-02-04 00:04:47 +01:00
Ion Gaztañaga 65f7bba30d Clean up CTAD code formatting 2026-02-03 15:50:14 +01:00