summaryrefslogtreecommitdiff
path: root/boost/boost_1_44_0-gcc4.7.patch
diff options
context:
space:
mode:
Diffstat (limited to 'boost/boost_1_44_0-gcc4.7.patch')
-rw-r--r--boost/boost_1_44_0-gcc4.7.patch49
1 files changed, 49 insertions, 0 deletions
diff --git a/boost/boost_1_44_0-gcc4.7.patch b/boost/boost_1_44_0-gcc4.7.patch
new file mode 100644
index 000000000000..842a92a681d6
--- /dev/null
+++ b/boost/boost_1_44_0-gcc4.7.patch
@@ -0,0 +1,49 @@
+--- misc/boost_1_44_0/boost/smart_ptr/shared_ptr.hpp 2009-12-14 18:44:19.000000000 +0100
++++ misc/build/boost_1_44_0/boost/smart_ptr/shared_ptr.hpp 2012-03-28 08:32:46.772493003 +0200
+@@ -207,7 +207,17 @@
+ boost::detail::sp_enable_shared_from_this( this, p, p );
+ }
+
+-// generated copy constructor, destructor are fine
++// generated copy constructor, destructor are fine...
++
++#if defined( BOOST_HAS_RVALUE_REFS )
++
++// ... except in C++0x, move disables the implicit copy
++
++ shared_ptr( shared_ptr const & r ): px( r.px ), pn( r.pn ) // never throws
++ {
++ }
++
++#endif
+
+ template<class Y>
+ explicit shared_ptr(weak_ptr<Y> const & r): pn(r.pn) // may throw
+--- misc/boost_1_44_0/boost/smart_ptr/weak_ptr.hpp 2009-12-14 18:44:19.000000000 +0100
++++ misc/build/boost_1_44_0/boost/smart_ptr/weak_ptr.hpp 2012-03-28 10:31:57.607462325 +0200
+@@ -40,8 +40,24 @@
+ {
+ }
+
+-// generated copy constructor, assignment, destructor are fine
++// generated copy constructor, assignment, destructor are fine...
+
++#if defined( BOOST_HAS_RVALUE_REFS )
++
++// ... except in C++0x, move disables the implicit copy
++
++ weak_ptr( weak_ptr const & r ): px( r.px ), pn( r.pn ) // never throws
++ {
++ }
++
++ weak_ptr & operator=( weak_ptr const & r ) // never throws
++ {
++ px = r.px;
++ pn = r.pn;
++ return *this;
++ }
++
++#endif
+
+ //
+ // The "obvious" converting constructor implementation: