diff --git a/build/vc100/turtle.vcxproj b/build/vc100/turtle.vcxproj
index a9906d5..c453ca7 100644
--- a/build/vc100/turtle.vcxproj
+++ b/build/vc100/turtle.vcxproj
@@ -46,6 +46,7 @@
+
diff --git a/build/vc100/turtle.vcxproj.filters b/build/vc100/turtle.vcxproj.filters
index f0de3b3..ac96323 100644
--- a/build/vc100/turtle.vcxproj.filters
+++ b/build/vc100/turtle.vcxproj.filters
@@ -130,5 +130,8 @@
Source Files\detail
+
+ Source Files\detail
+
\ No newline at end of file
diff --git a/turtle/detail/sequence_impl.hpp b/turtle/detail/sequence_impl.hpp
new file mode 100644
index 0000000..e7048a8
--- /dev/null
+++ b/turtle/detail/sequence_impl.hpp
@@ -0,0 +1,56 @@
+// http://turtle.sourceforge.net
+//
+// Copyright Mathieu Champlon 2012
+//
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#ifndef MOCK_SEQUENCE_IMPL_HPP_INCLUDED
+#define MOCK_SEQUENCE_IMPL_HPP_INCLUDED
+
+#include
+#include
+#include
+#include
+
+namespace mock
+{
+namespace detail
+{
+ class sequence_impl : private boost::noncopyable
+ {
+ public:
+ void add( void* e )
+ {
+ elements_.push_back( e );
+ }
+ void remove( void* e )
+ {
+ elements_.erase( std::remove( elements_.begin(),
+ elements_.end(), e ), elements_.end() );
+ }
+
+ bool is_valid( const void* e ) const
+ {
+ return std::find( elements_.begin(), elements_.end(), e )
+ != elements_.end();
+ }
+
+ void invalidate( const void* e )
+ {
+ elements_type::iterator it =
+ std::find( elements_.begin(), elements_.end(), e );
+ if( it != elements_.end() )
+ elements_.erase( elements_.begin(), it );
+ }
+
+ private:
+ typedef std::vector< void* > elements_type;
+
+ elements_type elements_;
+ };
+}
+} // mock
+
+#endif // MOCK_SEQUENCE_IMPL_HPP_INCLUDED
diff --git a/turtle/sequence.hpp b/turtle/sequence.hpp
index 4d4e86d..b5e5408 100644
--- a/turtle/sequence.hpp
+++ b/turtle/sequence.hpp
@@ -9,49 +9,11 @@
#ifndef MOCK_SEQUENCE_HPP_INCLUDED
#define MOCK_SEQUENCE_HPP_INCLUDED
-#include
+#include "detail/sequence_impl.hpp"
#include
-#include
-#include
namespace mock
{
-namespace detail
-{
- class sequence_impl : private boost::noncopyable
- {
- public:
- void add( void* e )
- {
- elements_.push_back( e );
- }
- void remove( void* e )
- {
- elements_.erase( std::remove( elements_.begin(),
- elements_.end(), e ), elements_.end() );
- }
-
- bool is_valid( const void* e ) const
- {
- return std::find( elements_.begin(), elements_.end(), e )
- != elements_.end();
- }
-
- void invalidate( const void* e )
- {
- elements_type::iterator it =
- std::find( elements_.begin(), elements_.end(), e );
- if( it != elements_.end() )
- elements_.erase( elements_.begin(), it );
- }
-
- private:
- typedef std::vector< void* > elements_type;
-
- elements_type elements_;
- };
-}
-
class sequence
{
public: