From d3f057e88c411aea5b58343dd4e270ed01fa2126 Mon Sep 17 00:00:00 2001 From: Dan Marsden Date: Sun, 26 Oct 2008 14:39:59 +0000 Subject: [PATCH] added fold test and simplified repetition in the Makefile [SVN r49456] --- test/compile_time/Makefile | 20 ++++++++++++-------- test/compile_time/fold.cpp | 31 +++++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+), 8 deletions(-) create mode 100644 test/compile_time/fold.cpp diff --git a/test/compile_time/Makefile b/test/compile_time/Makefile index fdbd1bb4..5da0e985 100644 --- a/test/compile_time/Makefile +++ b/test/compile_time/Makefile @@ -9,16 +9,20 @@ CXX=g++ CXXFLAGS=-I$(BOOST_ROOT) -all: vector_construction vector_iteration vector_intrinsic +TEST_SRCS=\ + vector_construction.cpp\ + vector_iteration.cpp\ + vector_intrinsic.cpp\ + fold.cpp -vector_construction: vector_construction.cpp - time $(CXX) $(CXXFLAGS) vector_construction.cpp -o vector_construction +TEST_OBJS=$(TEST_SRCS:.cpp=.o) -vector_iteration: vector_iteration.cpp - time $(CXX) $(CXXFLAGS) vector_iteration.cpp -o vector_iteration +TEST_TARGETS=$(TEST_SRCS:.cpp=.test) -vector_intrinsic: vector_intrinsic.cpp - time $(CXX) $(CXXFLAGS) vector_intrinsic.cpp -o vector_intrinsic +all: $(TEST_TARGETS) + +%.test : %.cpp + time $(CXX) $(CXXFLAGS) $< -o $@ clean: - rm -f vector_construction vector_construction.o vector_iteration vector_iteration.o vector_intrinsic vector_intrinsic.o + rm -f $(TEST_TARGETS) $(TEST_OBJS) diff --git a/test/compile_time/fold.cpp b/test/compile_time/fold.cpp new file mode 100644 index 00000000..e5fb9fb7 --- /dev/null +++ b/test/compile_time/fold.cpp @@ -0,0 +1,31 @@ +/*============================================================================= + Copyright (c) 2008 Dan Marsden + + Use modification and distribution are subject to 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 + +namespace fusion = boost::fusion; + +namespace +{ + template + struct distinct + { + static const int value = n; + }; + + template + void test() + { + fusion::vector< + distinct<0, batch>, distinct<1, batch>, distinct<2, batch>, distinct<3, batch>, distinct<4, batch>, + distinct<5, batch>, distinct<6, batch>, distinct<7, batch>, distinct<8, batch>, distinct<9, batch> > v; + } +} + +#include "./driver.hpp"