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