Commit Graph

718 Commits

Author SHA1 Message Date
Peter Dimov
bd5b684fd3 Move smart_ptr into boost/smart_ptr/*.hpp (refs #2239).
[SVN r51509]
2014-02-12 16:41:17 +02:00
Peter Dimov
6ede4ec4c6 Factored out boost/detail/lightweight_thread.hpp.
[SVN r44638]
2014-02-12 16:41:16 +02:00
Peter Dimov
aab1328e06 spinlock_nt.hpp added, Cygwin fixes.
[SVN r44055]
2014-02-12 16:41:16 +02:00
Anthony Williams
451c71c1bd Added changes from David Deakins to enable compilation on Windows CE
[SVN r40679]
2014-02-12 16:41:16 +02:00
Peter Dimov
6341b8802a Windows CE patch by Michael Fink
[SVN r33986]
2014-02-12 16:41:15 +02:00
Anthony Williams
e274885fd2 Win32 implementation of boost::timed_mutex
[SVN r33272]
2014-02-12 16:41:15 +02:00
Peter Dimov
82fe5f5095 Fixed a couple of syntax errors (reported by Juergen Hunold)
[SVN r31946]
2014-02-12 16:41:14 +02:00
Peter Dimov
8c50214e3f Fixed bug #1370716, static shared_ptr instances not working w/ quick_allocator
[SVN r31931]
2014-02-12 16:41:14 +02:00
Anthony Williams
21198d07fd Moved BOOST_INTERLOCKED_READ stuff into its own header
[SVN r31098]
2014-02-12 16:41:14 +02:00
Anthony Williams
b4c8cf3958 Removed :: qualification on _Interlocked functions
[SVN r31097]
2014-02-12 16:41:13 +02:00
Anthony Williams
77aeaee7a7 Added BOOST_INTERLOCKED_EXCHANGE_POINTER in all branches of the #if
[SVN r31012]
2014-02-12 16:41:13 +02:00
Anthony Williams
677a0777d2 Added InterlockedExchangePointer
[SVN r31010]
2014-02-12 16:41:12 +02:00
Anthony Williams
7c7250379b InterlockedCompareExchangePointer is only intrinsic on 64 bit platforms, otherwise it's just a synonym for InterlockedCompareExchange
[SVN r30951]
2014-02-12 16:41:12 +02:00
Anthony Williams
142eb95986 Added interlocked compare/exchange for pointers, and interlocked_read for values and pointers
[SVN r30941]
2014-02-12 16:41:11 +02:00
Anthony Williams
d9f24f882e New version of call_once for win32
[SVN r30847]
2014-02-12 16:41:11 +02:00
Peter Dimov
0fd3947e19 <intrin.h> appears broken.
[SVN r27737]
2014-02-12 16:41:10 +02:00
Peter Dimov
43bc30e576 Split sp_counted_base into no threads (nt), win32 lock-free (w32) and pthreads (pt)
[SVN r27729]
2014-02-12 16:41:10 +02:00
Douglas Gregor
e0ec2a0aaa Converted to Boost Software License, Version 1.0
[SVN r24055]
2014-02-12 16:41:10 +02:00
Peter Dimov
5320981cbb _MSC_VER use clarified.
[SVN r20992]
2014-02-12 16:41:09 +02:00
Peter Dimov
d676bac36a -Wundef fixes.
[SVN r18788]
2014-02-12 16:41:09 +02:00
Peter Dimov
ec1c6ed414 Fixes for Comeau with Borland as backend.
[SVN r17588]
2014-02-12 16:41:08 +02:00
Peter Dimov
ce36b11fd5 Made the default page size 512 (g++ 2.96 on Red Hat 7.2 dislikes 496.)
[SVN r17272]
2014-02-12 16:41:08 +02:00
Peter Dimov
eee70bdcab Added BOOST_QA_PAGE_SIZE.
[SVN r17270]
2014-02-12 16:41:07 +02:00
Peter Dimov
97eed20d9b Quick_allocator updates.
[SVN r17267]
2014-02-12 16:41:07 +02:00
Peter Dimov
6b6b63ef37 Dave's quick_allocator added, #define BOOST_SP_USE_QUICK_ALLOCATOR to make shared_ptr use it.
[SVN r17087]
2014-02-12 16:41:07 +02:00
Glen Fernandes
7ce5b6b2a9 Fix use of ms_init in no C++11 allocator case 2014-02-11 08:39:52 -08:00
Glen Fernandes
7e3ae44bc2 Fix use of size in make_shared for arrays 2014-02-10 21:09:13 -08: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
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
Peter Dimov
5f69684c8f Revert "SmartPointer: Remove obsolete GCC version checks."
This reverts commit 0e6ddb843e.
2013-12-07 19:21:06 +02:00
Peter Dimov
70ffd2921f Revert "Remove BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION"
This reverts commit 8767b9580e.
2013-12-07 19:20:36 +02:00
Peter Dimov
00aee2c7dc Revert "Simplify multi-component ifdefs containing BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION"
This reverts commit f5e6e4063e.
2013-12-07 19:20:12 +02:00
Peter Dimov
85d8056368 Revert "Remove remaining occurances of BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION"
This reverts commit 56b0853887.
2013-12-07 19:19:46 +02:00
Stephen Kelly
56b0853887 Remove remaining occurances of BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
These evaded scripting.

[SVN r86249]
2013-10-11 23:22:36 +00:00
Stephen Kelly
f5e6e4063e Simplify multi-component ifdefs containing BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
[SVN r86248]
2013-10-11 23:20:59 +00:00
Stephen Kelly
8767b9580e Remove BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
Process #ifndef...#endif conditions.

[SVN r86244]
2013-10-11 23:15:00 +00:00
Stephen Kelly
0e6ddb843e SmartPointer: Remove obsolete GCC version checks.
[SVN r86063]
2013-09-30 15:57:14 +00:00
Stephen Kelly
14be9eb90f Remove use of obsolete BOOST_NO_TEMPLATED_STREAMS macro.
It was only defined for no-longer-supported-gcc.

[SVN r86062]
2013-09-30 15:56:52 +00:00
Peter Dimov
fa91b7d020 Remove #pragma intrinsic( _mm_pause ); not needed, not supported on Intel. Refs #6646, #7318.
[SVN r85995]
2013-09-29 11:31:17 +00:00
Peter Dimov
382fb54a52 Revert MSC_VER changes.
[SVN r85993]
2013-09-29 10:43:15 +00:00
Stephen Kelly
e4f24e4d3d Remove obsolete MSVC check from pragma guard
git grep -h -B1 "^#\s*pragma once" | grep -v pragma | sort | uniq

is now clean.

[SVN r85952]
2013-09-26 13:02:51 +00:00
Stephen Kelly
7d1c527ac0 SmartPtr: Remove obsolete MSVC version checks.
[SVN r85929]
2013-09-26 09:39:50 +00:00
Andrey Semashev
0dc1faa6d3 Disabled bogus MSVC warning.
[SVN r85575]
2013-09-05 17:23:33 +00:00
Andrey Semashev
7b9354fcf3 Changed intrusive_ref_counter to follow CRTP design.
[SVN r85547]
2013-09-01 21:05:14 +00:00
Andrey Semashev
a7d96b4762 Extracted intrusive_ref_counter from Boost.Log. The extracted version supports customizing the reference counter nature, two policies provided: thread_unsafe_counter and thread_safe_counter.
[SVN r85535]
2013-08-31 19:54:11 +00:00
Peter Dimov
82e178f043 Avoid stack overflow in make_shared. Refs #4256.
[SVN r83198]
2013-02-28 08:02:09 +00:00
Glen Fernandes
46d119c385 Identifier renaming in allocate_array_helper, array_deleter, make_array_helper
function parameters to satisfy higher warning levels.

[SVN r82971]
2013-02-18 09:33:18 +00:00
Peter Dimov
e5950adc43 Check for BOOST_NO_CXX11_RVALUE_REFERENCES in addition to BOOST_NO_CXX11_SMART_PTR. Refs #8055.
[SVN r82927]
2013-02-16 17:18:17 +00:00
Glen Fernandes
32a28ec462 Support BOOST_NO_EXCEPTIONS in detail/array_utility.hpp to allow use when exceptions are disabled
[SVN r82408]
2013-01-08 21:39:54 +00:00
Peter Dimov
ef817e91d2 Replace std::nullptr_t with boost::detail::sp_nullptr_t.
[SVN r82351]
2013-01-04 15:41:13 +00:00
Peter Dimov
e8be24c003 Untabify.
[SVN r82188]
2012-12-23 16:05:00 +00:00
Glen Fernandes
e36689bd5e Correct call to init_list in make_shared and allocate_shared. Move g++ failing case into separate test to not mask other issues.
[SVN r81905]
2012-12-13 18:02:25 +00:00
Peter Dimov
1c070b3a32 Replace use of BOOST_HAS_VARIADIC_TMPL with !BOOST_NO_CXX11_VARIADIC_TEMPLATES.
[SVN r81901]
2012-12-13 16:57:55 +00:00
Peter Dimov
647f67aabf Replace use of BOOST_HAS_RVALUE_REFS with !BOOST_NO_CXX11_RVALUE_REFERENCES.
[SVN r81900]
2012-12-13 16:48:57 +00:00
Glen Fernandes
619b168614 Two detail utility functions identifier renaming reverted
[SVN r81887]
2012-12-13 04:20:23 +00:00
Glen Fernandes
4ba8d879f1 Use BOOST_NO_CXX11_RVALUE_REFERENCES and BOOST_NO_CXX11_VARIADIC_TEMPLATES instead of the legacy macros. Rename identifiers of detail utility functions.
[SVN r81886]
2012-12-13 04:04:23 +00:00
Glen Fernandes
db542de908 Use _internal_get_untyped_deleter in allocate_shared_array and make_shared_array
[SVN r81865]
2012-12-11 20:51:05 +00:00
Peter Dimov
67f5e9825e Add allocate_shared_noinit.
[SVN r81861]
2012-12-11 18:32:24 +00:00
Peter Dimov
fd52dbc411 Change make_shared to use the new _internal_get_untyped_deleter. Refs #6830.
[SVN r81860]
2012-12-11 18:21:29 +00:00
Glen Fernandes
6e269872df Explicitly name detail array construct overloads for different parameter types.
[SVN r81859]
2012-12-11 18:04:09 +00:00
Glen Fernandes
ecceb710de Add overloads of allocate_shared_noinit to complement make_shared_noinit
[SVN r81858]
2012-12-11 17:42:47 +00:00
Glen Fernandes
6b0d96af96 Convert function parameter for inner array size into template parameter and make identifiers in array_deleter consistent with those in array_utility
[SVN r81782]
2012-12-08 05:25:50 +00:00
Peter Dimov
8093967da7 Use explicit operator bool when available; add nullptr support to shared_ptr. Refs #4116.
[SVN r81780]
2012-12-08 00:51:59 +00:00
Glen Fernandes
f390d9e265 Change ordering of overload definitions in array_utility.hpp
[SVN r81759]
2012-12-07 16:40:20 +00:00
Glen Fernandes
ea22982865 Correctly use r-value reference semantics for Args and T in array utilities
[SVN r81752]
2012-12-07 07:42:42 +00:00
Glen Fernandes
09e77bc8df Optimization in initialization overload of array_construct for compilers to optimize it into the equivalent of a memset
[SVN r81750]
2012-12-07 06:45:26 +00:00
Glen Fernandes
b3f2ebedbc Special case array construction for trivially default-constructible types and array destruction for trivially-destroyable types.
[SVN r81749]
2012-12-07 03:10:22 +00:00
Glen Fernandes
1209531fe0 Refactoring in detail array_deleter before adding support for special-casing trivially default-constructible construction and trivially destroyable destruction.
[SVN r81748]
2012-12-07 01:53:35 +00:00
Peter Dimov
7a733263da Fix get_pointer for the array case, add operator= for unique_ptr, update auto_ptr signatures to use rvalue reference when available.
[SVN r81730]
2012-12-06 03:18:54 +00:00
Glen Fernandes
2d3cc0db7d Update documentation and remove unused code.
[SVN r81703]
2012-12-04 11:21:24 +00:00
Glen Fernandes
188602581d Add overloads of make_shared and allocate_shared for arrays for E&& where E is typename boost::detail::array_base<T>::type
[SVN r81700]
2012-12-04 06:06:23 +00:00
Glen Fernandes
1adf546ddb Minor cosmetic change in detail array_deleter
[SVN r81685]
2012-12-03 05:56:17 +00:00
Glen Fernandes
5e5ff387fa For fixed size arrays upon constructor exception thrown destroy correctly.
[SVN r81684]
2012-12-03 05:41:34 +00:00
Glen Fernandes
500913db6d Make specializations of detail array_deleter consistent.
[SVN r81681]
2012-12-02 22:05:31 +00:00
Glen Fernandes
cfd4152291 Change make_shared and allocate_shared array form overload for size and inner array initialization list to use const T(&)[N] instead of std::initializer_list<T>.
[SVN r81658]
2012-12-01 22:43:57 +00:00
Glen Fernandes
f5adfb0963 Code consistency: Use the same style of #if conditional compilation checks in allocate_shared_array.hpp and make_shared_array.hpp.
[SVN r81643]
2012-12-01 05:40:06 +00:00
Glen Fernandes
8597433028 Use BOOST_NO_CXX11_UNIFIED_INITIALIZATION_SYNTAX instead for certain overloads of make_shared and allocate_shared
[SVN r81642]
2012-12-01 05:23:37 +00:00
Glen Fernandes
4da0e2b7fc Use const T (&)[N] for fixed size arrays instead of std::initializer<T> in overloads of make_shared and allocate_shared for arrays.
[SVN r81641]
2012-12-01 04:36:41 +00:00
Glen Fernandes
39ff002d2e More consistency in type parameters in helper details of allocate_shared and make_shared.
[SVN r81610]
2012-11-28 07:32:30 +00:00
Glen Fernandes
fceea2e584 Consistent formatting across overloads of make_shared and allocate_shared (array forms).
[SVN r81609]
2012-11-28 06:26:50 +00:00
Glen Fernandes
b17205ded7 Optimization: Add specializations of make_array_helper, allocate_array_helper, and array_deleter for fixed size arrays to avoid storing size.
[SVN r81608]
2012-11-28 06:07:45 +00:00
Peter Dimov
d74c09dd5a Apply patch from #7722. Refs #7722.
[SVN r81488]
2012-11-22 17:39:27 +00:00
Peter Dimov
97d32745aa Update shared_ptr casts.
[SVN r81463]
2012-11-21 17:43:48 +00:00
Peter Dimov
7835914d83 Borland fixes.
[SVN r81437]
2012-11-20 15:22:19 +00:00
Glen Fernandes
ddfcc5f417 Make make_shared_array.hpp and allocate_shared_array.hpp consistent with namespace qualification in rest of smart_ptr.
[SVN r81409]
2012-11-18 02:51:06 +00:00
Glen Fernandes
79b229adcd Cosmetic changes in make_shared_array.hpp and allocate_shared_array.hpp
[SVN r81407]
2012-11-17 22:20:32 +00:00
Peter Dimov
94b6487ca1 Replace std::forward with detail::sp_forward.
[SVN r81399]
2012-11-17 16:21:41 +00:00
Peter Dimov
cf769b94a7 Apply BOOST_NOEXCEPT patch. Refs #7523.
[SVN r81368]
2012-11-16 15:05:25 +00:00
Peter Dimov
7adb1cc1ec Reorder HP aCC and g++ #ifdefs. Refs #7693.
[SVN r81348]
2012-11-14 18:24:05 +00:00
Glen Fernandes
da9524d637 Minor style change: Fix indentation in allocate_shared_array.hpp and make_shared_array.hpp
[SVN r81342]
2012-11-14 15:33:30 +00:00
Glen Fernandes
6b2556edfb Add additional overload for allocate_shared and make_shared array forms that take initializer list of T for the array types T[M][N]
[SVN r81341]
2012-11-14 15:18:50 +00:00
Glen Fernandes
fa513340d7 Tidy long line formatting in allocate_shared_array.hpp and make_shared_array.hpp
[SVN r81277]
2012-11-10 02:33:48 +00:00
Glen Fernandes
0e90213746 Change traits for initializer list for g++
[SVN r81276]
2012-11-10 02:17:02 +00:00
Glen Fernandes
980070e63f Add final overload of make_shared and allocate_shared (array forms) for T[][N] with C++11 initializer lists.
[SVN r81275]
2012-11-10 01:33:29 +00:00
Peter Dimov
5bdde37414 Updated shared_array to match shared_ptr. Refs #1113.
[SVN r81272]
2012-11-10 00:04:49 +00:00
Peter Dimov
2aaa913b11 Keep old definition of sp_assert_convertible when BOOST_SP_NO_SP_CONVERTIBLE is set.
[SVN r81271]
2012-11-09 23:27:02 +00:00
Glen Fernandes
8cc50a5ce9 Add assertion to overload of make_shared and allocate_shared for T[N] with initializer lists. Rename detail type to be more intuitive.
[SVN r81267]
2012-11-09 18:01:39 +00:00
Glen Fernandes
2731957b5b Add additional overload for make_shared and allocate_shared for arrays for fixed size arrays and initializer lists.
[SVN r81266]
2012-11-09 17:30:07 +00:00
Glen Fernandes
fe06c120b9 Add overloads to support fixed size arrays, T[N], to allocate_shared (variadic) and make_shared (variadic) and make_shared_noinit.
[SVN r81265]
2012-11-09 17:12:56 +00:00
Glen Fernandes
ffa3327817 For allocate_shared and make_shared: Separate test case that g++ does support yet. Remove macros testing for no partial specialization in traits. Add additional traits.
[SVN r81261]
2012-11-09 16:06:48 +00:00
Peter Dimov
999c284109 Disable make_shared for arrays when the compiler doesn't support partial specialization or SFINAE.
[SVN r81260]
2012-11-09 12:37:03 +00:00
Glen Fernandes
d512eaaa0f Change make_shared and allocate_shared array form semantics with initializer lists overload that takes no size.
[SVN r81259]
2012-11-09 10:14:55 +00:00
Glen Fernandes
730980f3ee Clean up code in allocate_shared_array.hpp and make_shared_array.hpp
[SVN r81258]
2012-11-09 09:14:23 +00:00
Glen Fernandes
3d50db11b9 Add C++11 initializer list support for make_shared and allocate_shared array forms.
[SVN r81257]
2012-11-09 06:17:05 +00:00
Peter Dimov
aa7562c3e5 Add support for shared_ptr<X[N>.
[SVN r81253]
2012-11-08 18:07:49 +00:00
Peter Dimov
945c013a12 Fix typo.
[SVN r81239]
2012-11-07 23:45:31 +00:00
Peter Dimov
df544871d7 Add missing semicolon.
[SVN r81238]
2012-11-07 23:41:52 +00:00
Glen Fernandes
89190ca17e Simplify array_deleter interface
[SVN r81237]
2012-11-07 18:58:41 +00:00
Glen Fernandes
5d9312239c Update allocate_shared and make_shared to treat multidimensional array as single dimension. Remove detail array_helper. Add detail array traits. Update tests.
[SVN r81236]
2012-11-07 18:37:17 +00:00
Glen Fernandes
93b5cace12 Fix array_helper (create_noinit and use of args...).
[SVN r81235]
2012-11-07 15:36:15 +00:00
Glen Fernandes
dbea328b8b Don't treat array_helper create and create_noinit for array types as a special case.
[SVN r81233]
2012-11-07 15:25:55 +00:00
Glen Fernandes
734b5d1354 Update smart_ptr/detail/array_helper to have create and create_noinit for non-array case.
[SVN r81231]
2012-11-07 15:04:04 +00:00
Peter Dimov
0467af1b83 Fix sp_convertible<T const[], T const[]>.
[SVN r81230]
2012-11-07 15:00:24 +00:00
Glen Fernandes
dc5406aa5a Add support for make_shared of array of arrays. Correctly destroy elements and construct elements for the variadic template constructor variants.
[SVN r81229]
2012-11-07 14:42:10 +00:00
Peter Dimov
322bcd7efa Rename make_shared.hpp to make_shared_object.hpp, include from make_shared.hpp.
[SVN r81224]
2012-11-06 16:29:56 +00:00
Peter Dimov
bb72e0a092 Add specialization of sp_if_not_array<T[N]>.
[SVN r81223]
2012-11-06 16:23:09 +00:00
Peter Dimov
d8eb2fc105 Fix g++ issues.
[SVN r81222]
2012-11-06 15:10:32 +00:00
Glen Fernandes
6662ae7242 Add allocate_shared and make_shared for shared_ptr arrays of runtime size. Fulfills need for allocate_shared_array and make_shared_array.
[SVN r81219]
2012-11-06 14:17:32 +00:00
Peter Dimov
a30e291022 Disable make_shared<T> overloads when T is Q[].
[SVN r81171]
2012-11-04 14:53:51 +00:00
Peter Dimov
0b6cab9f2f Fix shared_ptr<T[]> EDG issues.
[SVN r81159]
2012-11-03 14:49:45 +00:00
Peter Dimov
8c15401ea7 Implement shared_ptr<X[]>, weak_ptr<X[]>. Refs #1113.
[SVN r81149]
2012-11-02 17:41:33 +00:00
Peter Dimov
03ae5cdbc6 Add back _AIX-specific #ifdef that was mistakenly removed. Refs #6308. Refs #6667.
[SVN r81134]
2012-11-01 17:50:41 +00:00
Peter Dimov
0c22e55f3e Add shared_ptr constructor taking std::unique_ptr. Refs #6625.
[SVN r81131]
2012-10-31 22:16:20 +00:00
Peter Dimov
10dcb8db7c Define BOOST_SP_HAS_SYNC when __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 is set. Refs #7141.
[SVN r81128]
2012-10-31 20:37:21 +00:00
Peter Dimov
f2d4b67a48 Enable __sync primitives on VACPP. Refs #6901.
[SVN r81127]
2012-10-31 20:30:27 +00:00
Peter Dimov
16084637a6 Do not use sp_counted_base_gcc_ppc on AIX. Refs #6996.
[SVN r81126]
2012-10-31 20:16:56 +00:00
Peter Dimov
3e447c919c Add get_pointer overloads for std::unique_ptr, std::shared_ptr. Refs #4185.
[SVN r81125]
2012-10-31 20:04:14 +00:00
Peter Dimov
b0f72d7b3d Add check for __ARM_ARCH_7S__. Refs #7599.
[SVN r81119]
2012-10-31 16:04:03 +00:00
Bryce Adelstein-Lelbach
4c98df7c57 Update smart_ptr for the latest version of the PathScale compiler.
[SVN r80988]
2012-10-14 23:06:12 +00:00
Peter Dimov
1029ae0ea5 Apply patches from #6667. Refs #6667.
[SVN r77316]
2012-03-12 17:33:50 +00:00
Peter Dimov
27a312228c Apply patch from #5331. Refs #5331.
[SVN r77315]
2012-03-12 17:31:21 +00:00
Peter Dimov
2c29f1e5a9 Warning 4284 is obsolete. Refs #6332. See also #4433.
[SVN r76219]
2011-12-29 22:27:37 +00:00
Peter Dimov
33ba2c4722 sp_counted_base_aix.hpp: switch to lwsync and builtins. Refs #6308.
[SVN r76123]
2011-12-23 23:10:37 +00:00
Peter Dimov
faf212f4aa Add memory barriers to sp_counted_base_aix.hpp. Refs #6308.
[SVN r76119]
2011-12-23 15:03:39 +00:00
Peter Dimov
57a5441ebf Creatively apply patch from #2603. Refs #2603.
[SVN r76111]
2011-12-23 03:00:05 +00:00
Peter Dimov
017ab7e2ee Apply AIX patch from #6308. Refs #6308.
[SVN r76086]
2011-12-21 00:36:55 +00:00
Peter Dimov
e4cb5e131f Add hash_value for intrusive_ptr. Refs #6087.
[SVN r75392]
2011-11-07 18:46:46 +00:00
Peter Dimov
fbe4ddf4a2 Add get_deleter for shared_array. Refs #4493.
[SVN r75390]
2011-11-07 18:19:24 +00:00
Peter Dimov
288fb7efcf Add ARM memory barriers. Refs #5372.
[SVN r75389]
2011-11-07 17:50:31 +00:00
Peter Dimov
9d9e6350f2 Apply patch from #6099. Refs #6099.
[SVN r75385]
2011-11-07 15:03:44 +00:00
Peter Dimov
7e9664396a Add copy constructor/assignment - in C++0x, move disables implicit copy.
[SVN r73202]
2011-07-17 20:35:44 +00:00
Emil Dotchevski
b4b415553c Lock-free sp_counted_base for SNC/PS3, thanks Peter Dimov
[SVN r72437]
2011-06-06 18:56:07 +00:00
Peter Dimov
f76a8d95d8 Apply suggested patch. Refs #5327.
[SVN r70452]
2011-03-23 00:29:22 +00:00
Peter Dimov
634866c28a Honor BOOST_SP_USE_PTHREADS. Refs #5018.
[SVN r69262]
2011-02-24 23:35:22 +00:00
Peter Dimov
b18b47770d Add support for BOOST_SP_NO_SYNC. Refs #5019.
[SVN r69261]
2011-02-24 23:30:22 +00:00
Peter Dimov
69aa01ec00 Add hash_value for shared_ptr; prevents hash_value( bool ) from being used. Refs #5216.
[SVN r69260]
2011-02-24 23:24:54 +00:00
Peter Dimov
e3d2f2ee6b Apply suggested fix. Refs #4127.
[SVN r69251]
2011-02-24 22:05:04 +00:00
Peter Dimov
593093e46d Fix make_shared to not copy the deleter. Refs #4256. Refs #3875.
[SVN r69250]
2011-02-24 21:51:21 +00:00
Peter Dimov
9196247dea Apply patch. Refs #4478.
[SVN r69246]
2011-02-24 20:53:46 +00:00
Peter Dimov
53d5d086ea Warning 4284 is obsolete. Refs #4433.
[SVN r69245]
2011-02-24 20:48:17 +00:00
Peter Dimov
1426b0bbdd Apply patch to allow perfect forwarding without variadics. Refs #4892.
[SVN r69244]
2011-02-24 20:41:29 +00:00
Peter Dimov
4fabf9b352 Add include guards, make_shared.hpp to smart_ptr.hpp. Refs #4288. Refs #5189.
[SVN r69242]
2011-02-24 20:29:38 +00:00
Bryce Adelstein-Lelbach
a2fc6e12da Intel 11.0 doesn't provide __sync intrinsics - this is added in Intel 11.1.
[SVN r69019]
2011-02-19 01:33:46 +00:00
Bryce Adelstein-Lelbach
c3b51e201b Pathscale-4.0 configuration code/workarounds.
[SVN r68142]
2011-01-14 02:59:34 +00:00
Hartmut Kaiser
825786d59a Re-added sunpro specific initialization
[SVN r66091]
2010-10-19 13:33:00 +00:00
Hartmut Kaiser
37f10d500d Fixing sp_typeinfo for clang and gcc 4.5.1
[SVN r66031]
2010-10-17 02:24:40 +00:00
Peter Dimov
3c84388186 Resolve the ambiguity between the zero argument make_shared and the variadic one. Refs #3856.
[SVN r62248]
2010-05-26 18:18:10 +00:00
Peter Dimov
a46d405778 DWORD is unsigned long, not unsigned int. Refs #4217.
[SVN r62246]
2010-05-26 17:49:37 +00:00
Peter Dimov
2e53b1eb38 Applied patch for Sun C++. Refs #4199.
[SVN r62245]
2010-05-26 17:43:58 +00:00
Peter Dimov
7aac2f3263 Fix detail::forward to work with rvalue references v2.
[SVN r61574]
2010-04-26 12:16:55 +00:00
Steven Watanabe
458dffdab9 Work around over-eager ADL with msvc-10.0. Refs #4108
[SVN r61344]
2010-04-17 20:13:27 +00:00
Peter Dimov
f7919f0b9f Borland 6.21 still needs the workaround. Refs #4067.
[SVN r61074]
2010-04-05 18:53:58 +00:00
Peter Dimov
ae34be773f Qualify detail:: references. Detabify sp_typeinfo_test.cpp.
[SVN r58306]
2009-12-11 22:36:35 +00:00
Peter Dimov
1b91c1dbea Avoid static destruction order issues with quick_allocator.
[SVN r58275]
2009-12-10 20:34:46 +00:00
Peter Dimov
577528812a Fix sp_typeinfo to match the interface of std::type_info.
[SVN r58127]
2009-12-03 20:31:01 +00:00
Peter Dimov
3824a6b156 Add memory_order_consume.
[SVN r58094]
2009-12-02 11:47:58 +00:00
Peter Dimov
b691be0af9 Remove std::move references. Refs #3570.
[SVN r57957]
2009-11-26 21:20:47 +00:00
Peter Dimov
fa597b877e Extend Borland workaround to 6.2.
[SVN r57955]
2009-11-26 21:04:36 +00:00
Peter Dimov
d0a9d76494 Add error checking to lwm_pthreads.hpp. Refs #2681.
[SVN r57953]
2009-11-26 20:55:05 +00:00
Peter Dimov
979e76b7e0 Enable __sync use on Intel 11.0 or later. Refs #3351.
[SVN r57951]
2009-11-26 20:17:55 +00:00
Peter Dimov
030a848c5f Fix SPARC asm operand failure. Refs #3678. Refs #3341.
[SVN r57949]
2009-11-26 18:21:21 +00:00
Frank Mori Hess
18bfaea996 Fixed perfect forwarding for make_shared() in trunk, and added
corresponding test.  Refs #2962.



[SVN r57520]
2009-11-09 18:12:35 +00:00
Frank Mori Hess
502de325ee Fixed access to enable_shared_from_raw::weak_this_ when
BOOST_NO_MEMBER_TEMPLATE_FRIENDS is defined.



[SVN r57518]
2009-11-09 16:33:35 +00:00
Frank Mori Hess
9f49538b37 Added weak_from_raw(), for use in conjunction with
enable_shared_from_raw base class.



[SVN r57423]
2009-11-05 21:41:38 +00:00
Frank Mori Hess
2ee5eb70f3 Brought back code which fixes get_deleter when it is called on a deleter
which has been wrapped inside a deleter_wrapper by "shared_from_raw() in 
constructors" support.


[SVN r57206]
2009-10-28 22:42:21 +00:00
Frank Mori Hess
32eb028e13 Renamed enable_shared_from_this2 to enable_shared_from_raw and
added shared_from_raw free function.  These changes fix the pointer 
value in shared_ptr which were obtained before an external shared_ptr has
taken ownership of the object (for example when a shared_ptr to
this is obtained in an object's constructor).



[SVN r57197]
2009-10-28 19:10:47 +00:00
Gennadiy Rozental
28d7e348c1 avoid C style casts
[SVN r53672]
2009-06-06 09:44:36 +00:00
Timothy Zachary Laine
fc12543814 Merged in smart_ptr changes from the sandbox/boost0x branch created for
BoostCon '09.  This adds move semantics to weak_ptr and intrusive_ptr.


[SVN r52937]
2009-05-12 16:18:15 +00:00
Peter Dimov
4b4a62513f Make ++a, where a is an atomic_count, return the new value.
[SVN r52456]
2009-04-17 20:24:01 +00:00
Peter Dimov
0368a37fde Bring back "explicit" on the auto_ptr rvalue constructor. Refs #2951.
[SVN r52454]
2009-04-17 19:51:18 +00:00
David Deakins
3dacec8e1d Have config/select_stdlib_config.hpp and config/stdlib/stlport.hpp use <cstddef> instead of <utility> to determine which standard library is in use. For std lib implementations that rely on Boost components like TypeTraits, Bind, Function, or SmartPtr, this helps to avoid circular header dependency issues, since <cstddef> is much less likely to pull in Boost libraries than <utility>.
In get_pointer.hpp, switched to using <boost/config/no_tr1/memory.hpp> instead of using <memory> directly.  As above, this helps avoid circular header dependency issues in Boost-supplemented std libs (specifically it avoids issues when <memory> pulls in pieces of Boost.SmartPtr).

These two changes were made in response to testing done with STLport 5.2.1 using the _STLP_USE_BOOST_SUPPORT option.

[SVN r52104]
2009-04-01 14:42:11 +00:00
Peter Dimov
5758e51948 Fix sp_typeinfo.hpp include. Refs #2885.
[SVN r51985]
2009-03-26 12:47:24 +00:00
Peter Dimov
287d329276 Added g++/MIPS support submitted by David Joyner. Refs #2885.
[SVN r51978]
2009-03-26 00:17:57 +00:00
Peter Dimov
d34d638998 Bring back the constructor-enabled enable_shared_from_this as enable_shared_from_this2.
[SVN r51912]
2009-03-22 21:11:17 +00:00
Peter Dimov
6f2bdddfa0 Delete enable_shared_from_this2.hpp from boost/.
[SVN r51910]
2009-03-22 20:14:13 +00:00
Peter Dimov
9227371881 Move enable_shared_from_this2.hpp to boost/smart_ptr.
[SVN r51909]
2009-03-22 20:13:16 +00:00
Peter Dimov
e88dd9fc77 Bring back the new enable_shared_from_this.
[SVN r51908]
2009-03-22 20:08:39 +00:00
Peter Dimov
0610947c4a De-optimize assignment into this_type(r).swap(*this) - turns out that they were not equivalent, leading to leaks in contrived cases. Refs #2813.
[SVN r51643]
2009-03-07 22:21:56 +00:00
Peter Dimov
9c55fbc6c2 Fix enable_shared_from_this-related tickets in trunk. Refs #2126. Refs #2584.
[SVN r51581]
2009-03-03 19:25:26 +00:00
Peter Dimov
a378c8c278 Refs #2814 (fixed in trunk.)
[SVN r51518]
2009-03-01 18:42:44 +00:00
Peter Dimov
905a3711db Refs #2525 (fixed in trunk.)
[SVN r51517]
2009-03-01 18:01:19 +00:00
Peter Dimov
ed32efcc51 Refs #2662 (applied to trunk.)
[SVN r51516]
2009-03-01 17:27:35 +00:00
Peter Dimov
eb0ff40d62 Refs #2675 (fixed in trunk.)
[SVN r51515]
2009-03-01 17:18:17 +00:00
Peter Dimov
ad1b344405 Refs #2394 (fixed in trunk.)
[SVN r51514]
2009-03-01 17:10:49 +00:00
Peter Dimov
0da6902267 Move smart_ptr into boost/smart_ptr/*.hpp (refs #2239).
[SVN r51509]
2009-03-01 16:00:42 +00:00
Peter Dimov
13f91c15f0 Sync enable_shared_from_this.hpp and shared_ptr.hpp with release.
[SVN r51485]
2009-02-28 20:02:12 +00:00
Nicola Musatti
ed79000ea8 Patch from Ticket #2342
[SVN r49153]
2008-10-06 20:17:18 +00:00
Peter Dimov
774332f85a Fix #2263. See also [48835].
[SVN r48838]
2008-09-17 22:53:53 +00:00
Peter Dimov
f5990cab65 Fix #1758. V9 is the default for g++ 4.2 or later, on 4.1 and earlier do not attempt to use CAS on V8.
[SVN r48837]
2008-09-17 22:49:18 +00:00
Peter Dimov
6175baf858 Fix #2000.
[SVN r48836]
2008-09-17 22:43:14 +00:00
Peter Dimov
2fb567b3f2 Fix #2336.
[SVN r48835]
2008-09-17 22:37:13 +00:00
Peter Dimov
2b25579338 Fix #2310.
[SVN r48834]
2008-09-17 22:31:13 +00:00
Peter Dimov
a97cd2d0cc Fix #2337.
[SVN r48833]
2008-09-17 22:21:56 +00:00
Peter Dimov
77ab953171 Updated atomic access syntax to match N2674 and the WD.
[SVN r47357]
2008-07-12 16:07:20 +00:00
Peter Dimov
2a92df56f2 #include <ia64intrin.h> in spinlock_sync.hpp as well.
[SVN r46055]
2008-06-02 20:01:30 +00:00
Peter Dimov
366472fc35 Fix #1938 in trunk
[SVN r45690]
2008-05-23 20:29:14 +00:00
Peter Dimov
2bfe13c9c4 Renamed CRITICAL_SECTION to critical_section to avoid ambiguity.
[SVN r45545]
2008-05-19 15:09:54 +00:00
John Maddock
83e2510ce5 Use the "no_tr1" version of <functional>: addition of Boost.Exception support to throw_exception has created new cyclic dependencies with Boost.TR1.
[SVN r45422]
2008-05-16 11:12:32 +00:00
Peter Dimov
31685fe551 Updated Borland workaround to properly use BOOST_NO_MEMBER_TEMPLATE_FRIENDS.
[SVN r45347]
2008-05-14 00:21:28 +00:00
Peter Dimov
05e050abe0 Disable sp_convertible for Borland 5.x.
[SVN r45346]
2008-05-13 23:53:12 +00:00
Ion Gaztañaga
d52878df88 Replaced non-ascii characters, ticket 1736
[SVN r45224]
2008-05-08 19:08:38 +00:00
Peter Dimov
4b0490c0ae Fix sp_convertible_test.cpp failure in C++0x mode.
[SVN r45194]
2008-05-07 10:15:16 +00:00
Peter Dimov
2f1b1acc7a Fix g++ 3.2 regression.
[SVN r45177]
2008-05-06 18:58:15 +00:00
Peter Dimov
efdc390bc9 intrusive_ptr::reset() added.
[SVN r45089]
2008-05-03 20:12:25 +00:00
Peter Dimov
d13f1d8694 More fixes for MSVC 6.0.
[SVN r45086]
2008-05-03 19:43:52 +00:00
Peter Dimov
83c43617af Fixes for MSVC 6.0.
[SVN r45085]
2008-05-03 19:29:01 +00:00
Peter Dimov
da323af72d Fixes for old compilers.
[SVN r45069]
2008-05-03 15:33:06 +00:00
Peter Dimov
0c4aaef77c Fix #1106.
[SVN r45068]
2008-05-03 15:07:58 +00:00
Ralf W. Grosse-Kunstleve
440fcb7ba0 missing workaround.hpp include added
[SVN r45040]
2008-05-02 19:44:56 +00:00