382 Commits

Author SHA1 Message Date
Ion Gaztañaga
a5cc4f1eef Fix find/replace bug in test name 2021-04-19 21:53:54 +02:00
Ion Gaztañaga
dc4cf460a7 Add missing <functional> for std::less 2021-01-15 18:05:33 +01:00
Ion Gaztañaga
95538bfdc2 Update static assert test and remove unneeded <string> include. 2021-01-02 22:47:19 +01:00
Ion Gaztañaga
150569375f <boost/static_string.hpp> include is not needed. 2021-01-02 17:02:47 +01:00
Ion Gaztañaga
22f34b7b02 Silence warnings in tests 2021-01-02 16:24:56 +01:00
Ion Gaztañaga
0153ee1920 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-02 00:37:44 +01:00
Ion Gaztañaga
621cd3a0ab Avoid using inheriting constructors and initializer_list::cbegin/cend to be nicer with older compilers 2021-01-01 23:44:56 +01:00
Ion Gaztañaga
80697e7c0f #pragma GCC diagnostic push is available from GCC 4.6, not from GCC 4.5 2021-01-01 23:43:44 +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
c98a5396c4 Erase unneeded test 2020-11-13 23:42:02 +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
8a2444201a Avoid GCC's overflow warnings for operator new. 2020-11-03 10:59:19 +01:00
Ion Gaztañaga
99d56db196 Update changelog with #162. 2020-11-02 15:08:19 +01:00
Ion Gaztañaga
d4c8bd70ea Fixes #152 ("Tree-based containers have troubles with move-only types") 2020-10-31 23:09:52 +01:00
Ion Gaztañaga
3cd08df6fc Avoid including <boost/container/detail/config_begin.hpp> in tests to catch all possible warnings. 2020-10-25 17:25:39 +01:00
Ion Gaztañaga
4bebeb2353 Make sure test suite/examples/bench compile with exceptions disabled (exception-handling=off) 2020-10-22 01:12:59 +02:00
Ion Gaztañaga
03f030af69 Fixes #156: ("Compile error with vector") and remove warnings about precission loss due to integer narrowing 2020-10-22 01:10:07 +02:00
Ion Gaztañaga
cdd6d9ad8a Fixes #160 ("Usage of uses_allocator needs a remove_cvref_t") 2020-08-31 22:21:41 +02:00
Ion Gaztañaga
1ac7339ff4 Add test to erase the last element 2020-08-31 22:21:02 +02:00
Ion Gaztañaga
0b297019ec Fixes #161: ("polymorphic_allocator(memory_resource*) non-standard extension causes headache") 2020-08-31 13:37:11 +02:00
Ion Gaztañaga
ebcd0222b4 Integrate and adapt "devector's", from Thaler Benedek's implementation. 2020-08-10 00:16:58 +02:00
Ion Gaztañaga
f99da8551b Use boost::container::vector/list instead of std 2020-08-09 23:24:13 +02:00
Ion Gaztañaga
0143caf985 Explicitly instantiate "stored_size" option to catch conversion warnings 2020-08-09 23:23:56 +02:00
Ion Gaztañaga
52aae65fcd Fix unreachable code warning 2020-08-09 23:23:26 +02:00
Ion Gaztañaga
b946b779e6 Remove unused include 2020-08-09 23:23:13 +02:00
Ion Gaztañaga
974e8e641a Fix "-Wdeprecated-copy" warnings 2020-08-09 23:21:46 +02:00
Ion Gaztañaga
2d9d28b81e Fixed #128 ("moved from small_vector and static_vector calls destructor on elements in static part") 2020-07-12 13:48:38 +02:00
Ion Gaztañaga
4f37a023b0 Enable user warnings in tests to be able to fix them. 2020-07-12 11:06:01 +02:00
Ion Gaztañaga
80d742f860 Added C++03 portable aliases and tests. Fixes #129 ("Alias templates for small_flat_[multi]{set|map} using small_vector as container") 2020-05-25 01:50:23 +02:00
Ion Gaztañaga
52b9ae0e68 Fixes #145 ("Allocations not handled correctly in some cases of vector move with unequal allocators") 2020-05-25 00:35:07 +02:00
Robert Leahy
d4a0917821 RandomAccessIterator + 0
Previously the iterators of boost::container::deque would assert when
zero was added to them in at least the following situations:

