Commit Graph

373 Commits

Author SHA1 Message Date
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 456e9fedcb Some adaptations due to internal Intrusive changes. 2014-12-08 15:49: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 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 d514c1ab66 Refactored comparison functors to reuse compare_functors.hpp classes 2014-11-23 10:07:12 +01:00
Ion Gaztañaga 1d38ecfd10 Fixed #10790 (Trac): long long errors from container 2014-11-22 12:26:35 +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 6d034733bd Added missing #pragma once 2014-10-13 23:26:01 +02:00
Ion Gaztañaga cc699e956f Updated due to Intrusive detail changes. 2014-10-10 18:23:19 +02:00
Ion Gaztañaga 5d6123152c Removed unneeded includes. Refactores std forward declarations 2014-10-04 09:05:04 +02: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 be9837fd54 Fix multiple destructor bug, pointer was not incremented in ~scoped_destructor_n() 2014-09-23 16:58:38 +02:00
Ion Gaztañaga f5e678fc70 Remove warning of unused variable. 2014-09-22 22:31:34 +02:00
mikael 59b46cd338 Fixes a small issue that prevented the use of iterators of containers of incomplete types. Added iterators of incomp-types to unit-tests. 2014-09-21 19:46:58 -04:00
Ion Gaztañaga 3bbb0bbe0e Fixed wrong BOOST_CONTAINER_VECTOR_ALLOC_STATS comments in vector_alloc_base, they should go to the derived vector class.
Fixed error in void assign(FwdIt first, FwdIt last) when fwd expansion occurs, capacity was not being updated.
Optimized erasure when the type has_trivial_destructor_after_move.
Simplified a bit backwards expansion code.
Optimized priv_uninitialized_construct_at_end calling memmove-aware functions instead of using a hand-written loop
2014-09-21 23:57:23 +02:00
Ion Gaztañaga 33c920d435 Removed unneeded includes. 2014-09-21 23:50:40 +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 27f99047a8 Documentaion macros in adaptive_pool 2014-09-20 17:29:26 +02:00
Ion Gaztañaga d2bd31e4d0 Add new documentation macros and tested in vector. 2014-09-20 17:28:41 +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 5313086d54 Updated position insertion code.
Fixed backwards expansion calling too many destructors nd added more tests to detect similar errors.
2014-09-17 21:52:34 +02:00
Ion Gaztañaga 0ccf576872 Updated range insertion code for enhanced performance. 2014-09-17 21:51:38 +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 abc8f80ea6 Remove BOOST_MOVABLE_BUT_NOT_COPYABLE from basic_string_base as it comflicts with is_copy_constructible and other utilities that inspect the internal tag looking for noncopyable types. 2014-08-29 14:19:54 +02:00
Ion Gaztañaga ff6e90a720 Removed incorrect deprecated function warning macros in MSVC compilers. 2014-08-29 12:54:45 +02:00
Robert Matusewicz cbe191b5e3 add std::initializer_list support to flat_set and flat_multiset 2014-08-28 13:15:14 +02:00
Robert Matusewicz e2b815c196 add std::initializer_list support for flat_map and flat_multimap 2014-08-28 13:15:10 +02:00
Robert Matusewicz f8ebfa472a Add std::initializer_list to the following containers:
* deque
* map
* multimap
* set
* multiset
* list
* slist

Tested on clant and g++
2014-08-27 17:34:25 +02:00
Robert Matusewicz 089edf9d35 add support for std::initializer_list to boost::container::static_vector 2014-08-19 20:23:14 +02:00
Robert Matusewicz ac4dde2c6e add std::initializer_list support for boost::container::vector 2014-08-15 20:25:16 +02:00
Ion Gaztañaga dd01853881 Erased tab & removed unneeded clear() in assignment 2014-08-15 18:13:05 +02:00
Ion Gaztañaga c03b2357ce Erased tab & removed unneeded clear() in assignment 2014-08-15 18:12:18 +02:00
Ion Gaztañaga a166923e83 Fixed documentation errors with "position", "pos", "hint" and "p" iterators indicating insertion/emplace position. 2014-08-15 17:20:57 +02:00
Robert Matusewicz d0f8fe793c add support for std::initialize_list in stable_vector constructor, operator=, assign and insert methods 2014-08-15 15:32:07 +02:00
Ion Gaztañaga 24cf58a0f0 Fixed wrong comment on required allocator type 2014-08-14 13:39:28 +02:00
Ion Gaztañaga 03582c4498 Workaround for MSVC compilers, that fail to properly handle template specializations with constness subtleties. 2014-08-03 22:08:59 +02:00
Ion Gaztañaga fab3df0a04 Added emplace optimization specializations for compilers with rvalue references but without variadic templates (e.g. MSVC10&11) 2014-08-03 11:09:54 +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 d849f80ea5 Removed tabs. 2014-07-30 16:32:55 +02:00
Ion Gaztañaga 52af899129 Merge branch 'aix_fix' of https://github.com/ibmsoe/container into ibmsoe-aix_fix 2014-07-30 16:20:15 +02:00
Ion Gaztañaga 941eb27e1d Updated and documented non-standard optimizations based on memset 2014-07-20 14:43:12 +02:00
Axel Ismirlian 960d649e99 Added missing AIX definition for sched.h (previously out of scope). 2014-07-16 15:48:12 -05:00
Ion Gaztañaga 819b365f5e Fixed unqualified iterator_to_pointer & to_raw_pointer calls that were causing compilation problems due to ADL. 2014-06-16 00:23:19 +02:00
Ion Gaztañaga 4ea1e46fcd Replaced several "addressof()" uses with the more correct "iterator_to_raw_pointer".
Updated changelist with bug #9637.
2014-06-14 22:50:53 +02:00
Ion Gaztañaga 5afad7cd0c Added optimization for types that can be value initialized with memset. 2014-06-14 12:41:58 +02:00