Ion Gaztañaga
e7d24400cb
Refactor trivial copy/assign traits. Assume intrinsics don't guarantee the copy constructor/assignment is callable.
2016-06-30 16:23:05 +02:00
Ion Gaztañaga
94627830e6
Add reverse iterator to be used in sort algorithms
2016-05-13 00:19:37 +02:00
Ion Gaztañaga
122916d820
Removed tabs.
2016-03-23 22:11:25 +01:00
Ion Gaztañaga
d247eea058
Cleanup BOOST_MOVE_CONVERSION_AWARE_CATCH macros with is_same_or_convertible, which allows compatibility with more compilers and input iterators
2016-02-24 10:06:43 +01:00
Ion Gaztañaga
d5981c52a9
Add experimental adaptive_merge/sort functions
2016-02-23 13:17:12 +01:00
Ion Gaztañaga
ab98479759
Introduce BOOST_MOVE_FORCELINE, disabled by default, so that we can start speeding up debug builds that use Boost.Move
2015-12-24 10:39:57 +01:00
Ion Gaztañaga
827f6de30e
Move BOOST_MOVE_HELPERS_RETURN_SFINAE_BROKEN to a more general header so that it can be used by other libraries like Intrusive
2015-10-17 09:38:38 +02:00
Ion Gaztañaga
b79bb35b0f
Add support for GCC 3.4
2015-10-12 16:18:31 +02:00
Ion Gaztañaga
09c75813a6
Refactor std namespace deduction for forward declarations
2015-09-14 22:33:20 +02:00
Dmitry Sobinov
172d49cf54
Fixed build errors with gcc and LLVM libc++
2015-09-14 23:01:58 +10:00
Ion Gaztañaga
6e42a16dd6
Add missing std:: namespace to size_t types.
2015-09-08 23:19:54 +02:00
Ion Gaztañaga
49e1fbb0f5
New macros for two-dimension expansion
2015-09-07 18:17:54 +02:00
Ion Gaztañaga
49a42a2fff
- Removed unused "bool Bool" template parameter which was conflicting with some external library macros.
...
- Fixed Trac #11500 https://svn.boost.org/trac/boost/ticket/11500
2015-07-27 22:20:10 +02:00
Ion Gaztañaga
0a429e5de9
Use reinterpret_cast instead of static_cast when the address sanitizer is on to avoid errors in C++03 emulation.
2015-07-02 14:55:51 +02:00
Ion Gaztañaga
196914b7a0
Added is_const trait
2015-06-04 11:12:48 +02:00
Ion Gaztañaga
69598a3d3f
- Reworked some traits to refactor code
...
- is_trivially_copy_xxxxable updated to add is_pod
- Updated is_pod adding scalar and void as some compilers' __is_pod intrinsic doesn't work with scalars
- Added test for type_traits. Only a few tested, more to come.
2015-04-26 23:29:27 +02:00
Ion Gaztañaga
32f4d91cec
Fixed Trac #11229 : vector incorrectly copies move-only objects using memcpy
2015-04-25 11:36:36 +02:00
Ion Gaztañaga
4f9c2b62fb
-> Added new meta-utils that were duplicated in Container & Intrusive.
...
-> Use some of them to avoid SFINAE instantiation errors in some old compilers.
-> Added a macro to static_cast or reinterpret_cast to rv<T> so in the future we can avoid some sanitizer errors when using static_cast
2015-04-12 12:26:46 +02:00
jzmaddock
67ffda6684
Fix for BOOST_ALIGNMENT_OF being set to an "unknown" value.
2015-02-21 18:13:28 +00:00
Ion Gaztañaga
d61685461c
Include boost/config.hpp before testing BOOST_HAS_PRAGMA_ONCE.
2015-02-02 15:58:29 +01:00
Ion Gaztañaga
db6448f7ea
Added is_nothrow_swappable
2015-01-19 00:05:05 +01:00
Ion Gaztañaga
f21d8f51e7
Use is_class in is_empty_nonintrinsic.
2015-01-18 20:22:22 +01:00
Ion Gaztañaga
4ef98d900b
Added is_enum, is_empty
2015-01-18 11:18:12 +01:00
Ion Gaztañaga
63d45d2fdd
Updated type traits workaround deleted copy constructors
2015-01-17 19:59:33 +01:00
Ion Gaztañaga
35a8b69c94
Replaced _MSC_VER with BOOST_HAS_PRAGMA_ONCE before #pragma once.
2015-01-10 12:49:25 +01:00
Ion Gaztañaga
ca12c962c8
Deleted some tabs.
2015-01-08 15:25:11 +01:00
Ion Gaztañaga
8e1518da00
Fixed bug in BOOST_MOVE_MFWD and simplified mref
2015-01-08 15:24:57 +01:00
Ion Gaztañaga
43ad7b31b8
Disable harmless MSVC warning about alignment.
2015-01-06 22:44:45 +01:00
Marcel Raad
a1d56c0c8b
Add support for BOOST_NO_INTRINSIC_WCHAR_T
...
This fixes a compile error in lexical_cast's lexical_cast_typedefed_wchar_test_runtime regression test with MSVC.
2015-01-06 22:29:31 +01:00
Ion Gaztañaga
32722591d5
Divide meta_utils in two headers, core (with [dis|en]able_if[_c], is_same, integral_constant, identity) and the rest.
2015-01-04 02:12:51 +01:00
Ion Gaztañaga
d8084c45bc
Add missing files.
2015-01-03 11:03:44 +01:00
Ion Gaztañaga
8503b508e8
Reduced dependencies on other Boost libraries to make the library a bit more lightweight.
2015-01-02 18:34:14 +01:00
Ion Gaztañaga
8355309c5f
Added #pragma once
2014-11-01 19:28:24 +01:00
Ion Gaztañaga
ca7d74970a
Removed some extra spaces.
2014-10-05 18:41:57 +02:00
Ion Gaztañaga
4e7a046df2
Replaced <boost/move/utility.hpp> with <boost/move/utility_core.hpp> when possible to minimize dependencies.
2014-09-25 16:15:36 +02:00
Ion Gaztañaga
291a95c30a
Reduced unused classes from meta_utiles and simplified the implementation of several traits classes to avoid inheritance from integral_constant
...
Moved declval to utility_core.hpp
2014-09-22 00:15:30 +02:00
Ion Gaztañaga
d4d08ec10e
Remove non-move dependencies from headers to speed up compilations and avoid too many dependencies
2014-09-17 18:37:41 +02:00
Ion Gaztañaga
201976f0ec
Remove intrusive dependencies introduced with copy-paste.
2014-09-16 21:57:28 +02:00
Ion Gaztañaga
65c8c63ddb
Fixed is_convertible bug in missing_virtual_destructor
2014-09-04 00:24:44 +02:00
Ion Gaztañaga
3075014f2d
Added check for types with no virtual destructor when using default_delete and non-array types
2014-09-04 00:15:56 +02:00
Ion Gaztañaga
90be9ebe22
Extracted default_delete into its own header.
...
Extracted meta utilities used only by unique_ptr and friends to its own "unique_ptr_meta_utils.hpp" header.
2014-09-02 16:28:17 +02:00
Ion Gaztañaga
19d35253cf
Added support for bounded arrays in unique_ptr. Splitted test in several subtests.
2014-09-01 23:59:10 +02:00
Ion Gaztañaga
364ee17476
Simplified and improved unique_ptr implementation:
...
- No array specialization to avoid code duplication
- Constructible and assignable from literal zero
2014-08-27 23:21:36 +02:00
Ion Gaztañaga
6b2982a385
Removed unneded macros that pollute user code.
2014-08-27 23:20:30 +02:00
Ion Gaztañaga
7797b52f61
Added missing cstddef includes and corrected the use of plain "size_t"
2014-08-24 21:17:26 +02:00
Ion Gaztañaga
e1da7c5ca1
Added class unique_ptr under boost::movelib namespace. This could be lifted to ::boost namespace if the community agrees.
...
This unique_ptr implementation is based on C++14, including make_unique functions. Large parte of the testsuite is based on Howard Hinnant's unique_ptr emulation testsuite.
2014-08-22 18:34:34 +02:00
Ion Gaztañaga
3c56780e0e
- Splitted utility.hpp into utility_core.hpp and utility.hpp. The first one implements move() and forward() minimizing external dependencies. utility.hpp includes utility_core.hpp and implemente move_if_noexcept.cpp
...
- Changed move_if_noexcept with a single function
- Changed test case to use boost/core/lightweight_test.hpp
- Added boost::is_nothrow_move_constructible<T>::value to is_nothrow_move_constructible_or_uncopyable so types with only a non-throwing move constructor is forwarded with move_if_noexcept.
-
2014-08-18 02:03:35 +02:00
Ion Gaztañaga
d45f2cd734
Reduced dependencies with type_traits. Updated "forward" to be standard conforming.
2014-08-03 21:26:46 +02:00
Ion Gaztañaga
51c9e874a8
Fixes #8420 and some clang errors.
2014-02-24 08:29:31 +01:00
Ion Gaztañaga
688955ab9b
Fixes #9482
2014-02-23 21:31:52 +01:00