38 Commits
Author SHA1 Message Date
Ion Gaztañaga afe294063b Remove some forceinline attributes that might be counter-productive and add noexcept to others. 2022-01-04 00:34:33 +01:00
Ion Gaztañaga 01b4f6264c Take all pointers by value to avoid aliasing issues in release mode 2021-12-29 14:02:03 +01:00
Ion Gaztañaga 79d2a6df4b Put swap tests inside generic associative container tests so that they are executed for every tree type. 2021-06-20 02:01:20 +02:00
Daniel Steck 300ffd2363 unintended whitespace change 2021-05-13 23:30:19 +01:00
Daniel Steck 8a652bd355 C++03 and (C) 2021-05-13 23:28:33 +01:00
Daniel Steck d4e76658a1 initial commit 2021-05-13 23:21:05 +01:00
Ion Gaztañaga a633906847 Fixes #59 ("Add noexcept support to the library"). 2021-04-19 11:17:48 +02:00
Ion Gaztañaga 77af03117e Merge pull request #48 from stellarscience/patch-1
MSVC "assignment within conditional" warning fix
2020-10-19 13:32:22 +02:00
SiggyBar 92d6e58bb7 Fix empty control statement warnings
This change replaces code like this:
      if(safemode_or_autounlink)
         BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(node_algorithms::unique(to_insert));

with:
      BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT(!safemode_or_autounlink || node_algorithms::unique(to_insert));

The reason for this change is that the first form generates
a warning for Visual C++ 14.1 in builds without asserts:
warning C4390: ';': empty controlled statement found; is this the intent?

Before this change the code was using a mix of the two forms
when invoking the BOOST_INTRUSIVE_SAFE_HOOK_DEFAULT_ASSERT()
and BOOST_INTRUSIVE_INVARIANT_ASSERT() macros.  Now it
consistently uses the second form.
2020-02-07 10:46:55 +01:00
Conrad Poelman b45a3b7cdd MSVC "assignment within conditional" warning fix
The latest MSVC 2019 issues a warning on this line. This change performs the assignment prior to the conditional.
2020-01-25 16:07:29 -05:00
Marcel Raad 4a254f5ebf Fix -Wextra-semi clang warnings
Remove superfluous semicola.
2019-02-25 10:55:25 +01:00
Ion Gaztañaga 2ab3421b17 In functions that modify data structures, take pointers by value instead of by reference, to avoid aliasing issues. 2018-09-27 10:14:16 +02:00
Ion Gaztañaga 95bba145ea Remove maybe uninitialized warnings when using insert_commit_data_t 2017-02-23 19:55:07 +01:00
Ion Gaztañaga 21a2107d9a * Implemented merge operations in ordered associative containers 2016-08-31 23:42:14 +02:00
Ion Gaztañaga e9e3f92427 Apply BOOST_INTRUSIVE_FORCEINLINE to some trivial functions. 2016-07-31 22:47:48 +02:00
Ion Gaztañaga dd385e0ec5 -> Use new Boost.Move meta utilities to avoid compilation errors in old compilers.
-> Implement equality operators as friend functions to make code clearer.
2015-04-12 12:56:04 +02:00
Ion Gaztañaga 4f20e7279d Add new clone_from overload to implement move semantics 2015-02-26 00:02:24 +01:00
Ion Gaztañaga 667ec0bdfc Make sure boost/config.hpp is included before pragma once. 2015-02-01 23:15:14 +01:00
Ion Gaztañaga a55b2d824d Replaced _MSC_VER with BOOST_HAS_PRAGMA_ONCE before #pragma once. 2015-01-10 12:49:46 +01:00
Ion Gaztañaga 614ce1b155 Reduced include dependencies 2015-01-02 18:41:20 +01:00
Ion Gaztañaga 281629b94e Fixed wrong comment in bounded_range when lower and upper are equal. 2014-12-15 17:49:05 +01:00
Ion Gaztañaga a4f0c0c7b3 Reduced compile-time dependencies, headers, and the use of Boost.Preprocessor, specially for hooks and iterators. 2014-12-08 15:48:08 +01:00
Ion Gaztañaga e926491606 Added #pragma once to headers 2014-10-13 22:30:28 +02:00
Ion Gaztañaga d25ae5748e Simplified include dependencies to avoid too many preprocessed source. 2014-10-10 18:21:18 +02:00
Ion Gaztañaga 7ae11c3444 Header dependency cleanup. Removed some standard includes, splitted large "utilities" headers, and minimized algorithm dependencies. 2014-10-04 07:55:02 +02:00
Ion Gaztañaga 303ac69794 Replaced boost/move/move.hpp with a more lightweight boost/move/utility_core.hpp 2014-09-25 17:12:55 +02:00
Matei David a684df24bd check const containers 2014-08-14 16:27:21 -04:00
Matei David 3ebd69f44e implemented container integrity checkers 2014-08-14 12:28:24 -04:00
Ion Gaztañaga 68fa82e5e8 Reverted git mess. 2014-02-15 00:28:41 +01:00
Ion Gaztañaga 9f636d5bb1 Merge branch 'develop' 2014-02-14 23:11:21 +01:00
Ion Gaztañaga 36a5b82a33 Fixed bug in 64 bit GCC implementations in floor_log2 and __builtin_clz dispatching 2014-02-09 23:19:09 +01:00
Ion Gaztañaga c1fdae5eb4 Optimized tree-rebalancing code to avoid redundant pointer updates. 2014-02-06 11:10:47 +01:00
Ion Gaztañaga 2ffe6b2f82 Fixed ABI regression introduced in Boost 1.55 2014-01-30 14:22:04 +01:00
Ion Gaztañaga f162078264 Implemented equal_range for unique associative containers using lower_bound_range. This might be a bit slower when comparison function is very lightweight, but shines when it's heavy as it just needs to perform a single additional comparison and a possible successor iteration. 2014-01-20 12:13:53 +01:00
Ion Gaztañaga 3c6f96a96a Improved "count" for unique associative containers. Instead of calling tree's count just use find() != end() to avoid iterations as there is only one potential key.
Fixed some typos.
2014-01-19 14:28:57 +01:00
Ion Gaztañaga 0e755330d9 Simplify splay algorithms avoiding redundant calls. 2014-01-05 22:16:29 +01:00
Ion Gaztañaga ea126390a7 Changes for 1.56 made during Git transition:
*  Improved Doxygen generated reference and updated and fixed forward-declaration header.

*  Source breaking: Removed previously deprecated `xxx_dont_splay` functions from splay containers and removed `splay_set_base_hook` and `splay_set_member_hook`from splay containers.
2013-12-23 10:15:53 +01:00
Ion Gaztañaga fbd8e26461 * Big refactoring in order to reduce template and debug symbol bloat.
* Fixes #8698
* Implemented SCARY iterators

[SVN r85165]
2013-07-28 22:10:37 +00:00