Mercurial > hg > vamp-build-and-test
annotate DEPENDENCIES/generic/include/boost/fusion/container/vector/detail/distance_impl.hpp @ 47:fe753ff3d0b5
Simpler solution to .cat test
author | Chris Cannam |
---|---|
date | Thu, 07 Aug 2014 15:05:37 +0100 |
parents | 2665513ce2d3 |
children | c530137014c0 |
rev | line source |
---|---|
Chris@16 | 1 /*============================================================================= |
Chris@16 | 2 Copyright (c) 2001-2011 Joel de Guzman |
Chris@16 | 3 |
Chris@16 | 4 Distributed under the Boost Software License, Version 1.0. (See accompanying |
Chris@16 | 5 file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
Chris@16 | 6 ==============================================================================*/ |
Chris@16 | 7 #if !defined(FUSION_DISTANCE_IMPL_09172005_0751) |
Chris@16 | 8 #define FUSION_DISTANCE_IMPL_09172005_0751 |
Chris@16 | 9 |
Chris@16 | 10 #include <boost/mpl/minus.hpp> |
Chris@16 | 11 |
Chris@16 | 12 namespace boost { namespace fusion |
Chris@16 | 13 { |
Chris@16 | 14 struct vector_iterator_tag; |
Chris@16 | 15 |
Chris@16 | 16 namespace extension |
Chris@16 | 17 { |
Chris@16 | 18 template <typename Tag> |
Chris@16 | 19 struct distance_impl; |
Chris@16 | 20 |
Chris@16 | 21 template <> |
Chris@16 | 22 struct distance_impl<vector_iterator_tag> |
Chris@16 | 23 { |
Chris@16 | 24 template <typename First, typename Last> |
Chris@16 | 25 struct apply : mpl::minus<typename Last::index, typename First::index> |
Chris@16 | 26 { |
Chris@16 | 27 static typename mpl::minus< |
Chris@16 | 28 typename Last::index, typename First::index>::type |
Chris@16 | 29 call(First const&, Last const&) |
Chris@16 | 30 { |
Chris@16 | 31 typedef typename mpl::minus< |
Chris@16 | 32 typename Last::index, typename First::index>::type |
Chris@16 | 33 result; |
Chris@16 | 34 return result(); |
Chris@16 | 35 } |
Chris@16 | 36 }; |
Chris@16 | 37 }; |
Chris@16 | 38 } |
Chris@16 | 39 }} |
Chris@16 | 40 |
Chris@16 | 41 #endif |