- The iterator was obtained by a call to boost::container::deque::begin
  and boost::container::deque::empty returns true
- The iterator was default constructed

This is inconsistent with the way in which the iterators of boost::
container::deque have behaved historically and is also inconsistent
with an understanding of iterators developed by analogy with pointers:

- Adding zero to a null pointer is valid despite the fact the null
  pointer cannot be dereferenced
- Adding zero to a pointer that is one past the end yields a pointer
  which is still one past the end and thus which has well defined
  semantics

Fixed this issue and codified the expected behavior in unit tests.
2019-12-22 20:03:57 -05:00
Ion Gaztañaga
27c1fea452 Fixes #136 ("List of non BOOST-prefixed macros") 2019-12-19 05:29:46 +01:00
Bo Rydberg
0fa5193cea Update throw tests to avoid segmentation violation 2019-12-05 17:49:58 +01:00
Ion Gaztañaga
0c95d4846f Fix "count" with heterogeneous lookups in flat_map and flat_set 2019-06-22 10:26:36 +02:00
Jan Eisenhauer
3f09061d78 Remove usage of C++11 features. 2019-06-11 12:04:43 +02:00
Jan Eisenhauer
628289cb00 Solve copy-paste errors. 2019-06-11 11:51:28 +02:00
Jan Eisenhauer
a6b6f97a50 Solve copy-paste errors. 2019-06-11 11:17:01 +02:00
Jan Eisenhauer
3319fdb0c2 Merge remote-tracking branch 'origin/develop' into patch-1 2019-06-11 11:05:29 +02:00
Jan Eisenhauer
1aa15ead35 Add testcases for heterogeneous lookup with partial keys. 2019-06-11 10:23:13 +02:00
Ion Gaztañaga
7b62f360b7 Add missing tests for small vector and static vector 2019-06-08 13:01:24 +02:00
Mitsuru Kariya
f25c767a2b Fix has_trivial_destructor_after_move
Most template type parameters 'Allocator' were modified their default type to void since 1.70.0.
These modifications cause has_trivial_destructor_after_move to compile error or yield wrong result.
So, fix them by changing specializations of has_trivial_destructor_after_move.
2019-06-01 22:36:54 +09:00
Ion Gaztañaga
e23c57337f Fixes #107 ("Alignment ignored in resource_adaptor") 2019-05-05 02:06:46 +02:00
Ion Gaztañaga
24e420abe9 Add block size customization options to deque. 2019-04-28 19:18:22 +02:00
Ion Gaztañaga
06ee4f7a39 Fixes #118 ("Non-unique inplace_set_difference used in in flat_tree_merge_unique and iterator invalidation in insert_unique") 2019-04-24 22:49:50 +02:00
Ion Gaztañaga
e46210e046 Fixes #117 ("flat_map/map::insert_or_assign with hint has wrong return types") 2019-04-23 17:03:09 +02:00
Roland Dreier
1eb591e85c Fix deallocating never-allocated storage in vector.merge()
If merge() is called on an empty vector, then priv_merge_in_new_buffer() will
call deallocate() with size 0 on the old (not-yet-allocated) vector storage.
This violates the Allocator requirement that the pointer passed to deallocate()
must have come from a call to allocate() with the same size.

Fix this by checking old_cap against 0, and also add a unit test for this bug.
2019-02-23 18:46:06 -08:00
Ion Gaztañaga
81d78dbefa Fixed GitHub #98: ("flat_map: insert_or_assign does not work with hint") 2019-02-02 00:25:09 +01:00
Ion Gaztañaga
a9ceb4d9c6 Better use forward declarations and export symbols 2019-01-03 03:32:03 +01:00
Ion Gaztañaga
4fc4cfd8d8 Fix GitHub #89 ("Build fails on clang-5 with libstdc++7-dev (C++17 issue)") 2018-11-13 23:17:51 +01:00
Ion Gaztañaga
cb21746b80 Rewrite CTAD and SFINAE-out overloads as the standard requires 2018-11-12 22:52:45 +01:00