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
Fedor Sergeev
99762e7dde
Add <cstddef> include. fixes #11066
2015-03-01 23:14:28 +04: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
7b71068b52
Extend nullptr_t workaround to Intel C++.
2014-08-09 00:26:00 +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
Glen Fernandes
d523c3423e
Use Boost.Align for alignment
2014-05-04 08:20:37 -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
Glen Fernandes
adc0cdddff
Make as_allocator::deallocate consistent
2014-02-14 18:31:52 -08:00
Glen Fernandes
8c9e8b5556
Further simplification of ms_allocator
2014-02-12 22:15:15 -08:00
Glen Fernandes
d9333e5375
Simplify array_allocator; update documentation
2014-02-12 19:34:56 -08:00
Glen Fernandes
3d279e6c6d
Save additional sizeof(void*) bytes for arrays
2014-02-12 13:52:58 -08:00
Peter Dimov
c003fba3a0
Renamed, cleaned up interlocked.hpp; added test
2014-02-12 20:48:35 +02:00
Peter Dimov
0c29e86728
Add spinlock_std_atomic.hpp
2014-02-12 20:20:56 +02:00
Glen Fernandes
016af907bd
Make sp_counted_impl_ specialization more generic
2014-02-12 08:46:59 -08:00
Peter Dimov
208bfd78f9
Move interlocked.hpp to smart_ptr/detail
2014-02-12 16:42:24 +02:00
Glen Fernandes
57dc400fbf
Cosmetic changes in make_shared and make_unique
2014-02-10 21:04:41 -08:00
Glen Fernandes
5f485c2952
Spatial optimization for make_shared for arrays
...
Saves up to sizeof(void*) + sizeof(size_t) bytes for make_shared and saves
sizeof(void*) + sizeof(size_t) + sizeof(A) bytes for allocate_shared where A is the
supplied allocator type.
2014-02-10 20:54:48 -08:00
Glen Fernandes
c23bd41c44
Refactor make_shared for arrays
...
Refactor implementation to later simplify making an optimization [for the C++11
allocator case] for when sp_counted_impl_pda destruction invokes the
allocator's destroy function instead of the type's destructor.
2014-02-07 08:03:47 -08:00
Peter Dimov
a64cc5c41c
Use allocator)traits<>::destroy in sp_counted_impl_pda::destroy
2014-02-07 17:37:00 +02:00
Glen Fernandes
d46e3c7cbd
Simplify/tidy array_allocator and array_deleter
2014-02-06 01:38:58 -08:00
Glen Fernandes
6d73b4aa54
Work around VC11 which has broken rebind_traits
...
VC11 has only partial support for C++11 allocators. For example it has a
non-conforming rebind_alloc and rebind_traits in std::allocator_traits
because it does not support C++11 template aliases.
2014-02-04 23:56:34 -08:00
Peter Dimov
9f5822f427
Add support and test for C++11 construct/destroy in allocate_shared
2014-02-05 02:31:33 +02:00
Glen Fernandes
3ac6dbbf08
Make detail::as_allocator template C++11 friendly
2014-02-04 15:00:24 -08:00
Peter Dimov
af5141d492
Merge commit
2014-02-05 00:32:36 +02:00
Peter Dimov
90e74511f7
Add support and tests for C++11 minimal allocators
2014-02-05 00:17:34 +02:00
Glen Fernandes
51ab46a07d
Fix use of rebind_traits and rebind_alloc
2014-02-04 12:42:10 -08:00
Glen Fernandes
e8595a05af
Fix use of rebind_traits and rebind_alloc
2014-02-04 08:43:36 -08:00
Glen Fernandes
154a274916
Update make_shared for arrays to address 2070
...
This updates make_shared and allocate_shared for arrays in accordance with
report 2070 which requires that allocator_traits<A2>::construct(a2, ptr,
...) is used for construction and allocator_traits<A2>::destroy(a2, ptr)
is used for destruction instead of placement new and destructor
invocation.
2014-02-04 04:46:03 -08:00
Glen Fernandes
63a05a3576
Refactor make_array_helper and array_deleter
...
Reduce the amount of code in allocate_array_helper, make_array_helper, and
array_deleter using the empty base class optimization technique.
2014-02-03 07:28:01 -08:00
Glen Fernandes
7806737b52
Add make_unique for arrays and objects
2014-01-28 03:58:51 -08:00