Commit Graph
206 Commits
Author SHA1 Message Date
Ion Gaztañaga feeafbe9f3 Use pdqsort to sort unique values. 2017-12-31 21:08:19 +01:00
Ion Gaztañaga 6ce2b2d0f8 Add improved range insertion to flat associative containers and improve merge operation for vector. 2017-12-26 22:04:15 +01:00
Ion Gaztañaga 3c6f4ea2ed Forward declare correction vector iterator 2017-12-20 13:12:47 +01:00
Ion Gaztañaga 2802a1f50d - Add configuration options to vector
- Cleanup tree configuration options
2017-12-10 23:33:41 +01:00
Ion Gaztañaga fa2494631a Use namespace dtl instead of container_detail to avoid excessively long symbol names. 2017-11-07 00:51:46 +01:00
Ion Gaztañaga 9ee836ee3d Fixes to flat_map when used as an adaptor from regression tests errors in Mingw. 2017-08-28 11:58:43 +02:00
Ion Gaztañaga c123accab1 Complete support for user-provided containers to flat_[multi]map/set containers, and instantiate them with several container types. 2017-08-28 10:45:29 +02:00
Ion Gaztañaga 2297f6af72 Modify flat associative containers to be adaptors if the allocator argument is a container. This allows using stable_vector, small_vector, static_vector as underlying containers. 2017-08-27 12:40:15 +02:00
Ion Gaztañaga 6530b7870f Use BOOST_FALLTHROUGH instead of the broken typo version 2017-08-27 01:59:32 +02:00
Ion Gaztañaga c748e90b6b Remove unused to_raw_pointer file 2017-06-26 00:48:00 +02:00
Ion Gaztañaga d7eaedc1a9 Merge branch 'master' of https://github.com/garyfurnish/container into garyfurnish-master 2017-06-06 13:14:18 +02:00
Gary Furnish e0aaf744a5 Fix integer rollover that triggers clang ubsan when U is unsigned 2017-06-05 18:18:38 -06:00
Ion Gaztañaga d5aede745e Unify std::binders and lambdas with custom binders 2017-05-26 22:31:26 +02:00
Ion Gaztañaga ec91367383 Review all associative containers and implement a different constructor overload to avoid any unnecessary copy construction of the predicate or the allocator. 2017-05-16 16:29:49 +02:00
Mehdi Amini 40451e4bf7 Add variant of map constructors to avoid useless extra allocator copy when using initializer list
Many existing constructors have this form:

  map(std::initializer_list<value_type> il, const Compare& comp = Compare(), const allocator_type& a = allocator_type())

The issue is that a temporary allocator_type is constructed, and
passed to the base class where it is used to copy-constructed the
rebound allocator.
This temporary allocator_type here is always destroyed at the end
of the map() constructor. For stateful allocators this is not
desirable.
The solution is to adopt what libc++ is doing and have to constructors:

  map(std::initializer_list<value_type> il, const Compare& comp = Compare(), const allocator_type& a)

and

  map(std::initializer_list<value_type> il, const Compare& comp = Compare())

This way, unless an allocator is provided by the client, no extra temporary
creation/destruction occurs.
2017-05-08 12:39:06 -07:00
Ion Gaztañaga 1d727753e2 Use directly boost::movelib::to_raw_pointer/iterator_to_raw_pointer 2017-04-07 16:07:00 +02:00
Ion Gaztañaga d6749960fc Implement extract_sequence and adopt_sequence for flat ordered associative containers 2017-04-05 16:06:31 +02:00
Ion Gaztañaga cdb022fda2 Fix ambiguous constructor calls for piecewise_construct and Boost vs std tuples 2017-04-05 16:04:53 +02:00
Ion Gaztañaga 01d7c71ea8 Fix node_handle bugs:
-> Bad allocator destruction in swap
-> Wrong assertion in operator=
-> Make dangerous functions private

Added full testsuite.
2017-04-02 00:20:38 +02: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 1404933491 Delete unused hash table 2017-02-06 11:50:53 +01:00
Ion Gaztañaga 23e9e8b494 Fix copyright notice. 2017-01-12 14:58:44 +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
zerotypos-found 7cb3a6fbe8 [inspection report] remove tabs and fix copyright notice format 2016-12-20 11:03:57 +09:00
Ion Gaztañaga 8141dbcbe6 Merge branch 'unused_variable' of https://github.com/maksqwe/container into maksqwe-unused_variable 2016-11-26 14:40:38 +01:00
Ion Gaztañaga 5e4a107e82 Fixes Ticket #12534: flat_map fails to compile if included after type_traits is instantiated under gcc 2016-11-25 23:56:33 +01:00
Maks Naumov e7f452bf91 Remove unused local variable 2016-11-17 00:02:29 +02:00
Ion Gaztañaga 764fcd88bf Merge branch 'copy_move_algo__parameter_fix' of https://github.com/think-cell/container into think-cell-copy_move_algo__parameter_fix 2016-11-13 00:26:58 +01:00
Ion Gaztañaga 77f5d7218d Avoid reference to null errors in sanitizers 2016-11-12 23:55:03 +01:00
Ion Gaztañaga ede225c9d2 Disable forceinline for old compilers due to bugs. 2016-11-12 19:07:54 +01:00
Ion Gaztañaga 1f3174baa7 Make build_number_seq with O(logN) instantiations instead of O(N) 2016-11-12 19:07:34 +01:00
Ion Gaztañaga 0a719901b6 Avoid warnings of unused "piecewise_construct" 2016-11-12 19:06:44 +01:00
Ion Gaztañaga d7bf947a4b Fix iterator_from_iiterator not value initializing its parent iterator 2016-11-12 19:06:23 +01:00
Tobias Germer 3830745c9f Fix parameter types in copy_move_algo.hpp: iterator_traits::difference_type -> allocator_traits::size_type 2016-10-19 14:13:46 +02:00
Tobias Germer 5ce1ad2611 Fix parameter type of uninitialized_copy_alloc_n_source() 2016-10-18 13:42:56 +02: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 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 9f9fdeaa9a Adapt to Intrusive change that removed unneeded template parameters to tree_value_compare. 2016-08-29 16:53:17 +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 e1cb88b399 Add missing include for boost::forward 2016-08-24 02:19:58 +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 0b98372af5 Silence most vexing parse warnings in clang. 2016-08-23 02:13:56 +02:00
Ion Gaztañaga eb42811079 Delegating constructors detection, as Boost.Config does not yet provide it. 2016-08-23 02:13:30 +02:00
Ion Gaztañaga c7407e34f6 Replaced int with std::size_t when building indexes. 2016-08-23 02:13:03 +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 fb1be6fa75 Fix Trac #12117 ("flat_set constructor with ordered_unique_range") adding checks to constructors in debug mode
Fix typos on value_type checks in flat_[multi]map.
2016-08-15 23:22:57 +02:00
Ion Gaztañaga 324130703e Fix incorrect header guards 2016-08-15 23:21:10 +02:00