From b5845cfdec6ccb41869230cacbf0c56f2f1fc10e Mon Sep 17 00:00:00 2001 From: mat007 Date: Sat, 29 Jan 2011 10:23:26 +0000 Subject: [PATCH] Added template instantiation benchmark git-svn-id: https://svn.code.sf.net/p/turtle/code/trunk@211 860be788-9bd5-4423-9f1e-828f051e677b --- src/applications/turtle_bench_2/Jamfile.v2 | 5 +++ src/applications/turtle_bench_2/Jamroot | 0 .../turtle_bench_2/turtle_bench.cpp | 31 +++++++++++++++++++ .../turtle_bench_2/turtle_bench.hpp | 17 ++++++++++ 4 files changed, 53 insertions(+) create mode 100644 src/applications/turtle_bench_2/Jamfile.v2 create mode 100644 src/applications/turtle_bench_2/Jamroot create mode 100644 src/applications/turtle_bench_2/turtle_bench.cpp create mode 100644 src/applications/turtle_bench_2/turtle_bench.hpp diff --git a/src/applications/turtle_bench_2/Jamfile.v2 b/src/applications/turtle_bench_2/Jamfile.v2 new file mode 100644 index 0000000..8d3720d --- /dev/null +++ b/src/applications/turtle_bench_2/Jamfile.v2 @@ -0,0 +1,5 @@ +import template-profile ; +template-profile turtle_bench : turtle_bench.cpp + : ../../libraries + : c:\\users\\mat\\desktop\\dev\\include + ; \ No newline at end of file diff --git a/src/applications/turtle_bench_2/Jamroot b/src/applications/turtle_bench_2/Jamroot new file mode 100644 index 0000000..e69de29 diff --git a/src/applications/turtle_bench_2/turtle_bench.cpp b/src/applications/turtle_bench_2/turtle_bench.cpp new file mode 100644 index 0000000..648072c --- /dev/null +++ b/src/applications/turtle_bench_2/turtle_bench.cpp @@ -0,0 +1,31 @@ +// +// 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) +// + +#include +#include + +#define F(z, n, d) virtual void f##n() = 0; + +#define NUMBER_OF_METHODS 20 + +namespace +{ + class base_class + { + public: + virtual ~base_class() {} + BOOST_PP_REPEAT_FROM_TO(0, NUMBER_OF_METHODS, F, ) + }; +} + +#define BOOST_PP_FILENAME_1 "turtle_bench.hpp" +#define BOOST_PP_ITERATION_LIMITS (1, 10) +#include BOOST_PP_ITERATE() + +int main() +{} diff --git a/src/applications/turtle_bench_2/turtle_bench.hpp b/src/applications/turtle_bench_2/turtle_bench.hpp new file mode 100644 index 0000000..12865d9 --- /dev/null +++ b/src/applications/turtle_bench_2/turtle_bench.hpp @@ -0,0 +1,17 @@ +// +// 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, ) +};