Ion Gaztañaga
9abd56be5e
Recover lost projects from solution
2017-12-31 19:38:11 +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
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
21fbd71ef3
Delete BOOST_CONTAINER_VECTOR_ITERATOR_IS_POINTER
2017-08-27 01:03:24 +02: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
a7e2bed8f1
Use adaptive_sort for merge operations.
2017-04-06 23:35:08 +02:00
Ion Gaztañaga
4d05ce8738
Fix for Ticket #12915 : "Buffer overflow in boost::container::vector (affects flat_set)"
2017-03-28 12:37:22 +02:00
Ion Gaztañaga
1261ac3308
Fix emplace_back return type also in compilers without variadic templates. Update changelog.
2017-02-24 22:07:20 +01:00
Tobias Reh
5fe2dba504
emplace_back must return reference to back(), not to *end()
2017-02-24 15:33:30 +01: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
238f37db22
Remove duplicated forceinline in push_back overloads
2016-11-12 19:08:24 +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
Ion Gaztañaga
0617d0e538
Implemented P0084R2 (Emplace Return Type)
2016-08-29 16:53:44 +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
b6d3906895
Use value-initialized pointers when null is required, as conversion from literal 0 is not guaranteed in smart pointers.
2016-07-31 23:16:08 +02:00
Pavel A. Lebedev
0b75df9920
Allow reuse of buffer in reserve with v2 allocator
...
allocation_command uses expand_{fwd,bwd} flags and its result is later compared with the old pointer, but the old pointer was not passed for reuse.
2016-07-16 18:52:10 +03:00
Ion Gaztañaga
132e57a348
Fixes Trac #12177 ("vector::priv_merge uses unqualified uintptr_t")
2016-05-13 23:50:34 +02:00
Ion Gaztañaga
873daf9a0c
Fixed bug Trac #11170
2016-05-13 22:17:03 +02:00
Ion Gaztañaga
3e82a27917
Fixes Trac #11912 : "flat_map use of vector::priv_forward_range_insert_expand_backwards may cause move with same source"
2016-02-24 22:27:53 +01:00
Ion Gaztañaga
c894ddf5a5
Use SFINAE in range constructors to detect iterators
2015-12-25 13:24:27 +01:00
Ion Gaztañaga
75f7c8fa73
Introduced BOOST_CONTAINER_FORCEINLINE so that mandatory inlining can be disabled selectively
2015-12-24 10:22:38 +01:00
Ion Gaztañaga
08e768f1d8
Fix comment about self-assignment
2015-11-06 21:49:55 +01:00
Ion Gaztañaga
d517bf46a8
- Simplified code using new priv_raw_begin(), renamed back_raw to priv_back_raw to match it.
...
- Avoid dynamic allocation in priv_merge when there is enough capacity for new elements.
2015-10-12 18:57:44 +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
7071fbc7d8
Fixed unused argument warning in swap_resources().
...
Fixed changelog copy-paste error.
2015-09-10 12:09:08 +02:00
Ion Gaztañaga
f1f97518d3
Fixed Track #11627 and #11628
2015-09-09 09:48:09 +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
f02f5ec21f
fix bug when erasing last elements
2015-06-04 11:40:46 +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
ad54608d78
Fix Trac #11139
2015-03-31 11:23:14 +02:00
Ion Gaztañaga
e5f069da2b
Reenginered partially propagable allocator support in vector. storage_is_unpropagable is now the basic building block, which is simpler and less error-prone.
2015-03-01 22:25:27 +01:00
Ion Gaztañaga
8cdfec7890
Add experimental small_vector class
2015-02-26 00:35:59 +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
9fede24d7e
Replace BOOST_MOVE_IMPDEF with BOOST_CONTAINER_IMPDEF
2015-01-26 00:33:40 +01:00
Ion Gaztañaga
ef7137a945
Replace BOOST_MOVE_IMPDEF with BOOST_CONTAINER_IMPDEF
2015-01-26 00:30:01 +01:00
Ion Gaztañaga
cb732a22be
Replace BOOST_MOVE_IMPDEF with BOOST_CONTAINER_IMPDEF
2015-01-26 00:14:35 +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
64026d26c2
Correctly initialize vector_value_traits_base<T>::trivial_dctr_after_move
2015-01-09 21:20:24 +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
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
d514c1ab66
Refactored comparison functors to reuse compare_functors.hpp classes
2014-11-23 10:07:12 +01:00
Ion Gaztañaga
e6d19fb408
Fixed in bug in vector::operator==
2014-11-09 21:06:36 +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
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