Commit Graph

790 Commits

Author SHA1 Message Date
Peter Dimov cd8de9d4a6 Merge branch 'move-alias' of https://github.com/uecasm/smart_ptr into develop 2016-04-13 13:29:50 +03:00
Glen Fernandes 427124543b Use remove_reference in make_unique implementation 2016-02-19 08:09:25 -05:00
Peter Dimov 4473bf8ec2 Fix hash support for shared_ptr<T[]>, <T[N]> 2015-12-15 19:13:20 +02:00
Glen Fernandes 7a7ac4512e Fix formatting in headers and tests 2015-11-11 01:26:15 -05:00
Glen Fernandes 7af503d3bb Refactor make_unique implementations
Before the pending refactor of make_shared/allocate_shared for arrays.
2015-11-08 11:02:06 -05:00
Ion Gaztañaga 3f17244225 Removed the intrin.h-related part
Removed the commented part as the comment clearly says that VC9 has problems when intrin.h is included.
2015-10-18 19:44:17 +02:00
Ion Gaztañaga ca93749614 Support MSVC-7.1/ intrin.h available >= MSVC-8.0
-> MSVC 7.1 has no intrin.h and needs to use "#pragma intrinsic".
-> intrin.h available since Visual 2005
2015-10-18 12:51:13 +02:00
Gavin Lambert 05d5a4e9a0 Added shared_ptr aliasing move constructor.
Signed-off-by: Gavin Lambert <github@mirality.co.nz>
2015-10-12 18:19:22 +13:00
Andrey Semashev 970a179ac2 Make the default constructor constexpr 2015-10-05 18:24:52 +03:00
Joachim Faulhaber fd543d3292 Warning fixes: Conversion and unused parameter warnings 2015-09-24 14:53:40 +02:00
Peter Dimov df90496583 Disable deprecation warnings on g++/clang 2015-09-10 23:45:47 +03:00
jzmaddock abbe975e8f Disable explicit operator bool on Oracle C++
Although Oracle supports this syntax, advanced usage such as:

if(my_shared_ptr && x)

Fail.  Attempts to wokaround by adding additional operator overloads have so far failed.
2015-08-18 18:14:50 +01:00
Edward Diener 686efe100b Updated Sleep declaration only includes _mingw.h when needed. 2015-07-22 18:23:43 -04:00
Edward Diener acb880d8c2 Change to Sleep declaration for clang on Windows to match Windows implementation being used 2015-07-22 06:51:49 -04:00
Edward Diener 1712b87cb6 Added __declspec(dllimport) for Sleep using clang on Windows. 2015-07-21 15:41:35 -04:00
Peter Dimov a42dda0af4 Apply fix for errata 754327 for ARM Cortex-A9 suggested in ticket #11362 2015-06-06 01:40:01 +03:00
Peter Dimov d875a68ceb Add constructor/assignment taking boost::movelib::unique_ptr 2015-05-04 01:06:42 +03:00
Jörg Böhme 94824c807f Add missing std:: namespace 2015-03-20 00:23:58 +01:00
Jonathan Wang 334654de06 intrusive_ptr: add converting ctor for intrusive_ptr<U> with move semantics. Analagous to
template <class U> intrusive_ptr(intrusive_ptr<U> const&)
2015-03-15 20:17:55 -04:00
Fedor Sergeev 99762e7dde Add <cstddef> include. fixes #11066 2015-03-01 23:14:28 +04:00
Peter Dimov 7104e7dc7e Add weak_from_this. 2015-01-25 20:10:57 +02:00
Peter Dimov 3fd53ced83 Make shared_from_raw and weak_from_raw return consistent values in a constructor, regardless of order, as suggested by Gavin Lambert in #8. 2015-01-22 20:47:01 +02:00
Peter Dimov 75de3dbcf1 Add clang-specific sp_counted_base. 2015-01-22 05:13:27 +02:00
Peter Dimov 7faec4265b Fix conflicts with the I macro in <complex.h>. 2015-01-21 19:55:42 +02:00
Peter Dimov a74329794c Fix ambiguous 'detail' errors under msvc-8.0. 2015-01-16 20:53:27 +02:00
Peter Dimov f65c57d9d2 Fix explicit instantiation regression 2014-11-12 19:04:29 +02:00
Peter Dimov 7b71068b52 Extend nullptr_t workaround to Intel C++. 2014-08-09 00:26:00 +03:00
Peter Dimov 8de3e84021 Fix shared_from_raw_test4 failures. 2014-08-06 21:28:03 +03:00
Peter Dimov 528195233b Merge branch 'aix_fix' of https://github.com/ibmsoe/smart_ptr into develop 2014-07-30 17:51:32 +03:00
Axel Ismirlian 8c49f5a637 Avoid potential conflict between AIX's and Lambda's var.
In ../boost/lambda/detail/lambda_functor_base.hpp there is variable called var that conflicts with an AIX system variable. The entire file (sched.h) does not need to be included only the one function it uses (sched_yield).
2014-07-30 09:23:21 -05:00
Glen Fernandes 88f0a98d71 Rename member because _CRTDBG_MAP_ALLOC in VS does not allow it
_CRTDBG_MAP_ALLOC has issues with member functions named "free".
2014-07-25 20:33:29 -07:00
Andrey Semashev 40387ef654 Fix compilation problems with clang
Apparently, clang presents itself as gcc 4.2 even though it supports the final version of rvalue references. Restrict the workaround to gcc only.
2014-07-16 16:43:35 +04:00
Andrey Semashev b1beb11a45 Fix warnings on gcc 4.4
Added a special version of sp_forward for an outdated version of rvalue references supported by gcc 4.4. The compiler would create a temporary and return an rvalue reference to it in the original code. This resulted in warnings about 'returning reference to temporary'.

