diff --git a/build/vc80/turtle_bench.vcproj b/build/vc80/turtle_bench.vcproj
index 294c4e2..0653f87 100644
--- a/build/vc80/turtle_bench.vcproj
+++ b/build/vc80/turtle_bench.vcproj
@@ -186,10 +186,6 @@
RelativePath="..\..\src\applications\turtle_bench\turtle_bench.cpp"
>
-
-
diff --git a/src/applications/turtle_bench/turtle_bench.cpp b/src/applications/turtle_bench/turtle_bench.cpp
index 648072c..6720fd8 100644
--- a/src/applications/turtle_bench/turtle_bench.cpp
+++ b/src/applications/turtle_bench/turtle_bench.cpp
@@ -6,12 +6,24 @@
// http://www.boost.org/LICENSE_1_0.txt)
//
+#ifndef MOCK_BENCH_NUMBER_OF_METHODS
+#define MOCK_BENCH_NUMBER_OF_METHODS 30
+#endif
+
+#ifndef MOCK_BENCH_NUMBER_OF_ARGS
+#define MOCK_BENCH_NUMBER_OF_ARGS 9
+#endif
+//#define MOCK_MAX_ARGS MOCK_BENCH_NUMBER_OF_ARGS
+
+#ifndef MOCK_BENCH_NUMBER_OF_CLASSES
+#define MOCK_BENCH_NUMBER_OF_CLASSES 20
+#endif
+
#include
-#include
+#include
-#define F(z, n, d) virtual void f##n() = 0;
-
-#define NUMBER_OF_METHODS 20
+#define MOCK_BENCH_IDENTITY(z, n, d) d
+#define MOCK_BENCH_METHOD(z, n, d) virtual void f##n( d ) = 0;
namespace
{
@@ -19,13 +31,23 @@ namespace
{
public:
virtual ~base_class() {}
- BOOST_PP_REPEAT_FROM_TO(0, NUMBER_OF_METHODS, F, )
+ BOOST_PP_REPEAT(MOCK_BENCH_NUMBER_OF_METHODS, MOCK_BENCH_METHOD, BOOST_PP_ENUM(MOCK_BENCH_NUMBER_OF_ARGS, MOCK_BENCH_IDENTITY, int))
};
}
-#define BOOST_PP_FILENAME_1 "turtle_bench.hpp"
-#define BOOST_PP_ITERATION_LIMITS (1, 10)
-#include BOOST_PP_ITERATE()
+#define MOCK_BENCH_MOCK_METHOD(z, n, d) MOCK_METHOD( f##n, MOCK_BENCH_NUMBER_OF_ARGS )
+#define MOCK_BENCH_BASE_CLASS(z, n, d) \
+ MOCK_BASE_CLASS( BOOST_PP_CAT( mock_class, n ), base_class ) \
+ { \
+ BOOST_PP_REPEAT(MOCK_BENCH_NUMBER_OF_METHODS, MOCK_BENCH_MOCK_METHOD,) \
+ };
+
+BOOST_PP_REPEAT(MOCK_BENCH_NUMBER_OF_CLASSES, MOCK_BENCH_BASE_CLASS,)
+
+#define MOCK_BENCH_INSTANTIATION(z, n, d) mock_class##n c##n;
int main()
-{}
+{
+ BOOST_PP_REPEAT(MOCK_BENCH_NUMBER_OF_CLASSES, MOCK_BENCH_INSTANTIATION,)
+ return 0;
+}
diff --git a/src/applications/turtle_bench/turtle_bench.hpp b/src/applications/turtle_bench/turtle_bench.hpp
deleted file mode 100644
index 6ce53e8..0000000
--- a/src/applications/turtle_bench/turtle_bench.hpp
+++ /dev/null
@@ -1,17 +0,0 @@
-//
-// Copyright Mathieu Champlon 2010
-//
-// 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)
-//
-
-//#pragma message( BOOST_PP_STRINGIZE( BOOST_PP_CAT( mock_class, BOOST_PP_ITERATION() ) ) )
-
-#define MOCK_F(z, n, d) MOCK_METHOD( f##n, 0 )
-//#define MOCK_F(z, n, d) MOCK_METHOD_ALT( f##n )
-
-MOCK_BASE_CLASS( BOOST_PP_CAT( mock_class, BOOST_PP_ITERATION() ), base_class )
-{
- BOOST_PP_REPEAT_FROM_TO(0, NUMBER_OF_METHODS, MOCK_F, )
-};