summaryrefslogtreecommitdiff
path: root/boost/statechart/processor_container.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/statechart/processor_container.hpp')
-rw-r--r--boost/statechart/processor_container.hpp31
1 files changed, 12 insertions, 19 deletions
diff --git a/boost/statechart/processor_container.hpp b/boost/statechart/processor_container.hpp
index 797e2f8f81..e8104b685b 100644
--- a/boost/statechart/processor_container.hpp
+++ b/boost/statechart/processor_container.hpp
@@ -24,7 +24,7 @@
#include <boost/detail/allocator_utilities.hpp>
#include <set>
-#include <memory> // std::allocator, std::auto_ptr
+#include <memory> // std::allocator, std::unique_ptr
@@ -64,7 +64,11 @@ template<
class processor_container : noncopyable
{
typedef event_processor< Scheduler > processor_base_type;
+#ifdef BOOST_NO_AUTO_PTR
+ typedef std::unique_ptr< processor_base_type > processor_holder_type;
+#else
typedef std::auto_ptr< processor_base_type > processor_holder_type;
+#endif
typedef shared_ptr< processor_holder_type > processor_holder_ptr_type;
public:
@@ -308,8 +312,7 @@ class processor_container : noncopyable
const processor_context & context )
{
processorSet_.insert( pProcessor );
- processor_holder_type holder( new Processor( context ) );
- *pProcessor = holder;
+ *pProcessor = processor_holder_type( new Processor( context ) );
}
template< class Processor, typename Arg1 >
@@ -318,8 +321,7 @@ class processor_container : noncopyable
const processor_context & context, Arg1 arg1 )
{
processorSet_.insert( pProcessor );
- processor_holder_type holder( new Processor( context, arg1 ) );
- *pProcessor = holder;
+ *pProcessor = processor_holder_type( new Processor( context, arg1 ) );
}
template< class Processor, typename Arg1, typename Arg2 >
@@ -328,8 +330,7 @@ class processor_container : noncopyable
const processor_context & context, Arg1 arg1, Arg2 arg2 )
{
processorSet_.insert( pProcessor );
- processor_holder_type holder( new Processor( context, arg1, arg2 ) );
- *pProcessor = holder;
+ *pProcessor = processor_holder_type( new Processor( context, arg1, arg2 ) );
}
template< class Processor, typename Arg1, typename Arg2, typename Arg3 >
@@ -338,9 +339,7 @@ class processor_container : noncopyable
const processor_context & context, Arg1 arg1, Arg2 arg2, Arg3 arg3 )
{
processorSet_.insert( pProcessor );
- processor_holder_type holder(
- new Processor( context, arg1, arg2, arg3 ) );
- *pProcessor = holder;
+ *pProcessor = processor_holder_type( new Processor( context, arg1, arg2, arg3 ) );
}
template<
@@ -352,9 +351,7 @@ class processor_container : noncopyable
Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4 )
{
processorSet_.insert( pProcessor );
- processor_holder_type holder(
- new Processor( context, arg1, arg2, arg3, arg4 ) );
- *pProcessor = holder;
+ *pProcessor = processor_holder_type( new Processor( context, arg1, arg2, arg3, arg4 ) );
}
template<
@@ -366,9 +363,7 @@ class processor_container : noncopyable
Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4, Arg5 arg5 )
{
processorSet_.insert( pProcessor );
- processor_holder_type holder(
- new Processor( context, arg1, arg2, arg3, arg4, arg5 ) );
- *pProcessor = holder;
+ *pProcessor = processor_holder_type( new Processor( context, arg1, arg2, arg3, arg4, arg5 ) );
}
template<
@@ -380,9 +375,7 @@ class processor_container : noncopyable
Arg1 arg1, Arg2 arg2, Arg3 arg3, Arg4 arg4, Arg5 arg5, Arg6 arg6 )
{
processorSet_.insert( pProcessor );
- processor_holder_type holder(
- new Processor( context, arg1, arg2, arg3, arg4, arg5, arg6 ) );
- *pProcessor = holder;
+ *pProcessor = processor_holder_type( new Processor( context, arg1, arg2, arg3, arg4, arg5, arg6 ) );
}
void destroy_processor_impl( const processor_handle & processor )