mirror of
https://github.com/boostorg/fusion.git
synced 2025-07-24 01:27:37 +02:00
Merge pull request #124 from Flast/feature/ticket-11157-remove-BOOST_PP_IS_EMPTY
Remove use of BOOST_PP_IS_EMPTY.
This commit is contained in:
@ -103,7 +103,8 @@ namespace ns
|
||||
BOOST_FUSION_ADAPT_ADT(
|
||||
ns::point,
|
||||
(int, int, obj.get_x(), obj.set_x(val))
|
||||
(BOOST_FUSION_ADAPT_AUTO, BOOST_FUSION_ADAPT_AUTO, obj.get_y(), obj.set_y(val))
|
||||
// Mixing auto & BOOST_FUSION_ADAPT_AUTO to test backward compatibility
|
||||
(auto, BOOST_FUSION_ADAPT_AUTO, obj.get_y(), obj.set_y(val))
|
||||
(obj.get_z(), obj.set_z(val))
|
||||
)
|
||||
|
||||
@ -128,23 +129,23 @@ namespace ns
|
||||
BOOST_FUSION_ADAPT_ADT(
|
||||
ns::point,
|
||||
(int, int, obj.get_x(), obj.set_x(val))
|
||||
(BOOST_FUSION_ADAPT_AUTO, BOOST_FUSION_ADAPT_AUTO, obj.get_y(), obj.set_y(val))
|
||||
(BOOST_FUSION_ADAPT_AUTO, BOOST_FUSION_ADAPT_AUTO, obj.get_z(), obj.set_z(val))
|
||||
(auto, auto, obj.get_y(), obj.set_y(val))
|
||||
(auto, auto, obj.get_z(), obj.set_z(val))
|
||||
)
|
||||
|
||||
# if !BOOST_WORKAROUND(__GNUC__,<4)
|
||||
BOOST_FUSION_ADAPT_ADT(
|
||||
ns::point_with_private_members,
|
||||
(BOOST_FUSION_ADAPT_AUTO, BOOST_FUSION_ADAPT_AUTO, obj.get_x(), obj.set_x(val))
|
||||
(BOOST_FUSION_ADAPT_AUTO, BOOST_FUSION_ADAPT_AUTO, obj.get_y(), obj.set_y(val))
|
||||
(BOOST_FUSION_ADAPT_AUTO, BOOST_FUSION_ADAPT_AUTO, obj.get_z(), obj.set_z(val))
|
||||
(auto, auto, obj.get_x(), obj.set_x(val))
|
||||
(auto, auto, obj.get_y(), obj.set_y(val))
|
||||
(auto, auto, obj.get_z(), obj.set_z(val))
|
||||
)
|
||||
# endif
|
||||
|
||||
BOOST_FUSION_ADAPT_ADT(
|
||||
ns::name,
|
||||
(const std::string&, const std::string&, obj.get_last(), obj.set_last(val))
|
||||
(BOOST_FUSION_ADAPT_AUTO, BOOST_FUSION_ADAPT_AUTO, obj.get_first(), obj.set_first(val))
|
||||
(BOOST_FUSION_ADAPT_AUTO, auto, obj.get_first(), obj.set_first(val))
|
||||
)
|
||||
|
||||
#endif
|
||||
|
@ -72,7 +72,7 @@ BOOST_FUSION_ADAPT_ADT_NAMED(
|
||||
ns::point, point,
|
||||
(int, int, obj.get_x(), obj.set_x(val))
|
||||
(int, int, obj.get_y(), obj.set_y(val))
|
||||
(BOOST_FUSION_ADAPT_AUTO, BOOST_FUSION_ADAPT_AUTO, obj.get_z(), obj.set_z(val))
|
||||
(auto, auto, obj.get_z(), obj.set_z(val))
|
||||
)
|
||||
|
||||
#endif // BOOST_PP_VARIADICS
|
||||
|
@ -65,7 +65,7 @@ BOOST_FUSION_ADAPT_ASSOC_ADT(
|
||||
ns::point,
|
||||
(int, int, obj.get_x(), obj.set_x(val), ns::x_member)
|
||||
(int, int, obj.get_y(), obj.set_y(val), ns::y_member)
|
||||
(BOOST_FUSION_ADAPT_AUTO, BOOST_FUSION_ADAPT_AUTO, obj.get_z(), obj.set_z(val), ns::z_member)
|
||||
(auto, auto, obj.get_z(), obj.set_z(val), ns::z_member)
|
||||
)
|
||||
|
||||
#endif
|
||||
|
@ -45,12 +45,26 @@ namespace ns
|
||||
};
|
||||
}
|
||||
|
||||
BOOST_FUSION_ADAPT_ASSOC_ADT_NAMED(
|
||||
ns::point,
|
||||
point,
|
||||
(int, int, obj.get_x(), obj.set_x(val), ns::x_member)
|
||||
(int, int, obj.get_y(), obj.set_y(val), ns::y_member)
|
||||
)
|
||||
#if BOOST_PP_VARIADICS
|
||||
|
||||
BOOST_FUSION_ADAPT_ASSOC_ADT_NAMED(
|
||||
ns::point,
|
||||
point,
|
||||
(obj.get_x(), obj.set_x(val), ns::x_member)
|
||||
(int, int, obj.get_y(), obj.set_y(val), ns::y_member)
|
||||
)
|
||||
|
||||
#else // BOOST_PP_VARIADICS
|
||||
|
||||
BOOST_FUSION_ADAPT_ASSOC_ADT_NAMED(
|
||||
ns::point,
|
||||
point,
|
||||
(auto, auto, obj.get_x(), obj.set_x(val), ns::x_member)
|
||||
(int, int, obj.get_y(), obj.set_y(val), ns::y_member)
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
class empty_adt{};
|
||||
BOOST_FUSION_ADAPT_ASSOC_ADT_NAMED(empty_adt, renamed_empty_adt,)
|
||||
|
@ -57,15 +57,15 @@ namespace ns
|
||||
BOOST_FUSION_ADAPT_ASSOC_STRUCT(
|
||||
ns::point,
|
||||
(x, ns::x_member)
|
||||
(y, ns::y_member)
|
||||
(auto, y, ns::y_member)
|
||||
(int, z, ns::z_member)
|
||||
)
|
||||
|
||||
#else // BOOST_PP_VARIADICS
|
||||
BOOST_FUSION_ADAPT_ASSOC_STRUCT(
|
||||
ns::point,
|
||||
(BOOST_FUSION_ADAPT_AUTO, x, ns::x_member)
|
||||
(BOOST_FUSION_ADAPT_AUTO, y, ns::y_member)
|
||||
(auto, x, ns::x_member)
|
||||
(auto, y, ns::y_member)
|
||||
(int, z, ns::z_member)
|
||||
)
|
||||
|
||||
|
@ -31,12 +31,26 @@ namespace ns
|
||||
};
|
||||
}
|
||||
|
||||
BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED(
|
||||
ns::point,
|
||||
point,
|
||||
(int, x, ns::x_member)
|
||||
(int, y, ns::y_member)
|
||||
)
|
||||
|
||||
#if BOOST_PP_VARIADICS
|
||||
|
||||
BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED(
|
||||
ns::point,
|
||||
point,
|
||||
(x, ns::x_member)
|
||||
(auto, y, ns::y_member)
|
||||
)
|
||||
|
||||
#else // BOOST_PP_VARIADICS
|
||||
|
||||
BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED(
|
||||
ns::point,
|
||||
point,
|
||||
(int, x, ns::x_member)
|
||||
(auto, y, ns::y_member)
|
||||
)
|
||||
|
||||
#endif
|
||||
|
||||
struct empty_struct {};
|
||||
BOOST_FUSION_ADAPT_ASSOC_STRUCT_NAMED(empty_struct, renamed_empty_struct,);
|
||||
|
@ -66,7 +66,7 @@ BOOST_FUSION_ADAPT_ASSOC_TPL_ADT(
|
||||
(ns::point)(X)(Y)(Z),
|
||||
(X, X, obj.get_x(), obj.set_x(val), ns::x_member)
|
||||
(Y, Y, obj.get_y(), obj.set_y(val), ns::y_member)
|
||||
(BOOST_FUSION_ADAPT_AUTO, BOOST_FUSION_ADAPT_AUTO, obj.get_z(), obj.set_z(val), ns::z_member)
|
||||
(auto, auto, obj.get_z(), obj.set_z(val), ns::z_member)
|
||||
)
|
||||
|
||||
#endif
|
||||
|
@ -55,7 +55,7 @@ namespace ns
|
||||
(X)(Y)(Z),
|
||||
(ns::point)(X)(Y)(Z),
|
||||
(int, x, ns::x_member)
|
||||
(Y, y, ns::y_member)
|
||||
(auto, y, ns::y_member)
|
||||
(z, ns::z_member)
|
||||
)
|
||||
|
||||
@ -65,7 +65,7 @@ namespace ns
|
||||
(ns::point)(X)(Y)(Z),
|
||||
(int, x, ns::x_member)
|
||||
(Y, y, ns::y_member)
|
||||
(BOOST_FUSION_ADAPT_AUTO, z, ns::z_member)
|
||||
(auto, z, ns::z_member)
|
||||
)
|
||||
#endif
|
||||
|
||||
|
@ -32,13 +32,17 @@
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
namespace namespaced_type {
|
||||
typedef int integer;
|
||||
}
|
||||
|
||||
namespace ns
|
||||
{
|
||||
struct point
|
||||
{
|
||||
int x;
|
||||
int y;
|
||||
int z;
|
||||
namespaced_type::integer z;
|
||||
};
|
||||
|
||||
#if !BOOST_WORKAROUND(__GNUC__,<4)
|
||||
@ -104,7 +108,7 @@ namespace ns
|
||||
BOOST_FUSION_ADAPT_STRUCT(
|
||||
ns::bar,
|
||||
foo_.x, // test that adapted members can actually be expressions
|
||||
y
|
||||
(auto , y)
|
||||
)
|
||||
|
||||
BOOST_FUSION_ADAPT_STRUCT(
|
||||
@ -119,8 +123,8 @@ namespace ns
|
||||
BOOST_FUSION_ADAPT_STRUCT(
|
||||
ns::point,
|
||||
(int, x)
|
||||
(int, y)
|
||||
(BOOST_FUSION_ADAPT_AUTO, z)
|
||||
(auto, y)
|
||||
(namespaced_type::integer, z)
|
||||
)
|
||||
|
||||
# if !BOOST_WORKAROUND(__GNUC__,<4)
|
||||
@ -128,17 +132,18 @@ namespace ns
|
||||
ns::point_with_private_attributes,
|
||||
(int, x)
|
||||
(int, y)
|
||||
(BOOST_FUSION_ADAPT_AUTO, z)
|
||||
(auto, z)
|
||||
)
|
||||
# endif
|
||||
|
||||
struct s { int m; };
|
||||
BOOST_FUSION_ADAPT_STRUCT(s, (BOOST_FUSION_ADAPT_AUTO, m))
|
||||
BOOST_FUSION_ADAPT_STRUCT(s, (auto, m))
|
||||
|
||||
BOOST_FUSION_ADAPT_STRUCT(
|
||||
ns::bar,
|
||||
(BOOST_FUSION_ADAPT_AUTO, foo_.x) // test that adapted members can actually be expressions
|
||||
(BOOST_FUSION_ADAPT_AUTO, y)
|
||||
(auto, foo_.x) // test that adapted members can actually be expressions
|
||||
(BOOST_FUSION_ADAPT_AUTO, y) // Mixing auto & BOOST_FUSION_ADAPT_AUTO
|
||||
// to test backward compatibility
|
||||
)
|
||||
|
||||
BOOST_FUSION_ADAPT_STRUCT(
|
||||
|
@ -61,13 +61,13 @@ namespace ns
|
||||
BOOST_FUSION_ADAPT_STRUCT_NAMED(
|
||||
ns::point, point,
|
||||
(int, x)
|
||||
(int, y)
|
||||
(BOOST_FUSION_ADAPT_AUTO, z)
|
||||
(BOOST_FUSION_ADAPT_AUTO, y)
|
||||
(auto, z)
|
||||
)
|
||||
|
||||
// this creates a fusion view: ns1::s1
|
||||
struct s { int m; };
|
||||
BOOST_FUSION_ADAPT_STRUCT_NAMED_NS(s, (ns1), s1, (BOOST_FUSION_ADAPT_AUTO, m))
|
||||
BOOST_FUSION_ADAPT_STRUCT_NAMED_NS(s, (ns1), s1, (auto, m))
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -75,7 +75,7 @@ namespace ns
|
||||
(ns::point)(X)(Y),
|
||||
(X, X, obj.get_x(), obj.set_x(val))
|
||||
(Y, Y, obj.get_y(), obj.set_y(val))
|
||||
(BOOST_FUSION_ADAPT_AUTO, BOOST_FUSION_ADAPT_AUTO, obj.get_z(), obj.set_z(val))
|
||||
(auto, auto, obj.get_z(), obj.set_z(val))
|
||||
)
|
||||
#endif
|
||||
|
||||
|
@ -45,7 +45,7 @@ namespace ns
|
||||
(X)(Y),
|
||||
(ns::point)(X)(Y),
|
||||
x,
|
||||
(BOOST_FUSION_ADAPT_AUTO, y)
|
||||
(auto, y)
|
||||
(int, z)
|
||||
)
|
||||
|
||||
@ -60,12 +60,12 @@ namespace ns
|
||||
(ns::point)(X)(Y),
|
||||
(X, x)
|
||||
(Y, y)
|
||||
(BOOST_FUSION_ADAPT_AUTO, z)
|
||||
(auto, z)
|
||||
)
|
||||
|
||||
template<typename M>
|
||||
struct s { M m; };
|
||||
BOOST_FUSION_ADAPT_TPL_STRUCT((M), (s)(M), (BOOST_FUSION_ADAPT_AUTO, m))
|
||||
BOOST_FUSION_ADAPT_TPL_STRUCT((M), (s)(M), (auto, m))
|
||||
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user