Merge from trunk

[SVN r79274]
This commit is contained in:
Joel de Guzman
2012-07-05 04:40:37 +00:00
parent bcb5fd9618
commit 5a51e5d9aa
58 changed files with 1566 additions and 183 deletions

View File

@@ -1,8 +1,8 @@
/*=============================================================================
Copyright (c) 2005-2011 Joel de Guzman
Copyright (c) 2005-2012 Joel de Guzman
Copyright (c) 2005-2006 Dan Marsden
Distributed under the Boost Software License, Version 1.0. (See accompanying
Distributed under the Boost Software License, Version 1.0. (See accompanying
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
==============================================================================*/
#if !defined(BOOST_FUSION_DEQUE_DETAIL_KEYED_ELEMENT_26112006_1330)
@@ -12,34 +12,34 @@
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/iterator/next.hpp>
namespace boost { namespace fusion {
namespace boost { namespace fusion
{
struct fusion_sequence_tag;
}}
namespace detail {
namespace boost { namespace fusion { namespace detail
{
struct nil_keyed_element
{
typedef fusion_sequence_tag tag;
void get();
template<typename It>
static nil_keyed_element
static nil_keyed_element
from_iterator(It const&)
{
return nil_keyed_element();
}
};
template<typename Key, typename Value, typename Rest>
struct keyed_element
: Rest
template <typename Key, typename Value, typename Rest>
struct keyed_element : Rest
{
typedef Rest base;
typedef fusion_sequence_tag tag;
using Rest::get;
template<typename It>
template <typename It>
static keyed_element
from_iterator(It const& it)
{
@@ -47,9 +47,9 @@ namespace detail {
*it, base::from_iterator(fusion::next(it)));
}
template<typename U, typename Rst>
template <typename U, typename Rst>
keyed_element(keyed_element<Key, U, Rst> const& rhs)
: Rest(rhs.get_base()), value_(rhs.value_)
: Rest(rhs.get_base()), value_(rhs.value_)
{}
Rest const get_base() const
@@ -95,7 +95,7 @@ namespace detail {
template<typename Elem, typename Key>
struct keyed_element_value_at
: keyed_element_value_at<typename Elem::base, Key>
: keyed_element_value_at<typename Elem::base, Key>
{};
template<typename Key, typename Value, typename Rest>
@@ -103,7 +103,6 @@ namespace detail {
{
typedef Value type;
};
}}}
#endif