The added version is similar to std::forward on that compiler, except it doesn't prohibit template argument deduction (which is in line with the original sp_forward).
2014-07-14 22:33:16 +04:00
Peter Dimov bf3e9cc7af -Wshadow fixes. 2014-07-12 20:35:14 +03:00
Peter Dimov d6841e6d71 Remove trailing whitespace. 2014-06-11 22:29:15 +03:00
Peter Dimov 56ae9f86c1 Merge pull request #4 from stgates/winrt
[winrt support] Replacing banned APIs Sleep and InitializeCriticalSection
2014-06-11 22:12:25 +03:00
Steve Gates 1a74757cfa Adding missing include for boost\predef.h. 2014-06-11 11:44:25 -07:00
Steve Gates 07e222217b Updating to use BOOST_PLAT_WINDOWS_RUNTIME based on review feedback. 2014-06-11 11:33:03 -07:00
Steve Gates 71c9165119 Replacing banned APIs Sleep and InitializeCriticalSection for Windows store and phone. 2014-06-10 22:07:51 -07:00
Peter Dimov f32669400c Remove headers moved into core. 2014-06-03 20:25:38 +03:00
Peter Dimov b550e028f5 Move boost/memory_order.hpp to Boost.Atomic 2014-05-20 23:33:03 +03:00
Glen Fernandes d523c3423e Use Boost.Align for alignment 2014-05-04 08:20:37 -07:00
Glen Fernandes 1968d17d2f Use add_rvalue_reference in make_unique overload 2014-03-12 20:27:36 -07:00
Andrey Semashev d586469d60 Fix warnings about struct/class mismatch
ms_allocator_state template was declared as class but its specializations were as structs. This caused Clang 3.2 warnings. The commit changes ms_allocator_state declaration to struct to fix that.
2014-03-08 18:31:31 +03:00
Peter Dimov fbb851097f Disable the std::atomic spinlock implementation on Clang 2014-03-01 02:14:56 +02:00
Glen Fernandes 75add10b1d Simplify ms_allocator and as_allocator design 2014-02-28 10:19:50 -08:00
Peter Dimov 3e625c07e8 Switch to sp_interlocked.hpp 2014-02-25 01:32:19 +02:00
Glen Fernandes 75cab39801 Drop the BOOST_NO_CXX11_STD_ALIGN-undefined path
Until the merge of Boost.Config develop to master
2014-02-24 08:35:59 -08:00
Glen Fernandes 38cb523713 Derive empty base optimization from rebound allocator 2014-02-18 00:16:57 -08:00
Glen Fernandes 5f1d4eae4f Factor out alignment code into sp_align 2014-02-16 12:15:29 -08:00