Commit Graph

508 Commits

Author SHA1 Message Date
Peter Dimov
90fe855f1b Fixed a couple of syntax errors (reported by Juergen Hunold)
[SVN r31946]
2014-02-12 16:37:20 +02:00
Peter Dimov
991436303d Fixed bug #1370716, static shared_ptr instances not working w/ quick_allocator
[SVN r31931]
2014-02-12 16:37:19 +02:00
Anthony Williams
b274ed4cc3 Moved BOOST_INTERLOCKED_READ stuff into its own header
[SVN r31098]
2014-02-12 16:37:18 +02:00
Anthony Williams
870a989fcf Removed :: qualification on _Interlocked functions
[SVN r31097]
2014-02-12 16:37:18 +02:00
Anthony Williams
5f7a5a5912 Added BOOST_INTERLOCKED_EXCHANGE_POINTER in all branches of the #if
[SVN r31012]
2014-02-12 16:37:17 +02:00
Anthony Williams
82db88f4fa Added InterlockedExchangePointer
[SVN r31010]
2014-02-12 16:37:17 +02:00
Anthony Williams
c8df85434e InterlockedCompareExchangePointer is only intrinsic on 64 bit platforms, otherwise it's just a synonym for InterlockedCompareExchange
[SVN r30951]
2014-02-12 16:37:16 +02:00
Anthony Williams
68517b43bd Added interlocked compare/exchange for pointers, and interlocked_read for values and pointers
[SVN r30941]
2014-02-12 16:37:16 +02:00
Anthony Williams
72ac0e8bfd New version of call_once for win32
[SVN r30847]
2014-02-12 16:37:15 +02:00
Peter Dimov
6c7578e206 <intrin.h> appears broken.
[SVN r27737]
2014-02-12 16:37:15 +02:00
Peter Dimov
3149446fe8 Split sp_counted_base into no threads (nt), win32 lock-free (w32) and pthreads (pt)
[SVN r27729]
2014-02-12 16:37:14 +02:00
Douglas Gregor
b11d734f73 Converted to Boost Software License, Version 1.0
[SVN r24055]
2014-02-12 16:37:14 +02:00
Peter Dimov
6f5f8babf4 _MSC_VER use clarified.
[SVN r20992]
2014-02-12 16:37:13 +02:00
Peter Dimov
7d7f32c3a9 -Wundef fixes.
[SVN r18788]
2014-02-12 16:37:13 +02:00
Peter Dimov
cb697fe9cb Fixes for Comeau with Borland as backend.
[SVN r17588]
2014-02-12 16:37:12 +02:00
Peter Dimov
8422135bf2 Made the default page size 512 (g++ 2.96 on Red Hat 7.2 dislikes 496.)
[SVN r17272]
2014-02-12 16:37:12 +02:00
Peter Dimov
fd60899dfb Added BOOST_QA_PAGE_SIZE.
[SVN r17270]
2014-02-12 16:37:12 +02:00
Peter Dimov
a11ab16010 Quick_allocator updates.
[SVN r17267]
2014-02-12 16:37:11 +02:00
Peter Dimov
9b9cad3f5b Dave's quick_allocator added, #define BOOST_SP_USE_QUICK_ALLOCATOR to make shared_ptr use it.
[SVN r17087]
2014-02-12 16:37:11 +02:00
Glen Fernandes
54fb49a5be Use typedef A1 (warnings about unused typedefs) 2014-02-09 11:27:22 -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
Peter Dimov
d229ae870c Subsume zero-argument overload into the variadic one 2014-02-05 01:04:20 +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
72e5fb6fd7 Add fourth form of make_unique for objects
To support initialization syntax that Args&&... cannot forward perfectly.
2014-01-29 17:16:01 -08:00
Glen Fernandes
7fef3bb40b Add top-level make_unique.hpp and documentation 2014-01-29 07:25:30 -08:00
Glen Fernandes
7806737b52 Add make_unique for arrays and objects 2014-01-28 03:58:51 -08:00
Glen Fernandes
87e5debdc2 Minor cosmetic changes in make_shared for arrays 2014-01-28 03:40:54 -08:00
Glen Fernandes
630e4f49f3 Update make_shared for arrays to conform to N3870
Update make_shared and allocate_shared for arrays to be confined to the
set of overloads specified in N3870.
2014-01-23 20:40:46 -08:00
Peter Dimov
4de3f36839 Add add_ref parameter to intrusive_ptr::reset, add tests for reset. 2013-12-26 18:47:05 +02:00
Avi Kivity
73153d5797 Add intrusive_ptr<>::detach()
This provides a way to escape from automatic reference counting, and taking
manual control of the reference.  Useful when interfacing to a C API that
expects a pointer with an elevated reference count.

Similar to std::unique_ptr<>::release().
2013-12-26 17:47:28 +02:00
Peter Dimov
d7fa365843 Remove obsolete _nmt headers. 2013-12-14 00:15:51 +02:00
Peter Dimov
6e0ee30543 Update atomic_count.hpp to match sp_counted_base.hpp. 2013-12-14 00:01:01 +02:00
Peter Dimov
fed15ad8c5 Add support for BOOST_SP_USE_STD_ATOMIC 2013-12-13 22:58:09 +02:00
Peter Dimov
bba3b446bd Check return values of pthread_* calls with BOOST_VERIFY, per #8898 2013-12-12 02:36:33 +02:00
Peter Dimov
4c8a558982 Check return values of pthread_* calls with BOOST_VERIFY, per #8904. 2013-12-12 01:42:16 +02:00
Peter Dimov
a41b81f1c8 Added shared_array constructor from nullptr, per #8894. 2013-12-12 01:22:51 +02:00
Peter Dimov
a4f853bfbc Revert "SmartPtr: Remove obsolete MSVC version checks."
This reverts commit 7d1c527ac0.
2013-12-07 19:25:05 +02:00
Peter Dimov
832ed079b9 Revert "Revert MSC_VER changes."
This reverts commit 382fb54a52.
2013-12-07 19:24:44 +02:00
Peter Dimov
d9b29beebe Revert "Remove obsolete MSVC check from pragma guard"
This reverts commit e4f24e4d3d.
2013-12-07 19:22:43 +02:00
Peter Dimov
182452e057 Revert "Remove use of obsolete BOOST_NO_TEMPLATED_STREAMS macro."
This reverts commit 14be9eb90f.
2013-12-07 19:21:31 +02:00