Commit Graph

95 Commits

Author SHA1 Message Date
Ion Gaztañaga
196914b7a0 Added is_const trait 2015-06-04 11:12:48 +02:00
Ion Gaztañaga
4a44ed3d26 Modify unique_ptr's constructor from convertible unique_ptr's to take the argument by value. This allows constructing unique_ptr from functions returning convertible unique_ptr's. See https://svn.boost.org/trac/boost/ticket/11259 for some details. 2015-05-06 12:32:11 +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
6c1b630d4d Use is_class to allow union types for boost::rv<> 2015-01-28 20:21:10 +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
15ad7002a5 Trying to fix warning "variable 'pnothrow' is not needed and will not be emitted" 2015-01-07 16:14:33 +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
784c34fc16 Used macros to avoid code repetition in make_unique 2015-01-04 02:10:13 +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
36f74c5719 Use stl_algobase.h for ICC and Clang compilers using libstdc++ 2014-11-29 23:41:24 +01:00
Ion Gaztañaga
85b41c26d4 Limit libstdc++ only to GCC as clang/icc gnuc versions don't match well with libstdc++ installations 2014-11-29 18:45:13 +01:00
Ion Gaztañaga
910165c230 Added test for adl_move_swap.cpp
For move-emulation enabled types, if present, member swap is used, instead of the move-based swap.
2014-11-28 15:39:49 +01:00
Ion Gaztañaga
cbda10ecdd Added adl_move_swap utility 2014-11-26 19:27:40 +01:00
Ion Gaztañaga
ad50fba54f Added BOOST_MOVE_BASE utility 2014-11-01 19:32:36 +01:00
Ion Gaztañaga
8355309c5f Added #pragma once 2014-11-01 19:28:24 +01:00
Ion Gaztañaga
1f6892c935 Fix GCC-4.9 c++14 regression (see https://gcc.gnu.org/PR63437) avoiding parenthesied BOOST_MOVE_RETURN. 2014-10-12 10:23:54 +02:00
Ion Gaztañaga
e43819d1d2 Added nothrow variants to unique_ptr 2014-10-10 22:03:47 +02:00
Ion Gaztañaga
ca7d74970a Removed some extra spaces. 2014-10-05 18:41:57 +02:00
Ion Gaztañaga
9452115ee8 Avoid being dependent on Boost.PP. 2014-10-05 18:41:40 +02:00
Ion Gaztañaga
78e032ccf0 Fixes Trac #10460 2014-10-01 00:21:38 +02:00
Ion Gaztañaga
1338039e7a - Derive move_detail::is_rv from integral_constant to recover the internal "::type" typedef
- Fix typo in header guard
2014-09-30 20:10:01 +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
Marcel Raad
9f31553033 Don't delete copy constructor when rvalue references are disabled
Before SVN r82706 from February 2013 (git a7091d1009), Boost.Move worked perfectly for compilers that supported deleted functions without supporting rvalue references (for example, clang with libstdc++ 4.2.1 on Mac to support OS X 10.6). r82706 broke those setups as temporaries now call the deleted copy constructor instead of the move constructor. This change reverts those setups to the old behavior.
2014-09-23 15:37:28 +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
c4bd007098 Move "forward_type" to core.hpp 2014-09-17 23:33:08 +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
8539131b2a Workaround for compilers with no std::nullptr_t in <cstddef> 2014-09-16 22:18:49 +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
583378a946 Update boost::move documentation with a more accurate description. 2014-08-30 02:43:42 +02:00
Ion Gaztañaga
085a814cf2 Added missing typenames 2014-08-29 11:29:26 +02:00
Ion Gaztañaga
738e360f40 Improved move-only deleters in C++03, now they can be caught as rvalues. 2014-08-29 10:28:09 +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