+ Fixes ticket #7914

+ C++11 implementations for make_deque, deque_tie and as_deque

[SVN r82630]
This commit is contained in:
Joel de Guzman
2013-01-27 07:17:01 +00:00
parent 6a47d86d72
commit b7d02a8c55
9 changed files with 390 additions and 198 deletions

View File

@ -8,7 +8,7 @@
#if !defined(FUSION_CONVERT_IMPL_20061213_2207)
#define FUSION_CONVERT_IMPL_20061213_2207
#include <boost/fusion/container/deque/detail/as_deque.hpp>
#include <boost/fusion/container/deque/convert.hpp>
#include <boost/fusion/container/deque/deque.hpp>
#include <boost/fusion/sequence/intrinsic/begin.hpp>
#include <boost/fusion/sequence/intrinsic/size.hpp>
@ -17,6 +17,12 @@ namespace boost { namespace fusion
{
struct deque_tag;
namespace result_of
{
template <typename Sequence>
struct as_deque;
}
namespace extension
{
template <typename T>
@ -28,14 +34,11 @@ namespace boost { namespace fusion
template <typename Sequence>
struct apply
{
typedef detail::as_deque<result_of::size<Sequence>::value> gen;
typedef typename gen::
template apply<typename result_of::begin<Sequence>::type>::type
type;
typedef result_of::as_deque<Sequence> gen;
typedef typename gen::type type;
static type call(Sequence& seq)
{
return gen::call(fusion::begin(seq));
return gen::call(seq);
}
};
};