370 Commits

Author SHA1 Message Date
Ion Gaztañaga
3ebb0662da Add deque_iterator explicit instantiation. 2025-09-21 07:52:26 +02:00
Ion Gaztañaga
5be25a65db Add new deque implementation. 2025-09-20 10:48:50 +02:00
Ion Gaztañaga
77fb53dbf9 Add new_deque and its test 2025-09-07 19:16:34 +02:00
Ion Gaztañaga
c982fe5989 Add some new erase tests 2025-09-06 12:45:49 +02:00
Ion Gaztañaga
29c24520e6 Merge pull request #313 from nigels-com/cmake-test
cmake support for building and running tests
2025-09-06 12:42:35 +02:00
Nigel Stewart
f0b0dacf27 __cpp_sized_deallocation is not always defined (clang is opt-in) for Issue #306 2025-09-05 15:59:48 +10:00
Nigel Stewart
8a47e6e339 cmake support for building and running tests 2025-09-05 11:33:54 +10:00
Ion Gaztañaga
b6a2a6ba6a Merge pull request #307 from TheJCAB/fix-MSVC-C4146-warnings
Fix all instances of MSVC warning C4146 (unsigned negation)
2025-08-12 19:12:50 +02:00
Ion Gaztañaga
74c06d3a5d Protect iwth BOOST_CXX_VERSION >= 201103L as Boost.Iterator does not support C++03 2025-08-12 17:59:29 +02:00
Juan Carlos Arevalo Baeza (JCAB)
18f29c6eda Fix all instances of MSVC warning C4146 (unsigned negation)
Unsigned negation is a well-defined operation in C and C++ and it is commonly used when doing bit manipulation of unsigned integers, because it builds a high-pass bitmask.

For instance, if `X` is known to be a power of two, `-X` is precisely the mask needed to align a value down to a multiple of `X` by means of a bit-wise `&` operation.

However, it can occasionally be flagging a bug, when the original intent was mathematical negation. For this reason, an explicit fix is preferred to suppressing this warning.

This change fixes all the instances of unsigned negation of the form `-X` to `0 - X`.

It also includes a drive-by spot-fix for the macro `left_bits(x)` whose parameter was missing the usual parenthesis. This was benign in all the uses of the macro.
2025-07-30 15:35:34 -07:00
Ion Gaztañaga
e8baf848bc Fixes #250 ("Custom container leads to "invalid use of incomplete type" for "struct boost::container::dtl::container_rebind"") 2025-05-21 12:05:35 +02:00
Ion Gaztañaga
bae5554f54 Use SFINAE to avoid errors in C++03 mode and std::pair 2024-12-23 21:53:13 +01:00
Ion Gaztañaga
a6a41e2356 FIxes #297 ("flat_map::try_emplace does not compile if allocator has construct") 2024-12-22 22:02:07 +01:00
Ion Gaztañaga
65dc4d1ac6 Use static_assert instead of runtime checks for "has_trivial_destructor_after_move" 2024-11-27 21:59:28 +01:00
Ion Gaztañaga
a0848ceaf1 Fixes #295 ("Bug in small_vector::swap") 2024-11-21 15:49:08 +01:00
Ion Gaztañaga
af58c7d226 Added stored_size option to small_vector 2024-10-13 00:29:12 +02:00
Ion Gaztañaga
13603d7de1 Added stored_size option to static_vector 2024-10-12 23:22:59 +02:00
Ion Gaztañaga
0a62c979a7 Use boost::hash instead of boost::hash_value (properly tests #290 use case) 2024-09-30 21:06:01 +02:00
Ion Gaztañaga
bf029b6a52 - Adds compatibility tests between string and std::string_view
- Fixes #290 ("boost::hash<container::string> doesn't match boost::hash<std::string_view>")
2024-09-30 16:00:12 +02:00
Ion Gaztañaga
84e852f638 Fix GCC comparison for flat_map tests 2024-09-09 18:01:21 +02:00
Ion Gaztañaga
12afa8457f Disable std::vector as underlying sequence in old GCCs as we have compilation errors due to unsupported features. 2024-09-09 17:34:53 +02:00
Ion Gaztañaga
13180fd601 Disable std::vector as underlying sequence in old GCCs as we have compilation errors due to unsupported features. 2024-09-09 13:53:24 +02:00
Ion Gaztañaga
daa81ed5bb Expand flat_map testing coverage 2024-09-09 00:57:30 +02:00
Ion Gaztañaga
c552a23d96 Use BOOST_CXX_VERSION instead of __cplusplus 2024-09-09 00:55:18 +02:00
Ion Gaztañaga
d26e35d468 Fix typos, unneded empty lines 2024-09-09 00:42:05 +02:00
Rene Rivera
df9132c80f Update build dependencies. 2024-07-29 21:56:22 -05:00
Rene Rivera
4b56fdee84 Sync from upstream. 2024-07-29 20:14:46 -05:00
Ion Gaztañaga
0f448277c5 Remove hash_value from string, Boost.ContainerHash hashes containers by default now. 2024-07-27 22:49:42 +02:00
Rene Rivera
fbf07feea8 Change all <source> references to <library>. 2024-07-20 19:37:36 -05:00
Rene Rivera
bc554a9ee8 Sync from upstream. 2024-07-18 09:29:21 -05:00
Ion Gaztañaga
4ea9c64316 Use algo_equal to reduce test dependencies 2024-07-15 11:50:50 +02:00
Ion Gaztañaga
8d0dc6daeb Fixes #285 ("devector<>::push_front asserts after clear()") 2024-07-15 10:41:42 +02:00
Rene Rivera
0abc02729d Sync from upstream. 2024-07-12 08:54:46 -05:00
Ion Gaztañaga
df03ffc8ec Fixes #241: flat_map should support same interface as std::map 2024-06-28 14:04:00 +02:00
Rene Rivera
cb9b667234 Sync from upstream. 2024-06-16 08:22:11 -05:00
Ion Gaztañaga
43ac22eff2 Add test for move assignable index operator 2024-06-14 12:36:36 +02:00
Ion Gaztañaga
f21c5fb723 Add missing detail/pair.hpp include 2024-06-14 12:35:23 +02:00
Rene Rivera
e62694f5f0 Sync from upstream. 2024-06-02 23:26:49 -05:00
Ion Gaztañaga
aa35950ca0 Add shrink_to_fit tests to small_vector 2024-06-03 00:14:25 +02:00
Rene Rivera
5f43b093c7 Sync from upstream. 2024-06-02 13:50:52 -05:00
Ion Gaztañaga
9da5dc49f7 Refactor move constructor and swap implementations for small_vector as in some cass unnecesary heap allocation was performed. Add tests for this. 2024-06-02 13:08:18 +02:00
Ion Gaztañaga
7ec7de921c Remove unused or unneeded _id member 2024-05-30 23:12:52 +02:00
Rene Rivera
af24268fbb Sync from upstream. 2024-05-30 11:21:12 -05:00
Ion Gaztañaga
f46ee4391f Protect struct POD definition with the same macro as the test 2024-05-28 10:51:33 +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
292bab35c6 Revert accidental commit 2024-05-21 14:11:30 +02:00
Ion Gaztañaga
59d760c08b Document block_size option in deque_options. 2024-05-21 14:08:36 +02:00
Rene Rivera
9fea4700ca Sync from upstream. 2024-04-20 15:33:32 -05:00
Ion Gaztañaga
978bbb113a Clean force_ptr usage and use launder_cast 2024-04-15 12:51:15 +02:00
Ion Gaztañaga
56cc38f761 Update test_iterator_random test for vector-like containers 2024-04-15 11:57:44 +02:00