• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*=============================================================================
2     Copyright (c) 2001-2011 Joel de Guzman
3 
4     Distributed under the Boost Software License, Version 1.0. (See accompanying
5     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6 ==============================================================================*/
7 #if !defined(FUSION_VALUE_OF_IMPL_05052005_1128)
8 #define FUSION_VALUE_OF_IMPL_05052005_1128
9 
10 #include <boost/fusion/support/config.hpp>
11 #include <boost/fusion/container/vector/detail/value_at_impl.hpp>
12 
13 namespace boost { namespace fusion
14 {
15     struct vector_iterator_tag;
16 
17     namespace extension
18     {
19         template <typename Tag>
20         struct value_of_impl;
21 
22         template <>
23         struct value_of_impl<vector_iterator_tag>
24         {
25             template <typename Iterator>
26             struct apply
27             {
28                 typedef typename Iterator::vector vector;
29                 typedef typename Iterator::index index;
30                 typedef typename value_at_impl<vector_tag>::template apply<vector, index>::type type;
31             };
32         };
33     }
34 }}
35 
36 #endif
37