1 /*=============================================================================
2     Copyright (C) 2015 Kohei Takahshi
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 #include <boost/fusion/container/deque/deque.hpp>
8 #include <boost/core/lightweight_test.hpp>
9 
10 #define FUSION_SEQUENCE boost::fusion::deque
11 #include "nest.hpp"
12 
13 /* deque has a few issues:
14     - sequence conversion constructor is explicit
15     - assignment sequence conversion has bug in base class
16     - c++11 direct assignment from lvalue has bug */
17 template <typename T>
18 struct skip_issues
19 {
20     template <typename Source, typename Expected>
operator ()skip_issues21     bool operator()(Source const& source, Expected const& expected) const
22     {
23         using namespace test_detail;
24         return
25 #if defined(BOOST_FUSION_HAS_VARIADIC_DEQUE)
26             run< can_construct<T> >(source, expected) &&
27             run< can_implicit_construct<T> >(source, expected) &&
28             run< can_rvalue_assign<T> >(source, expected) &&
29             run< can_convert_using<can_construct>::to<T> >(source, expected) &&
30 #else
31             run< can_copy<T> >(source, expected) &&
32 #endif
33             run< can_construct_from_elements<T> >(source, expected);
34     }
35 };
36 
37 int
main()38 main()
39 {
40     test<skip_issues>();
41     return boost::report_errors();
42 }
43 
44