Ion Gaztañaga
08cce5ebe5
Update basic_string with missing C++11 and C++17 interfaces:
...
- Default npos arguments in append, insert, compare
- Initializer list support
- Non-const data()
2017-02-21 23:08:11 +01:00
Ion Gaztañaga
865c69bab7
Changed string_view interoperability to a templated solution in order to support also std::string_view.
...
Added missing members and testcases.
2017-02-21 14:27:18 +01:00
Ion Gaztañaga
f71fee5140
Merge branch 'inspection_report' of https://github.com/zerotypos-found/container into zerotypos-found-inspection_report
2017-01-12 14:53:20 +01:00
Ion Gaztañaga
79f5977688
Fixes Ticket #12749 container::pmr::polymorphic_allocator compilation error
2017-01-12 14:49:31 +01:00
Ion Gaztañaga
c0ccad469e
Add constant for capacity in tests
2017-01-12 14:48:09 +01:00
zerotypos-found
7cb3a6fbe8
[inspection report] remove tabs and fix copyright notice format
2016-12-20 11:03:57 +09:00
Ion Gaztañaga
da17190798
Fix incomplete Trac #9689 ("Add piecewise_construct to boost::container") resolution. scoped_allocator_adaptor_test was missing pair construct overloads.
2016-09-06 14:05:46 +02:00
Ion Gaztañaga
29b16f1697
Add missing test
2016-09-05 14:58:01 +02:00
Ion Gaztañaga
f540b83ccd
* Implemented merge
operations for associative containers.
...
* Update tree-based containers to changes done in Intrusive internal utilities in order to fix Trac 12432.
2016-09-03 00:03:42 +02:00
Ion Gaztañaga
0617d0e538
Implemented P0084R2 (Emplace Return Type)
2016-08-29 16:53:44 +02:00
Ion Gaztañaga
4298d1984b
* Add missing extract() and insert(node_type) funtion to associative containers.
...
* Simplify select1st
2016-08-29 00:06:57 +02:00
Ion Gaztañaga
1467c51a4e
Implemented missing try_emplace member for maps.
2016-08-26 01:47:32 +02:00
Ion Gaztañaga
db5c24e0e7
Fix piecewise_construct pair constructor for compilers with variadics and constructor forwarding. Current code unconditionally moves instead of forwarding.
2016-08-24 01:52:53 +02:00
Ion Gaztañaga
79a75f470e
Add piecewise_construct construction to internal pair.
2016-08-23 02:14:19 +02:00
Ion Gaztañaga
2d6f781a2f
Implemented "insert_or_assign" for map-like containers.
2016-08-18 20:29:04 +02:00
Ion Gaztañaga
37c1558a81
Fixed Trac #12256 (set<std::pair<int,int>>::insert cause compilation error in debug configuration in Visual Studio 2012)
2016-08-09 00:59:39 +02:00
Ion Gaztañaga
4122e722a4
Added constant static_vector<>/small_vector::static_capacity
to use the configured capacity in constant expressions.
2016-08-03 00:18:11 +02:00
Ion Gaztañaga
7e232bbc19
Fully qualified "unique" call to avoid ADL ambiguities with some older compilers.
2016-06-28 11:53:13 +02:00
Ion Gaztañaga
36f5aa842b
Remove some instantiations to avoid hitting section limits when compiling with GCC.
2016-06-25 11:20:11 +02:00
Ion Gaztañaga
fcaf422092
Disable ADL for as_const, it triggers ambiguities in VC14
2016-06-25 11:19:32 +02:00
Ion Gaztañaga
e707b671fd
Simplify tests to support old gcc 4.2 compilers
2016-06-25 11:05:40 +02:00
Ion Gaztañaga
b8a06a24d5
Comment typo and tab
2016-05-13 22:17:23 +02:00
Ion Gaztañaga
310d8eaf10
Fixed Trac #11957 : "static_vector::max_size() is higher than the capacity"
2016-02-24 14:45:44 +01:00
Ion Gaztañaga
a7158c7975
Fixed Trac #12014 : "boost::container::set can not insert const (ref) range"
2016-02-24 10:13:07 +01:00
Ion Gaztañaga
33b331da38
Reduce redundant instantiations to improve test build times
2016-02-23 13:29:46 +01:00
Ion Gaztañaga
e6182f025c
Reduce bench constants for debug modes
2016-02-23 13:29:15 +01:00
Ion Gaztañaga
b436c91590
Fix Trac #11866 : small_vector does not have range constructor. Added all missing constructors to small vector
2015-12-25 13:27:30 +01:00
Ion Gaztañaga
211c474eb4
small_vector was not being tested in some places due to copy-paste error.
2015-12-25 13:27:06 +01:00
Ion Gaztañaga
01deaa2de0
Use internal typedef when passing allocator as argument.
2015-12-25 13:26:20 +01:00
Ion Gaztañaga
e50751a42c
Use lightweight_test instead of returns to improve error reports. Fix use-after-destroy bug in test.
2015-12-25 13:25:17 +01:00
Ion Gaztañaga
641d1a5d5a
small_vector: Added copy/move constructor/assignments from small_vector_base
2015-12-24 13:46:00 +01:00
Ion Gaztañaga
743e60a2d3
Revert some unneeded changes for GCC 3.4.
2015-10-12 22:13:09 +02:00
Ion Gaztañaga
7764e05444
Changes to support GCC 3.4
2015-10-12 18:51:08 +02:00
Ion Gaztañaga
3f4a5dec6e
Add some C++1 missing functions to string and a couple of debug assertions
2015-09-18 14:38:38 +02:00
Ion Gaztañaga
f1f97518d3
Fixed Track #11627 and #11628
2015-09-09 09:48:09 +02:00
Ion Gaztañaga
33d2f0f7af
Add Polymorphic Memory Resource utilities and rework the separately compiled library:
...
- Dlmalloc's based C function are boost_cont_xxx no longer exported, but wrapped into C++ linkage dlmalloc_xxx functions to effectively reuse Boost's dynamic library and autolink machinery instead of rewriting machinery to compile the C source file.
- Refactored scoped_allocator_adaptor's construct logic as it was shared with polymorphic allocator's one. Moved common logic to detail/dispatch_uses_allocator.hpp. Refactored also scoped_allocator_adaptor test utilities to be reused with polymorphic_allocator tests.
2015-09-07 19:16:46 +02:00
Ion Gaztañaga
08918078aa
Add missing small vector's explicit instantiation test
2015-09-07 18:33:51 +02:00
Ion Gaztañaga
ee998fb5b1
Remove uninitialized variable warnings
2015-06-12 23:51:02 +02:00
Ion Gaztañaga
e7bc9f0c6b
Use move-aware unique algorithm
2015-06-04 11:43:47 +02:00
Ion Gaztañaga
2ee17d108e
Add capacity-related tests
2015-06-04 11:41:29 +02:00
Ion Gaztañaga
e56cfdc8c7
Force invariant checking in tests
2015-06-04 11:41:14 +02:00
Ion Gaztañaga
eb3a7835a1
Uncomment test code
2015-04-14 15:22:15 +02:00
Ion Gaztañaga
6477543f3b
Updated to new meta-functions reused from Intrusive/Move
2015-04-14 15:21:46 +02:00
Ion Gaztañaga
d01cb72b3f
Add iterator tests
2015-04-14 15:03:19 +02:00
Ion Gaztañaga
e5f069da2b
Reenginered partially propagable allocator support in vector. storage_is_unpropagable is now the basic building block, which is simpler and less error-prone.
2015-03-01 22:25:27 +01:00
Ion Gaztañaga
d39b1c143c
Add missing initializer list overload taking an additional allocator.
2015-02-28 23:46:08 +01:00
Ion Gaztañaga
8db0f4ad64
small_vector's initializer list constructor was not implemented and tested.
2015-02-28 00:17:46 +01:00
Ion Gaztañaga
6332a9f0bb
Fix error with initializer_list test code, list has no "insert_after"
2015-02-28 00:17:05 +01:00
Ion Gaztañaga
1025ad2bbc
Reuse vector's initializer_list test code
2015-02-28 00:15:27 +01:00
Ion Gaztañaga
63a83096a8
Add small function to test conversion to small_vector_base
2015-02-27 21:36:43 +01:00
Ion Gaztañaga
7239c8e262
Refactor initializer_list tests to avoid code duplication and add some missing initializer_list overload tests
2015-02-27 19:24:46 +01:00
Ion Gaztañaga
8cdfec7890
Add experimental small_vector class
2015-02-26 00:35:59 +01:00
Ion Gaztañaga
4609c78ccb
Test more constructors
2015-02-26 00:34:37 +01:00
Ion Gaztañaga
6c5e527c60
Improve allocator propagation test with new constructors and refactor code to avoid too many wrappers.
2015-02-26 00:32:32 +01:00
Ion Gaztañaga
342bd73aeb
Implement storage_can_be_propagated and is_always_equal.
2015-02-26 00:25:14 +01:00
Ion Gaztañaga
d0750f4493
Rename parameters to avoid confusion when debugging.
2015-02-26 00:17:57 +01:00
Ion Gaztañaga
22f1d32f7b
Addd new constructors to containers, according to C++14's new constructors taking allocator arguments.
2015-02-03 14:08:29 +01:00
Ion Gaztañaga
10d027aa9c
Include boost/config.hpp before testinG BOOST_HAS_PRAGMA_ONCE.
2015-02-02 15:26:53 +01:00
Ion Gaztañaga
b786c8f716
Replaced BOOST_CONTIANER_NOEXCEPT with BOOST_NOEXCEPT
2015-01-28 22:11:00 +01:00
Ion Gaztañaga
f0f35a830d
Added C++17's is_always_equal to allocator_traits and scoped_allocator_adaptor
2015-01-18 11:22:52 +01:00
Ion Gaztañaga
1012987897
Fix max_size to return the size_type(-1)/sizeof(value_type), as otherwise it would overflow on allocation.
2015-01-17 22:52:17 +01:00
Ion Gaztañaga
7635eba375
Typedef'ed allocator_arg_t as "const std::allocator_arg_t &" to improve interoperability between C++11 allocator-aware types.
2015-01-17 19:11:52 +01:00
Ion Gaztañaga
69324174c7
Support types with std::allocator_arg_at with boost::container::scoped_allocator_adaptor
2015-01-11 23:50:58 +01:00
Ion Gaztañaga
a322203a89
Replaced _MSC_VER with BOOST_HAS_PRAGMA_ONCE before #pragma once.
2015-01-10 12:50:17 +01:00
Ion Gaztañaga
36c8f81e42
Add placement new operator to avoid <new> unnecessarily.
2015-01-10 10:58:08 +01:00
Ion Gaztañaga
493f19f2a9
New tests, to measure if container headers include all what's needed to use them.
2015-01-04 02:27:23 +01:00
Ion Gaztañaga
360957a797
Massive dependency reduction. Removed dependency on several boost libraries and standard C++ headers.
2015-01-02 19:34:21 +01:00
Ion Gaztañaga
456e9fedcb
Some adaptations due to internal Intrusive changes.
2014-12-08 15:49:21 +01:00
Ion Gaztañaga
32418cab5f
Use boost::adl_move_swap instead of custom swap or std::swap for performance and compatibility reasons.
2014-11-28 15:41:44 +01:00
Ion Gaztañaga
7971dc6602
Refactored uses of <iterator> and <algorithm> to avoid dependencies where possible.
2014-11-26 07:08:06 +01:00
Ion Gaztañaga
e6d19fb408
Fixed in bug in vector::operator==
2014-11-09 21:06:36 +01:00
Ion Gaztañaga
6f1f162cb3
- Added nth and index_of.
...
- Used BOOST_MOVE_BASE
2014-11-01 20:03:25 +01:00
Ion Gaztañaga
5d6123152c
Removed unneeded includes. Refactores std forward declarations
2014-10-04 09:05:04 +02:00
Ion Gaztañaga
d19b012d53
Reduced include dependencies:
...
- Replaced boost/move/move.hpp with boost/move/utility_core.hpp
- Replaces <new> with placement_new.hpp
- Removed some unneeded std includes.
2014-09-26 08:12:40 +02:00
Ion Gaztañaga
3af96e0801
Implements N3644.
...
- Avoid deriving from std::iterator_traits as iterators become too fat.
- Use intrusive's reverse_iterator some std::reverse_iterator-s don't value initialize base.
2014-09-24 16:09:56 +02:00
Ion Gaztañaga
92e81fcf77
Fix compile error in GCC due to missing include and fixed some signed/unsigned comparison warnings
2014-09-23 18:50:46 +02:00
Ion Gaztañaga
e697122a2c
Updated tests to avoid manual memory management. Replaced with unique_ptr and a reference. Normalized CheckEqualContainers to use references instead of pointers.
2014-09-23 17:30:31 +02:00
Ion Gaztañaga
4d5b9a80cf
Added life cout and double destruction assertions to test integer-like classes.
...
Changelog updated with double destruction bugs fix.
2014-09-23 17:29:26 +02:00
mikael
59b46cd338
Fixes a small issue that prevented the use of iterators of containers of incomplete types. Added iterators of incomp-types to unit-tests.
2014-09-21 19:46:58 -04:00
Ion Gaztañaga
1e40192e96
Added more tests for backwards expansion
2014-09-20 17:29:41 +02:00
Ion Gaztañaga
3025cc41b6
Replace "boost/move/utility.hpp" with "boost/move/utility_core.hpp" to minimize dependencies.
2014-09-17 23:36:23 +02:00
Ion Gaztañaga
5313086d54
Updated position insertion code.
...
Fixed backwards expansion calling too many destructors nd added more tests to detect similar errors.
2014-09-17 21:52:34 +02:00
Ion Gaztañaga
0ccf576872
Updated range insertion code for enhanced performance.
2014-09-17 21:51:38 +02:00
Ion Gaztañaga
f213f55f20
Includes: Updated detail/xxx.hpp includes to core/xxx.hpp, added some missing move/traits.hpp and removed some unused ones.
2014-09-17 21:49:47 +02:00
Ion Gaztañaga
2e009da1e8
Fixed some ordered insertion tags
2014-08-29 15:03:42 +02:00
Ion Gaztañaga
aae1f9df27
Fixed compilation error in C++03 compilers and updated changelist with initializer_lists.
2014-08-29 12:52:41 +02:00
Robert Matusewicz
cbe191b5e3
add std::initializer_list support to flat_set and flat_multiset
2014-08-28 13:15:14 +02:00
Robert Matusewicz
e2b815c196
add std::initializer_list support for flat_map and flat_multimap
2014-08-28 13:15:10 +02:00
Robert Matusewicz
f8ebfa472a
Add std::initializer_list to the following containers:
...
* deque
* map
* multimap
* set
* multiset
* list
* slist
Tested on clant and g++
2014-08-27 17:34:25 +02:00
Robert Matusewicz
089edf9d35
add support for std::initializer_list to boost::container::static_vector
2014-08-19 20:23:14 +02:00
Robert Matusewicz
ac4dde2c6e
add std::initializer_list support for boost::container::vector
2014-08-15 20:25:16 +02:00
Ion Gaztañaga
dd01853881
Erased tab & removed unneeded clear() in assignment
2014-08-15 18:13:05 +02:00
Ion Gaztañaga
c03b2357ce
Erased tab & removed unneeded clear() in assignment
2014-08-15 18:12:18 +02:00
Robert Matusewicz
d0f8fe793c
add support for std::initialize_list in stable_vector constructor, operator=, assign and insert methods
2014-08-15 15:32:07 +02:00
Ion Gaztañaga
08343e5d5d
Passed insert_vs_emplace to the regression tests group
2014-08-04 08:53:25 +02:00
Ion Gaztañaga
d849f80ea5
Removed tabs.
2014-07-30 16:32:55 +02:00
Ion Gaztañaga
790a8798d4
Fixes Trac issue #9801 ("I can no longer create and iterator_range from a stable_vector")
2014-06-06 13:21:03 +02:00
Ion Gaztañaga
8c1bfe2881
Removed trailing whitespaces
2014-05-28 15:50:13 +02:00
Ion Gaztañaga
0b720f82b4
Fixed #9916 : "Allocator propagation incorrect in the assignment operator of most".
...
Fixed #9932 : "Missing assignment operator from related static_vector".
Added missing details from issue #9915
2014-04-21 13:59:49 +02:00
Ion Gaztañaga
a4c0188173
Divided set benchmark in several smaller benchmark files
2014-02-06 11:13:22 +01:00