mirror of
https://github.com/RYDE-WORK/pybind11.git
synced 2026-02-05 15:03:18 +08:00
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:
parent
acad05cb13
commit
1ac51a02f7
@ -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...);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user