aboutsummaryrefslogtreecommitdiff
path: root/cutl
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2010-07-26 15:38:37 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2010-07-26 15:38:37 +0200
commite3b8e723b1bd642d7ed19d49437a2e59d80a249e (patch)
tree4c8ddbc15d88ff282aa12fddceaa103cd25cfde1 /cutl
parent7f3437a771ae421f7f9dddc0b945c12e94d7a8c4 (diff)
Fix for shared_ptr
Diffstat (limited to 'cutl')
-rw-r--r--cutl/shared-ptr/base.txx25
1 files changed, 21 insertions, 4 deletions
diff --git a/cutl/shared-ptr/base.txx b/cutl/shared-ptr/base.txx
index dae6083..603575f 100644
--- a/cutl/shared-ptr/base.txx
+++ b/cutl/shared-ptr/base.txx
@@ -84,8 +84,8 @@ namespace cutl
counter_ops (X const* p) : counter_ (p ? bits::counter (p) : 0) {}
counter_ops (counter_ops const& x) : counter_ (x.counter_) {}
- template <typename Y>
- counter_ops (counter_ops<Y, Y> const& x) : counter_ (x.counter_) {}
+ template <typename Z>
+ counter_ops (counter_ops<Z, Z> const& x) : counter_ (x.counter_) {}
counter_ops&
operator= (counter_ops const& x)
@@ -94,9 +94,9 @@ namespace cutl
return *this;
}
- template <typename Y>
+ template <typename Z>
counter_ops&
- operator= (counter_ops<Y, Y> const& x)
+ operator= (counter_ops<Z, Z> const& x)
{
counter_ = x.counter_;
return *this;
@@ -137,6 +137,23 @@ namespace cutl
struct counter_ops<shared_base, Y>
{
counter_ops (Y const*) {}
+ counter_ops (counter_ops const&) {}
+
+ template <typename Z>
+ counter_ops (counter_ops<shared_base, Z> const&) {}
+
+ counter_ops&
+ operator= (counter_ops const&)
+ {
+ return *this;
+ }
+
+ template <typename Z>
+ counter_ops&
+ operator= (counter_ops<shared_base, Z> const&)
+ {
+ return *this;
+ }
void
reset (Y const*) {}