mirror of
https://github.com/boostorg/fusion.git
synced 2025-07-14 12:56:38 +02:00
Define traits::is_view for non fusion types
This commit is contained in:
@ -14,6 +14,7 @@
|
|||||||
namespace boost { namespace fusion
|
namespace boost { namespace fusion
|
||||||
{
|
{
|
||||||
// Special tags:
|
// Special tags:
|
||||||
|
struct non_fusion_tag;
|
||||||
struct sequence_facade_tag;
|
struct sequence_facade_tag;
|
||||||
struct boost_tuple_tag; // boost::tuples::tuple tag
|
struct boost_tuple_tag; // boost::tuples::tuple tag
|
||||||
struct boost_array_tag; // boost::array tag
|
struct boost_array_tag; // boost::array tag
|
||||||
@ -32,6 +33,13 @@ namespace boost { namespace fusion
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template <>
|
||||||
|
struct is_view_impl<non_fusion_tag>
|
||||||
|
{
|
||||||
|
template <typename T>
|
||||||
|
struct apply : mpl::false_ {};
|
||||||
|
};
|
||||||
|
|
||||||
template <>
|
template <>
|
||||||
struct is_view_impl<sequence_facade_tag>
|
struct is_view_impl<sequence_facade_tag>
|
||||||
{
|
{
|
||||||
|
@ -257,6 +257,7 @@ project
|
|||||||
[ run sequence/swap.cpp ]
|
[ run sequence/swap.cpp ]
|
||||||
|
|
||||||
[ compile support/is_sequence.cpp ]
|
[ compile support/is_sequence.cpp ]
|
||||||
|
[ compile support/is_view.cpp ]
|
||||||
[ compile support/pair_deque.cpp ]
|
[ compile support/pair_deque.cpp ]
|
||||||
[ compile support/pair_list.cpp ]
|
[ compile support/pair_list.cpp ]
|
||||||
[ compile support/pair_map.cpp ]
|
[ compile support/pair_map.cpp ]
|
||||||
|
@ -165,6 +165,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<ns::point>::value);
|
||||||
ns::point p(123, 456, 789);
|
ns::point p(123, 456, 789);
|
||||||
|
|
||||||
std::cout << at_c<0>(p) << std::endl;
|
std::cout << at_c<0>(p) << std::endl;
|
||||||
@ -237,6 +238,7 @@ main()
|
|||||||
#if !BOOST_WORKAROUND(__GNUC__,<4)
|
#if !BOOST_WORKAROUND(__GNUC__,<4)
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point_with_private_members>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point_with_private_members>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<ns::point_with_private_members>::value);
|
||||||
ns::point_with_private_members p(123, 456, 789);
|
ns::point_with_private_members p(123, 456, 789);
|
||||||
|
|
||||||
std::cout << at_c<0>(p) << std::endl;
|
std::cout << at_c<0>(p) << std::endl;
|
||||||
|
@ -42,6 +42,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<empty_adt>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<empty_adt>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<empty_adt>::value);
|
||||||
empty_adt e;
|
empty_adt e;
|
||||||
|
|
||||||
std::cout << e << std::endl;
|
std::cout << e << std::endl;
|
||||||
|
@ -93,6 +93,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT((traits::is_view<adapted::point>));
|
BOOST_MPL_ASSERT((traits::is_view<adapted::point>));
|
||||||
|
BOOST_STATIC_ASSERT(traits::is_view<adapted::point>::value);
|
||||||
ns::point basep(123, 456, 789);
|
ns::point basep(123, 456, 789);
|
||||||
adapted::point p(basep);
|
adapted::point p(basep);
|
||||||
|
|
||||||
|
@ -43,6 +43,7 @@ main()
|
|||||||
empty_adt empty;
|
empty_adt empty;
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT((traits::is_view<adapted::empty_adt>));
|
BOOST_MPL_ASSERT((traits::is_view<adapted::empty_adt>));
|
||||||
|
BOOST_STATIC_ASSERT(traits::is_view<adapted::empty_adt>::value);
|
||||||
adapted::empty_adt e(empty);
|
adapted::empty_adt e(empty);
|
||||||
|
|
||||||
std::cout << e << std::endl;
|
std::cout << e << std::endl;
|
||||||
|
@ -84,6 +84,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<ns::point>::value);
|
||||||
ns::point p(123, 456, 789);
|
ns::point p(123, 456, 789);
|
||||||
|
|
||||||
std::cout << at_c<0>(p) << std::endl;
|
std::cout << at_c<0>(p) << std::endl;
|
||||||
|
@ -42,6 +42,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<empty_adt>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<empty_adt>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<empty_adt>::value);
|
||||||
empty_adt e;
|
empty_adt e;
|
||||||
|
|
||||||
std::cout << e << std::endl;
|
std::cout << e << std::endl;
|
||||||
|
@ -80,6 +80,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT((traits::is_view<adapted::point>));
|
BOOST_MPL_ASSERT((traits::is_view<adapted::point>));
|
||||||
|
BOOST_STATIC_ASSERT(traits::is_view<adapted::point>::value);
|
||||||
ns::point basep(123, 456);
|
ns::point basep(123, 456);
|
||||||
adapted::point p(basep);
|
adapted::point p(basep);
|
||||||
|
|
||||||
|
@ -43,6 +43,7 @@ main()
|
|||||||
empty_adt empty;
|
empty_adt empty;
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT((traits::is_view<adapted::empty_adt>));
|
BOOST_MPL_ASSERT((traits::is_view<adapted::empty_adt>));
|
||||||
|
BOOST_STATIC_ASSERT(traits::is_view<adapted::empty_adt>::value);
|
||||||
adapted::empty_adt e(empty);
|
adapted::empty_adt e(empty);
|
||||||
|
|
||||||
std::cout << e << std::endl;
|
std::cout << e << std::endl;
|
||||||
|
@ -86,6 +86,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<ns::point>::value);
|
||||||
ns::point p = {123, 456, 789};
|
ns::point p = {123, 456, 789};
|
||||||
|
|
||||||
std::cout << at_c<0>(p) << std::endl;
|
std::cout << at_c<0>(p) << std::endl;
|
||||||
|
@ -42,6 +42,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<empty_struct>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<empty_struct>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<empty_struct>::value);
|
||||||
empty_struct e;
|
empty_struct e;
|
||||||
|
|
||||||
std::cout << e << std::endl;
|
std::cout << e << std::endl;
|
||||||
|
@ -66,6 +66,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT((traits::is_view<adapted::point>));
|
BOOST_MPL_ASSERT((traits::is_view<adapted::point>));
|
||||||
|
BOOST_STATIC_ASSERT(traits::is_view<adapted::point>::value);
|
||||||
ns::point basep = {123, 456};
|
ns::point basep = {123, 456};
|
||||||
adapted::point p(basep);
|
adapted::point p(basep);
|
||||||
|
|
||||||
|
@ -43,6 +43,7 @@ main()
|
|||||||
empty_struct empty;
|
empty_struct empty;
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT((traits::is_view<adapted::empty_struct>));
|
BOOST_MPL_ASSERT((traits::is_view<adapted::empty_struct>));
|
||||||
|
BOOST_STATIC_ASSERT(traits::is_view<adapted::empty_struct>::value);
|
||||||
adapted::empty_struct e(empty);
|
adapted::empty_struct e(empty);
|
||||||
|
|
||||||
std::cout << e << std::endl;
|
std::cout << e << std::endl;
|
||||||
|
@ -98,6 +98,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<point>::value);
|
||||||
point p(123, 456, 789);
|
point p(123, 456, 789);
|
||||||
|
|
||||||
std::cout << at_c<0>(p) << std::endl;
|
std::cout << at_c<0>(p) << std::endl;
|
||||||
|
@ -96,6 +96,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<point>::value);
|
||||||
point p = {123, 456, 789.43f};
|
point p = {123, 456, 789.43f};
|
||||||
|
|
||||||
std::cout << at_c<0>(p) << std::endl;
|
std::cout << at_c<0>(p) << std::endl;
|
||||||
|
@ -170,6 +170,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<point>::value);
|
||||||
point p = {123, 456, 789};
|
point p = {123, 456, 789};
|
||||||
|
|
||||||
std::cout << at_c<0>(p) << std::endl;
|
std::cout << at_c<0>(p) << std::endl;
|
||||||
|
@ -42,6 +42,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<empty_struct>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<empty_struct>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<empty_struct>::value);
|
||||||
empty_struct e;
|
empty_struct e;
|
||||||
|
|
||||||
std::cout << e << std::endl;
|
std::cout << e << std::endl;
|
||||||
|
@ -87,6 +87,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT((traits::is_view<adapted::point>));
|
BOOST_MPL_ASSERT((traits::is_view<adapted::point>));
|
||||||
|
BOOST_STATIC_ASSERT(traits::is_view<adapted::point>::value);
|
||||||
ns::point basep = {123, 456, 789};
|
ns::point basep = {123, 456, 789};
|
||||||
adapted::point p(basep);
|
adapted::point p(basep);
|
||||||
|
|
||||||
|
@ -43,6 +43,7 @@ main()
|
|||||||
empty_struct empty;
|
empty_struct empty;
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT((traits::is_view<adapted::empty_struct>));
|
BOOST_MPL_ASSERT((traits::is_view<adapted::empty_struct>));
|
||||||
|
BOOST_STATIC_ASSERT(traits::is_view<adapted::empty_struct>::value);
|
||||||
adapted::empty_struct e(empty);
|
adapted::empty_struct e(empty);
|
||||||
|
|
||||||
std::cout << e << std::endl;
|
std::cout << e << std::endl;
|
||||||
|
@ -107,6 +107,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<point>::value);
|
||||||
point p(123, 456, 789);
|
point p(123, 456, 789);
|
||||||
|
|
||||||
std::cout << at_c<0>(p) << std::endl;
|
std::cout << at_c<0>(p) << std::endl;
|
||||||
|
@ -96,6 +96,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<point>::value);
|
||||||
point p = {123, 456, 789};
|
point p = {123, 456, 789};
|
||||||
|
|
||||||
std::cout << at_c<0>(p) << std::endl;
|
std::cout << at_c<0>(p) << std::endl;
|
||||||
|
@ -22,6 +22,8 @@ int main()
|
|||||||
|
|
||||||
BOOST_MPL_ASSERT((traits::is_sequence<array_type>));
|
BOOST_MPL_ASSERT((traits::is_sequence<array_type>));
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<array_type>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<array_type>));
|
||||||
|
BOOST_STATIC_ASSERT(traits::is_sequence<array_type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<array_type>::value);
|
||||||
|
|
||||||
array_type arr = {1,2,3};
|
array_type arr = {1,2,3};
|
||||||
|
|
||||||
|
@ -26,6 +26,8 @@ int main()
|
|||||||
|
|
||||||
BOOST_MPL_ASSERT((traits::is_sequence<array_type>));
|
BOOST_MPL_ASSERT((traits::is_sequence<array_type>));
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<array_type>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<array_type>));
|
||||||
|
BOOST_STATIC_ASSERT(traits::is_sequence<array_type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<array_type>::value);
|
||||||
|
|
||||||
array_type arr = {{1,2,3}};
|
array_type arr = {{1,2,3}};
|
||||||
|
|
||||||
|
@ -46,6 +46,7 @@ main()
|
|||||||
{
|
{
|
||||||
typedef boost::tuple<int, std::string> tuple_type;
|
typedef boost::tuple<int, std::string> tuple_type;
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<tuple_type>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<tuple_type>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<tuple_type>::value);
|
||||||
tuple_type t(123, "Hola!!!");
|
tuple_type t(123, "Hola!!!");
|
||||||
|
|
||||||
std::cout << at_c<0>(t) << std::endl;
|
std::cout << at_c<0>(t) << std::endl;
|
||||||
|
@ -42,6 +42,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<ns::point>::value);
|
||||||
ns::point p(123, 456);
|
ns::point p(123, 456);
|
||||||
|
|
||||||
std::cout << at_c<0>(p) << std::endl;
|
std::cout << at_c<0>(p) << std::endl;
|
||||||
|
@ -30,6 +30,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<empty_struct>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<empty_struct>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<empty_struct>::value);
|
||||||
empty_struct e;
|
empty_struct e;
|
||||||
|
|
||||||
std::cout << e << std::endl;
|
std::cout << e << std::endl;
|
||||||
|
@ -46,6 +46,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<point>::value);
|
||||||
point p(123, 456);
|
point p(123, 456);
|
||||||
|
|
||||||
std::cout << at_c<0>(p) << std::endl;
|
std::cout << at_c<0>(p) << std::endl;
|
||||||
|
@ -30,6 +30,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<empty_struct<void> >));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<empty_struct<void> >));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<empty_struct<void> >::value);
|
||||||
empty_struct<void> e;
|
empty_struct<void> e;
|
||||||
|
|
||||||
std::cout << e << std::endl;
|
std::cout << e << std::endl;
|
||||||
|
@ -54,6 +54,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<ns::point>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<ns::point>::value);
|
||||||
ns::point p(123, 456);
|
ns::point p(123, 456);
|
||||||
|
|
||||||
std::cout << at_c<0>(p) << std::endl;
|
std::cout << at_c<0>(p) << std::endl;
|
||||||
|
@ -30,6 +30,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<empty_struct>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<empty_struct>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<empty_struct>::value);
|
||||||
empty_struct e;
|
empty_struct e;
|
||||||
|
|
||||||
std::cout << e << std::endl;
|
std::cout << e << std::endl;
|
||||||
|
@ -66,6 +66,7 @@ void run_test()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<Point>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<Point>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<Point>::value);
|
||||||
Point p(123, 456);
|
Point p(123, 456);
|
||||||
|
|
||||||
std::cout << at_c<0>(p) << std::endl;
|
std::cout << at_c<0>(p) << std::endl;
|
||||||
|
@ -30,6 +30,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<empty_struct>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<empty_struct>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<empty_struct>::value);
|
||||||
empty_struct e;
|
empty_struct e;
|
||||||
|
|
||||||
std::cout << e << std::endl;
|
std::cout << e << std::endl;
|
||||||
|
@ -42,6 +42,7 @@ main()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<point>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<point>::value);
|
||||||
point p(123, 456);
|
point p(123, 456);
|
||||||
|
|
||||||
std::cout << at_c<0>(p) << std::endl;
|
std::cout << at_c<0>(p) << std::endl;
|
||||||
|
@ -61,6 +61,7 @@ void run_test()
|
|||||||
|
|
||||||
{
|
{
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<Point>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<Point>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<Point>::value);
|
||||||
Point p(123, 456);
|
Point p(123, 456);
|
||||||
|
|
||||||
std::cout << at_c<0>(p) << std::endl;
|
std::cout << at_c<0>(p) << std::endl;
|
||||||
|
@ -89,6 +89,9 @@ main()
|
|||||||
BOOST_MPL_ASSERT((traits::is_sequence<t1>));
|
BOOST_MPL_ASSERT((traits::is_sequence<t1>));
|
||||||
BOOST_MPL_ASSERT((traits::is_sequence<t2>));
|
BOOST_MPL_ASSERT((traits::is_sequence<t2>));
|
||||||
BOOST_MPL_ASSERT((traits::is_sequence<t3>));
|
BOOST_MPL_ASSERT((traits::is_sequence<t3>));
|
||||||
|
BOOST_STATIC_ASSERT(traits::is_sequence<t1>::value);
|
||||||
|
BOOST_STATIC_ASSERT(traits::is_sequence<t2>::value);
|
||||||
|
BOOST_STATIC_ASSERT(traits::is_sequence<t3>::value);
|
||||||
}
|
}
|
||||||
|
|
||||||
{ // testing mpl::is_sequence
|
{ // testing mpl::is_sequence
|
||||||
|
@ -33,6 +33,8 @@ int main()
|
|||||||
|
|
||||||
BOOST_MPL_ASSERT((traits::is_sequence<array_type>));
|
BOOST_MPL_ASSERT((traits::is_sequence<array_type>));
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<array_type>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<array_type>));
|
||||||
|
BOOST_STATIC_ASSERT(traits::is_sequence<array_type>::value);
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<array_type>::value);
|
||||||
|
|
||||||
array_type arr = {{1,2,3}};
|
array_type arr = {{1,2,3}};
|
||||||
|
|
||||||
|
@ -44,6 +44,7 @@ main()
|
|||||||
{
|
{
|
||||||
typedef std::pair<int, std::string> pair_type;
|
typedef std::pair<int, std::string> pair_type;
|
||||||
BOOST_MPL_ASSERT_NOT((traits::is_view<pair_type>));
|
BOOST_MPL_ASSERT_NOT((traits::is_view<pair_type>));
|
||||||
|
BOOST_STATIC_ASSERT(!traits::is_view<pair_type>::value);
|
||||||
pair_type p(123, "Hola!!!");
|
pair_type p(123, "Hola!!!");
|
||||||
|
|
||||||
std::cout << at_c<0>(p) << std::endl;
|
std::cout << at_c<0>(p) << std::endl;
|
||||||
|
15
test/support/is_view.cpp
Normal file
15
test/support/is_view.cpp
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
/*=============================================================================
|
||||||
|
Copyright (c) 2018 Nikita Kniazev
|
||||||
|
|
||||||
|
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/fusion/support/is_view.hpp>
|
||||||
|
#include <boost/static_assert.hpp>
|
||||||
|
|
||||||
|
|
||||||
|
// Make sure fusion::is_view can be used with non fusion types.
|
||||||
|
struct incomplete;
|
||||||
|
BOOST_STATIC_ASSERT(!boost::fusion::traits::is_view<incomplete>::value);
|
||||||
|
|
||||||
|
int main() { }
|
Reference in New Issue
Block a user