Added move ctors for vector and deque (deque for gcc partially working for now)

no preprocessed files yet

[SVN r80331]
This commit is contained in:
Joel de Guzman
2012-08-31 14:33:12 +00:00
parent 16de1dcd01
commit c8b47ca3ca
9 changed files with 159 additions and 10 deletions

View File

@ -71,11 +71,35 @@ namespace boost { namespace fusion
: base(seq)
{}
explicit deque(typename detail::call_param<Head>::type head
, typename detail::call_param<Tail>::type... tail)
#if !defined(BOOST_NO_RVALUE_REFERENCES)
template <typename ...Elements>
deque(deque<Elements...>&& seq)
: base(std::forward<deque<Elements...>>(seq))
{}
#endif
deque(deque const& seq)
: base(seq)
{}
#if !defined(BOOST_NO_RVALUE_REFERENCES)
deque(deque&& seq)
: base(std::forward<deque>(seq))
{}
#endif
explicit deque(Head const& head, Tail const&... tail)
: base(detail::deque_keyed_values<Head, Tail...>::call(head, tail...))
{}
//~ #if !defined(BOOST_NO_RVALUE_REFERENCES)
//~ template <typename Head_, typename ...Tail_>
//~ explicit deque(Head_&& head, Tail_&&... tail)
//~ : base(detail::deque_keyed_values<Head_, Tail_...>
//~ ::call(std::forward<Head_>(head), std::forward<Tail_>(tail)...))
//~ {}
//~ #endif
template <typename Sequence>
explicit deque(Sequence const& seq
, typename disable_if<is_convertible<Sequence, Head> >::type* /*dummy*/ = 0)