forked from boostorg/fusion
[identity_view] Added boost::fusion::identity_view
This commit is contained in:
@@ -8,7 +8,6 @@
|
||||
#include <boost/fusion/container/vector/vector.hpp>
|
||||
#include <boost/fusion/container/map/map.hpp>
|
||||
#include <boost/fusion/container/generation/make_map.hpp>
|
||||
#include <boost/fusion/algorithm/auxiliary/copy.hpp>
|
||||
#include <boost/fusion/adapted/mpl.hpp>
|
||||
#include <boost/fusion/sequence/io/out.hpp>
|
||||
#include <boost/fusion/container/generation/make_vector.hpp>
|
||||
@@ -77,16 +76,7 @@ main()
|
||||
|
||||
BOOST_TEST((*boost::fusion::advance_c<3>(boost::fusion::begin(xform)) == 8));
|
||||
BOOST_TEST((boost::fusion::at_c<2>(xform) == 7));
|
||||
BOOST_MPL_ASSERT((boost::is_same<boost::fusion::result_of::value_at_c<xform_type, 0>::type, boost::mpl::integral_c<int, 5> >));
|
||||
}
|
||||
|
||||
{
|
||||
typedef vector<int, int, int, int, int> sequence_type;
|
||||
sequence_type seq;
|
||||
identity_view<sequence_type> ident(seq);
|
||||
copy(make_vector(1, 2, 3, 4, 5), ident);
|
||||
std::cout << seq << std::endl;
|
||||
BOOST_TEST((seq == make_vector(1, 2, 3, 4, 5)));
|
||||
BOOST_MPL_ASSERT((boost::is_same<boost::fusion::result_of::value_at_c<xform_type, 0>::type, boost::mpl::integral_c<int, 5>&& >));
|
||||
}
|
||||
|
||||
/// Associative
|
||||
@@ -153,9 +143,10 @@ main()
|
||||
typedef boost::fusion::result_of::next<first>::type second;
|
||||
typedef boost::fusion::result_of::next<second>::type third;
|
||||
|
||||
BOOST_MPL_ASSERT((boost::is_same<boost::fusion::result_of::value_of<first>::type, boost::fusion::pair<int, char> >));
|
||||
BOOST_MPL_ASSERT((boost::is_same<boost::fusion::result_of::value_of<second>::type, boost::fusion::pair<double, std::string> >));
|
||||
BOOST_MPL_ASSERT((boost::is_same<boost::fusion::result_of::value_of<third>::type, boost::fusion::pair<abstract, int> >));
|
||||
// TODO: why is a boost::fusion::pair<int, char>&& ??
|
||||
BOOST_MPL_ASSERT((boost::is_same<boost::fusion::result_of::value_of<first>::type, boost::fusion::pair<int, char>&& >));
|
||||
BOOST_MPL_ASSERT((boost::is_same<boost::fusion::result_of::value_of<second>::type, boost::fusion::pair<double, std::string>&& >));
|
||||
BOOST_MPL_ASSERT((boost::is_same<boost::fusion::result_of::value_of<third>::type, boost::fusion::pair<abstract, int>&& >));
|
||||
}
|
||||
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user