Commit Graph

49 Commits

Author SHA1 Message Date
Ion Gaztañaga
d5adae2eda Fixes Trac #11802 ("Incorrect ordering after using insert() with ordered_range_t on a flat_multiset with a non-default sort order") 2016-08-12 00:43:16 +02:00
Ion Gaztañaga
225e2da77e Revised noexcept expressions of default and move constructors in all containers. 2016-08-01 23:49:51 +02:00
Ion Gaztañaga
85b2ed509b Added debug assertions via BOOST_ASSERT to check preconditions in several members. All checks are O(1) 2015-09-18 14:39:17 +02:00
Ion Gaztañaga
a91f6d317b Fixed wrong call to vector::merge_unique in insert_unique and used placement construction in priv_merge_in_new_buffer 2015-07-21 23:40:52 +02:00
Ion Gaztañaga
3246e11ca2 Added new experimental merge functions to speed up flat_xxx range insertion 2015-04-14 15:22:06 +02:00
Ion Gaztañaga
f47bf08ccc Try to definitely fix Trac Issue #9931 (flat_map::insert(ordered_unique_range_t...) fails with move_iterators") 2015-02-03 16:09:47 +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
dbafd61d4d updated move assignments and swap operations to "N4258: Cleaning-up noexcept in the Library, Rev 3" with some customizations. 2015-01-19 00:18:44 +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
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
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
6f1f162cb3 - Added nth and index_of.
- Used BOOST_MOVE_BASE
2014-11-01 20:03:25 +01: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
76fcab1a09 Use emplace instead or push_back in priv_insert_ordered_range 2014-09-20 17:30:09 +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
0ccf576872 Updated range insertion code for enhanced performance. 2014-09-17 21:51:38 +02:00
Ion Gaztañaga
d849f80ea5 Removed tabs. 2014-07-30 16:32:55 +02:00
Ion Gaztañaga
8c1bfe2881 Removed trailing whitespaces 2014-05-28 15:50:13 +02:00
Ion Gaztañaga
9b25c7134e * Fixed BOOST_CONTAINER_NOEXCEPT_IF(allocator_traits_type::propagate_on_container_move_assignment) missing ::value
* Optimized insert_equal(ordered_range_t,...) and insert_unique(ordered_unique_range_t, ...) for elements to be inserted in the end.

* Added range insertion overload (non-standard extension) to vector taking the number of elements to avoid reiterations with std::distance.
2014-04-23 23:18:18 +02:00
Ion Gaztañaga
71b99683b9 Reverted a (premature) optimization that can lead to out of bound write. 2014-04-21 22:52:06 +02:00
Ion Gaztañaga
5013f3fd69 Fixes #9931 ("flat_map::insert(ordered_unique_range_t...) fails with move_iterators") 2014-04-21 21:23:24 +02: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
abc50c7275 Improved unique associative container count function. Improved also flat_xxx's equal_range. 2014-01-19 19:18:57 +01:00
Ion Gaztañaga
d3eb21000b Derived flat_set from flat_tree to avoid redefining almost all functions and minimize instantiation of multiple function in debug mode. 2014-01-03 14:52:13 +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
3e945acc9b Fixes #9092
[SVN r85612]
2013-09-08 18:58:21 +00:00
Ion Gaztañaga
3d249fa728 Implemented SCARY iterators for all containers
[SVN r85308]
2013-08-11 21:36:19 +00:00
Ion Gaztañaga
b1503a139e Fixes #8892.
[SVN r85167]
2013-07-29 21:32:23 +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
9b0a73fc32 Add experimental option to define "vector::iterator" as "pointer"
[SVN r83140]
2013-02-24 20:34:15 +00:00
Ion Gaztañaga
bc5c91bb79 * Improved vector's insertion performance.
*  Changed again experimental multiallocation interface for better performance (still experimental).
*  Added no exception support for those willing to disable exceptions in their compilers.
*  Fixed GCC -Wshadow warnings.
*  Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros.


[SVN r81518]
2012-11-24 21:08:18 +00:00
Jeffrey Lee Hellrung, Jr.
546a3f0f12 refs #7531 (variable shadowing in container and intrusive)
[SVN r81050]
2012-10-23 12:56:01 +00:00
Ion Gaztañaga
b480cc235f More Doxygen documentation improvements
[SVN r80795]
2012-09-30 20:38:04 +00:00
Ion Gaztañaga
42ea3ca8c7 Bug #7439
[SVN r80743]
2012-09-28 21:07:02 +00:00
Ion Gaztañaga
3c256c2282 Implemented LWG Issue #149 (range insertion now returns an iterator) & cleaned up insertion code in most containers
[SVN r80348]
2012-09-01 11:01:03 +00:00
Ion Gaztañaga
a9eb3dad27 Ticket #7114:Destructor not called when using emplace()
[SVN r79422]
2012-07-11 17:34:44 +00:00
Ion Gaztañaga
9460e03224 Trailing whitespaces
[SVN r78518]
2012-05-20 10:02:49 +00:00
Ion Gaztañaga
636cc66599 Fixed clang warnings and errors
[SVN r78149]
2012-04-22 22:54:18 +00:00
Ion Gaztañaga
1c7b258541 Corrections for scoped_allocator
[SVN r78147]
2012-04-22 21:21:45 +00:00
Ion Gaztañaga
a377237401 Changed ordered insertion function and added comments
[SVN r77895]
2012-04-10 20:14:31 +00:00
Ion Gaztañaga
c5bdec851e Experimental scoped_allocator support
[SVN r77480]
2012-03-22 18:46:55 +00:00
Ion Gaztañaga
cd25b32744 Bugs #6335 & #6336
[SVN r76236]
2011-12-30 23:38:12 +00:00
Ion Gaztañaga
935a534713 Introducing allocator_traits and pointer_traits changes into several libraries.
[SVN r76106]
2011-12-22 20:08:24 +00:00
Ion Gaztañaga
97843bcaef First inclusion in the repository
[SVN r74076]
2011-08-26 18:25:51 +00:00