Imported Upstream version 1.57.0
[platform/upstream/boost.git] / boost / fusion / container / map / detail / cpp03 / value_at_impl.hpp
1 /*=============================================================================
2     Copyright (c) 2001-2011 Joel de Guzman
3     Copyright (c) 2011 Brandon Kohn
4
5     Distributed under the Boost Software License, Version 1.0. (See accompanying 
6     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
7 ==============================================================================*/
8 #if !defined(BOOST_FUSION_MAP_DETAIL_VALUE_AT_IMPL_HPP)
9 #define BOOST_FUSION_MAP_DETAIL_VALUE_AT_IMPL_HPP
10
11 #include <boost/fusion/support/config.hpp>
12 #include <boost/mpl/at.hpp>
13
14 namespace boost { namespace fusion
15 {
16     struct map_tag;
17
18     namespace extension
19     {
20         template <typename Tag>
21         struct value_at_impl;
22
23         template <>
24         struct value_at_impl<map_tag>
25         {
26             template <typename Sequence, typename N>
27             struct apply 
28             {
29                 typedef typename mpl::at<typename Sequence::storage_type::types, N>::type type;
30             };
31         };
32     }
33 }}
34
35 #endif //BOOST_FUSION_MAP_DETAIL_VALUE_AT_IMPL_HPP