From 72e9574bf020e7cd2f1e90f1cc5986c03fb0d5de Mon Sep 17 00:00:00 2001 From: Barend Gehrels Date: Sun, 12 Dec 2010 15:48:45 +0000 Subject: [PATCH] -Made closeable_view and reversible_view metafunctions, defining itself or a Boost.Range reversed_range or a closing_view [SVN r67187] --- test/util/closeable_view.cpp | 4 ++-- test/util/reversible_view.cpp | 34 +++++++++++++++++++++++++++++++--- 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/test/util/closeable_view.cpp b/test/util/closeable_view.cpp index a6e349710..5c5f16d2d 100644 --- a/test/util/closeable_view.cpp +++ b/test/util/closeable_view.cpp @@ -28,7 +28,7 @@ void test_non_geometry() typedef bg::closeable_view < std::vector const, true - > view_type; + >::type view_type; std::vector v; v.push_back(1); @@ -79,7 +79,7 @@ void test_non_geometry() template void test_optionally_closing(Range const& range, std::string const& expected) { - typedef bg::closeable_view view_type; + typedef bg::closeable_view::type view_type; typedef typename boost::range_iterator::type iterator; view_type view(range); diff --git a/test/util/reversible_view.cpp b/test/util/reversible_view.cpp index 479649927..2067ce536 100644 --- a/test/util/reversible_view.cpp +++ b/test/util/reversible_view.cpp @@ -14,20 +14,36 @@ #include -#include +#include #include #include #include +namespace boost { namespace geometry +{ + +namespace traits +{ + +template +struct tag > +{ + typedef typename geometry::tag::type type; +}; + +} + +}} + template void test_forward_or_reverse(Range const& range, std::string const& expected) { - typedef bg::reversible_view + typedef typename bg::reversible_view < Range const, Direction - > view_type; + >::type view_type; view_type view(range); @@ -57,9 +73,21 @@ void test_geometry(std::string const& wkt, } +template +void test_range_adaptor() +{ + bg::model::linestring

ls; + bg::read_wkt("linestring(1 1,2 2,3 3, 4 4)", ls); + std::cout << bg::wkt(ls) << std::endl; + std::cout << bg::wkt(ls | boost::adaptors::reversed) << std::endl; + std::cout << bg::wkt(boost::range_detail::reverse_range >(ls)) << std::endl; +} + + template void test_all() { + //test_range_adaptor

(); test_geometry >( "linestring(1 1,2 2,3 3)", "(1, 1) (2, 2) (3, 3)",