1
0
forked from boostorg/move

40 Commits

Author SHA1 Message Date
Ion Gaztañaga
23c12bef69 Add BOOST_MOVE_TO_LV to help reducing potential UB 2022-01-02 00:03:38 +01:00
Ion Gaztañaga
3ce9452f93 Definitely disable MAY_ALIAS for emulation rv_ref except for GCC 4.4 2018-09-26 01:13:00 +02:00
Ion Gaztañaga
5e2e0f944e Use BOOST_MAY_ALIAS only for GCC 4.4, as other MSVC, GCC, and Clang don't seem to need it. 2018-09-15 00:54:16 +02:00
Christopher Hunt
210da842d8 Move may_alias attribute for xlC++ compatibility.
This also aligns usage of the `may_alias` attribute with other boost libraries. Fixes #19.
2018-08-31 19:04:05 -04:00
Ion Gaztañaga
2063004f7b Use reinterpret-cats for rv-cast to avoid sanitizer errors. 2018-06-21 23:57:29 +02:00
Andrey Semashev
7aadf5c6c7 Use BOOST_MAY_ALIAS from Boost.Config.
This will add support for more compilers implementing the attribute.
2017-07-29 17:38:10 +03:00
Ion Gaztañaga
1194a39ab3 Undo commit b474e8c28a as it breaks some Boost libraries. Emulation limitations will be documented. 2016-07-05 23:18:21 +02:00
Ion Gaztañaga
daabab5261 Add missing BOOST_MOVE_FORCEINLINE 2016-06-30 16:22:27 +02:00
Ion Gaztañaga
fec7e30d36 Use BOOST_MOVE_TO_RV_CAST in the newly fixed assignment operator.
Update changelog
2016-06-30 12:22:41 +02:00
Flamefire
38d556a5bd Fix assignment of move-and-copy emulated classes 2016-05-12 13:30:08 +02:00
Ion Gaztañaga
541f28037d Fixed Trac #11758: "BOOST_MOVABLE_BUT_NOT_COPYABLE doesn't reset private access with rvalue ref version" 2016-02-23 16:17:42 +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
bd9532a6a4 Documentation fixes:
- core.hpp: hide non-public macros
- default_delete.hpp: Hide detail code
- unique_ptr.hpp: Likewise
- utility_core.hpp: Document move_if_not_lvalue_reference
2015-09-13 21:50:34 +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
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
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
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
35a8b69c94 Replaced _MSC_VER with BOOST_HAS_PRAGMA_ONCE before #pragma once. 2015-01-10 12:49:25 +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
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
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
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
e3959c982c Corrected typos in documentation 2014-08-24 21:17:43 +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
388b71d333 Fixed Trac #9785: Compiler warning with intel icc in boost/move/core.hpp 2014-08-01 17:29:59 +02:00
Ion Gaztañaga
f1de12bfef Fixes #9045 ("Wrong macro name on docs") 2014-02-23 22:02:39 +01:00
Ion Gaztañaga
062000ed68 Added BOOST_MOVE_RET 2014-02-15 23:04:15 +01:00
Ion Gaztañaga
fe513fd14c Fixes #8842.
[SVN r85180]
2013-08-01 14:17:39 +00:00
Ion Gaztañaga
dbc1ef7722 Fix missing const in BOOST_COPY_ASSIGN_REF_3_TEMPL_ARGS
[SVN r84339]
2013-05-18 09:43:17 +00:00
Ion Gaztañaga
7c91cca54f Fixes #8231
[SVN r83270]
2013-03-03 12:21:48 +00:00
Ion Gaztañaga
bf475b68a8 Fixes #7969
[SVN r82711]
2013-02-04 05:34:22 +00:00
Ion Gaztañaga
a7091d1009 Fixes #7969
[SVN r82706]
2013-02-03 20:42:26 +00:00
Ion Gaztañaga
8e3fb9acbb Fixes #7832
[SVN r82230]
2012-12-27 22:33:06 +00:00
Ion Gaztañaga
b4349e3fa7 * Better header segregation (bug
[@https://svn.boost.org/trac/boost/ticket/6524 #6524]).
*  Small documentation fixes
*  Replaced deprecated BOOST_NO_XXXX with newer BOOST_NO_CXX11_XXX macros.

[SVN r81513]
2012-11-24 20:48:31 +00:00