1 #ifndef SUBORDINATION_PPL_KERNEL_PROTO_FLAG_HH 2 #define SUBORDINATION_PPL_KERNEL_PROTO_FLAG_HH 15 enum flag_enum: flag_type {
16 prepend_source_and_destination = 1,
17 prepend_application = 2,
18 save_upstream_kernels = 4,
19 save_downstream_kernels = 8,
32 operator flag_type()
const noexcept {
38 this->_flag |= flag_type(rhs);
44 this->_flag &= flag_type(rhs);
50 #define MAKE_UNARY(op) \ 51 inline kernel_proto_flag \ 52 operator op(kernel_proto_flag rhs) noexcept { \ 53 return op kernel_proto_flag::flag_type(rhs); \ 56 #define MAKE_BINARY(op, return_type) \ 58 operator op(kernel_proto_flag lhs, kernel_proto_flag rhs) noexcept { \ 59 return kernel_proto_flag::flag_type(lhs) op kernel_proto_flag::flag_type(rhs); \ 62 operator op(kernel_proto_flag::flag_type lhs, kernel_proto_flag rhs) noexcept { \ 63 return lhs op kernel_proto_flag::flag_type(rhs); \ 66 operator op(kernel_proto_flag lhs, kernel_proto_flag::flag_type rhs) noexcept { \ 67 return kernel_proto_flag::flag_type(lhs) op rhs; \ 82 #endif // vim:filetype=cpp Definition: kernel_proto_flag.hh:6