Commit Graph

46 Commits

Author SHA1 Message Date
Ion Gaztañaga
2e78cb524c Unroll operation loop to avoid measuring loop overhead and other modifications to exercise more paths of the insertion functions. 2020-08-11 23:49:13 +02:00
Ion Gaztañaga
efd08d9a0e Improve timing and add warm-up step 2020-08-10 11:19:01 +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
f3e2c9cc73 Add simple iteration option for regression runnersa dn save CPU 2018-09-25 09:06:33 +02:00
Ion Gaztañaga
c4a8cac5a1 Fix unused variable warnings 2018-09-15 01:12:17 +02:00
Ion Gaztañaga
139db663a3 * Implemented C++20 contains() for associative containers as specified in P0458R2.
* Fixed serious bug in heterogeneous lookup functions (is_transparent was broken).
2018-08-13 15:36:00 +02:00
Ion Gaztañaga
04b0791593 * Fixed adaptive pool bugs
* Improved adaptive pool testing enabling invariant checking in debug mode.
* New compile-time and runtime calculated parameters for adaptive_pool.
* New test comparing set with default allocator or adaptive pool
2018-04-29 12:42:04 +02: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
44919284a9 Change allocator name logic 2017-10-20 00:31:53 +02:00
zerotypos-found
7cb3a6fbe8 [inspection report] remove tabs and fix copyright notice format 2016-12-20 11:03:57 +09:00
Ion Gaztañaga
8f136bc909 Add custom random_shuffle as some old compiler implementations self-swap some elements. 2016-07-31 23:15:39 +02:00
Ion Gaztañaga
e7faf92113 Add missing <cassert> headers 2016-06-25 11:20:36 +02:00
Ion Gaztañaga
16ab9955f2 Reduce bench constants for debug modes 2016-02-23 13:28:17 +01:00
Marshall Clow
cd84bf99c5 Remove use of deprecated macros; use replacements 2015-09-10 13:25:58 -07: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
097da3f73c Rename stable vector bench to avoid too long names that might give problems in some filesystems. 2015-06-04 11:39:53 +02: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
a322203a89 Replaced _MSC_VER with BOOST_HAS_PRAGMA_ONCE before #pragma once. 2015-01-10 12:50:17 +01:00
Adam Wulkiewicz
099966e1cf Fix varray_detail::construct() (version emulating perfect forwarding). 2015-01-04 04:00:46 +01:00
Ion Gaztañaga
a369e3c8c5 Avoid instantiating iterator tags to allow iterators that define iterator_categories with forward declared tags. 2015-01-04 02:29:15 +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
955248b739 Replace "Allocator" template parameter with "A", according to the standard. 2014-12-11 22:01:58 +01:00
Ion Gaztañaga
afd1c2d266 Use boost::adl_move_swap instead of own swap utility
Imported basic algorithms from Boost.Intrusive
2014-11-26 19:33:27 +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
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
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
08343e5d5d Passed insert_vs_emplace to the regression tests group 2014-08-04 08:53:25 +02:00
Ion Gaztañaga
644bea4404 Added test for const prvalues in insert vs. emplace 2014-08-04 00:41:47 +02:00
Ion Gaztañaga
90be67e81f Improved placement proxy to avoid temporary objects when constructing from values from the target type.
Added testcase based on Howard Hinnant's "Insert vs. Emplace" article.
2014-08-02 21:30:39 +02:00
Ion Gaztañaga
717959061e Make debug benchmarks faster reducing iterations. 2014-07-20 14:43:58 +02:00
Ion Gaztañaga
8c1bfe2881 Removed trailing whitespaces 2014-05-28 15:50:13 +02:00
Ion Gaztañaga
bffd6c036c Fixes #9915.
Uses intrusive is_convertible in MSVC compilers.
Removes some throw conditions in the documentation produced by the allocator copy constructor (as the standard requires no-throw guarantee for those).
2014-04-17 00:06:59 +02:00
Ion Gaztañaga
4f2d7944fa Corrected test_suite name 2014-02-06 11:53:36 +01:00
Ion Gaztañaga
a4c0188173 Divided set benchmark in several smaller benchmark files 2014-02-06 11:13:22 +01:00
Ion Gaztañaga
a4b839628a Implemented unique associative containers' equal_range using lower_bound_range which is more efficient with heavy comparison functions.
Updated benchmark to avoid measuring redundant operations in searches.
2014-01-20 13:20:02 +01:00
Ion Gaztañaga
6d6656fcc1 Improved set test with search functions and added set<string> test to benchmark. 2014-01-19 18:35:40 +01:00
Ion Gaztañaga
2b804c880b Fix GCC warning about unused typedef in release mode. 2014-01-05 22:37:09 +01:00
Ion Gaztañaga
01486761a6 Added support for configurable tree-based associative containers. In addition to RB trees, AVL, Scapegoat and Splay trees are experimentally supported. 2014-01-03 13:26:57 +01:00
Ion Gaztañaga
41c2056ec6 - Modified relational operators to be friend inline definitions. This allows compilation checking when instantiating classes, avoids predeclarations and results in less verbose code.
- First to make associative containers' tree implementation configurable.
2013-12-23 23:34:28 +01:00
Ion Gaztañaga
f2947c115e Changes during Git migration:
- Added Extended Allocator support for Boost.Container.
- Improved Doxygen generated reference
- Fixed ticket #9338 ("VS2005 compiler errors in swap() definition after including container/memory_util.hpp")
2013-12-23 10:47:20 +01:00
Ion Gaztañaga
14f092ab00 Default initialization for vector-like containers
Complexity guarantees for associative container constructors and ordered input ranges
Added benchmark for associative containers
Fixes #9166

[SVN r85964]
2013-09-26 18:05:25 +00:00
Stephen Kelly
59b2793df7 Remove obsolete MSVC check from pragma guard
git grep -h -B1 "^#\s*pragma once" | grep -v pragma | sort | uniq

is now clean.

[SVN r85952]
2013-09-26 13:02:51 +00:00
Ion Gaztañaga
6acbbb6f9b Vector performance improvements: dispatching to memcpy when possible.
[SVN r83271]
2013-03-03 12:26:48 +00:00
Ion Gaztañaga
3948f040b9 Rolled back to standard construction in benchmark
[SVN r83127]
2013-02-24 13:16:40 +00:00
Ion Gaztañaga
0896d04ddf Additional vector speed improvements, added basic benchmark against varray
[SVN r83126]
2013-02-24 13:13:36 +00:00