};
template <int KIND>
+ComplexComponent(bool, const Expr<Type<TypeCategory::Complex, KIND>> &)
+ -> ComplexComponent<KIND>;
+
+template <int KIND>
+ComplexComponent(bool, Expr<Type<TypeCategory::Complex, KIND>> &&)
+ -> ComplexComponent<KIND>;
+
+template <int KIND>
struct Not : public Operation<Not<KIND>, Type<TypeCategory::Logical, KIND>,
Type<TypeCategory::Logical, KIND>> {
using Result = Type<TypeCategory::Logical, KIND>;
};
template <typename PA>
+InstrumentedParser(const MessageFixedText &, const PA &)
+ -> InstrumentedParser<PA>;
+
+template <typename PA>
inline constexpr auto instrumented(
const MessageFixedText &tag, const PA &parser) {
return InstrumentedParser{tag, parser};
};
template <typename PA>
+MessageContextParser(MessageFixedText, PA) -> MessageContextParser<PA>;
+
+template <typename PA>
inline constexpr auto inContext(MessageFixedText context, PA parser) {
return MessageContextParser{context, parser};
}
};
template <typename PA>
+WithMessageParser(MessageFixedWidth, PA) -> WithMessageParser<PA>;
+
+template <typename PA>
inline constexpr auto withMessage(MessageFixedText msg, PA parser) {
return WithMessageParser{msg, parser};
}