Minor operators.h style cleanups

- realign \ at end of macro lines
- use 'using A = B;' rather than 'typedef B A;'
- use conditional_t
This commit is contained in:
Jason Rhinelander 2017-05-20 20:33:18 -04:00
parent acad05cb13
commit 1ac51a02f7

View File

@ -49,17 +49,17 @@ template <op_id, op_type, typename B, typename L, typename R> struct op_impl { }
/// Operator implementation generator /// Operator implementation generator
template <op_id id, op_type ot, typename L, typename R> struct op_ { template <op_id id, op_type ot, typename L, typename R> struct op_ {
template <typename Class, typename... Extra> void execute(Class &cl, const Extra&... extra) const { template <typename Class, typename... Extra> void execute(Class &cl, const Extra&... extra) const {
typedef typename Class::type Base; using Base = typename Class::type;
typedef typename std::conditional<std::is_same<L, self_t>::value, Base, L>::type L_type; using L_type = conditional_t<std::is_same<L, self_t>::value, Base, L>;
typedef typename std::conditional<std::is_same<R, self_t>::value, Base, R>::type R_type; using R_type = conditional_t<std::is_same<R, self_t>::value, Base, R>;
typedef op_impl<id, ot, Base, L_type, R_type> op; using op = op_impl<id, ot, Base, L_type, R_type>;
cl.def(op::name(), &op::execute, is_operator(), extra...); cl.def(op::name(), &op::execute, is_operator(), extra...);
} }
template <typename Class, typename... Extra> void execute_cast(Class &cl, const Extra&... extra) const { template <typename Class, typename... Extra> void execute_cast(Class &cl, const Extra&... extra) const {
typedef typename Class::type Base; using Base = typename Class::type;
typedef typename std::conditional<std::is_same<L, self_t>::value, Base, L>::type L_type; using L_type = conditional_t<std::is_same<L, self_t>::value, Base, L>;
typedef typename std::conditional<std::is_same<R, self_t>::value, Base, R>::type R_type; using R_type = conditional_t<std::is_same<R, self_t>::value, Base, R>;
typedef op_impl<id, ot, Base, L_type, R_type> op; using op = op_impl<id, ot, Base, L_type, R_type>;
cl.def(op::name(), &op::execute_cast, is_operator(), extra...); cl.def(op::name(), &op::execute_cast, is_operator(), extra...);
} }
}; };