102 Commits
Author SHA1 Message Date
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