Fix compilation error with as_deque in C++11.

This commit is contained in:
Louis Dionne
2014-11-12 13:43:40 -05:00
parent 15dd9c9d97
commit 0ed591d214
3 changed files with 77 additions and 8 deletions

View File

@ -55,6 +55,7 @@ project
[ run algorithm/zip_ignore.cpp : : : : ]
[ run algorithm/flatten.cpp : : : : ]
[ run sequence/as_deque.cpp : : : : ]
[ run sequence/as_list.cpp : : : : ]
[ run sequence/as_map.cpp : : : : ]
[ run sequence/as_set.cpp : : : : ]

View File

@ -0,0 +1,60 @@
/*=============================================================================
Copyright (c) 2014 Louis Dionne
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)
==============================================================================*/
#include <boost/detail/lightweight_test.hpp>
#include <boost/fusion/algorithm/transformation/push_back.hpp>
#include <boost/fusion/algorithm/transformation/push_front.hpp>
#include <boost/fusion/container/deque/convert.hpp>
#include <boost/fusion/container/deque/deque.hpp>
#include <boost/fusion/container/generation/make_deque.hpp>
#include <boost/fusion/container/generation/make_list.hpp>
#include <boost/fusion/container/generation/make_vector.hpp>
#include <boost/fusion/sequence/comparison/equal_to.hpp>
#include <string>
int main() {
using namespace boost::fusion;
using namespace boost;
BOOST_TEST(as_deque(make_vector()) == make_deque());
BOOST_TEST(as_deque(make_vector(1)) == make_deque(1));
BOOST_TEST(as_deque(make_vector(1, '2')) == make_deque(1, '2'));
BOOST_TEST(as_deque(make_vector(1, '2', 3.3f)) == make_deque(1, '2', 3.3f));
BOOST_TEST(as_deque(make_list()) == make_deque());
BOOST_TEST(as_deque(make_list(1)) == make_deque(1));
BOOST_TEST(as_deque(make_list(1, '2')) == make_deque(1, '2'));
BOOST_TEST(as_deque(make_list(1, '2', 3.3f)) == make_deque(1, '2', 3.3f));
{
deque<> xs;
BOOST_TEST(as_deque(push_back(xs, 1)) == make_deque(1));
}
{
deque<int> xs(1);
BOOST_TEST(as_deque(push_back(xs, '2')) == make_deque(1, '2'));
}
{
deque<int, char> xs(1, '2');
BOOST_TEST(as_deque(push_back(xs, 3.3f)) == make_deque(1, '2', 3.3f));
}
{
deque<> xs;
BOOST_TEST(
as_deque(push_front(xs, make_deque(1, '2', 3.3f))) ==
make_deque(make_deque(1, '2', 3.3f))
);
BOOST_TEST(as_deque(make_deque(make_deque(1))) == make_deque(make_deque(1)));
}
return boost::report_errors();
}