// Allocate storage for an iterator that will hold the point of
// insertion of the slot into the list. This is used to later remove
// the slot when it is disconnected.
+
+#if defined(BOOST_NO_CXX11_SMART_PTR)
+
std::auto_ptr<iterator> saved_iter(new iterator);
+
+#else
+
+ std::unique_ptr<iterator> saved_iter(new iterator);
+
+#endif
// Add the slot to the list.
iterator pos =
signal_base_impl* self = reinterpret_cast<signal_base_impl*>(obj);
// We won't need the slot iterator after this
+
+#if defined(BOOST_NO_CXX11_SMART_PTR)
+
std::auto_ptr<iterator> slot(reinterpret_cast<iterator*>(data));
+
+#else
+
+ std::unique_ptr<iterator> slot(reinterpret_cast<iterator*>(data));
+
+#endif
// If we're flags.clearing, we don't bother updating the list of slots
if (!self->flags.clearing) {