Mercurial > hg > vamp-build-and-test
annotate DEPENDENCIES/generic/include/boost/fusion/container/map/detail/at_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-2013 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(BOOST_FUSION_MAP_DETAIL_AT_IMPL_02042013_0821) |
Chris@16 | 8 #define BOOST_FUSION_MAP_DETAIL_AT_IMPL_02042013_0821 |
Chris@16 | 9 |
Chris@16 | 10 #include <boost/fusion/support/detail/access.hpp> |
Chris@16 | 11 |
Chris@16 | 12 namespace boost { namespace fusion |
Chris@16 | 13 { |
Chris@16 | 14 struct map_tag; |
Chris@16 | 15 |
Chris@16 | 16 namespace extension |
Chris@16 | 17 { |
Chris@16 | 18 template <typename Tag> |
Chris@16 | 19 struct at_impl; |
Chris@16 | 20 |
Chris@16 | 21 template <> |
Chris@16 | 22 struct at_impl<map_tag> |
Chris@16 | 23 { |
Chris@16 | 24 template <typename Sequence, typename N> |
Chris@16 | 25 struct apply |
Chris@16 | 26 { |
Chris@16 | 27 typedef mpl::int_<N::value> index; |
Chris@16 | 28 typedef |
Chris@16 | 29 decltype(std::declval<Sequence>().get(index())) |
Chris@16 | 30 type; |
Chris@16 | 31 |
Chris@16 | 32 static type |
Chris@16 | 33 call(Sequence& m) |
Chris@16 | 34 { |
Chris@16 | 35 return m.get(index()); |
Chris@16 | 36 } |
Chris@16 | 37 }; |
Chris@16 | 38 |
Chris@16 | 39 template <typename Sequence, typename N> |
Chris@16 | 40 struct apply<Sequence const, N> |
Chris@16 | 41 { |
Chris@16 | 42 typedef mpl::int_<N::value> index; |
Chris@16 | 43 typedef |
Chris@16 | 44 decltype(std::declval<Sequence const>().get(index())) |
Chris@16 | 45 type; |
Chris@16 | 46 |
Chris@16 | 47 static type |
Chris@16 | 48 call(Sequence const& m) |
Chris@16 | 49 { |
Chris@16 | 50 return m.get(index()); |
Chris@16 | 51 } |
Chris@16 | 52 }; |
Chris@16 | 53 }; |
Chris@16 | 54 } |
Chris@16 | 55 }} |
Chris@16 | 56 |
Chris@16 | 57 #endif |