#ifndef iNnFGNqFLlBaWFgGGH0sLM3mh40 #define iNnFGNqFLlBaWFgGGH0sLM3mh40 #include "pointers.hpp" #include "string_helpers.hpp" #include "template_helpers.hpp" /// Macros #define GEN_DP(Quant, nameT, nameS, ValueType) \ struct nameT { \ typedef ValueType type; \ typedef Quant quant; \ typedef Quant::instance_ptr_t instance_ptr_t; \ static const uint32_t size = sizeof(ValueType); \ static const char* const name; \ }; \ \ const char* const nameT::name = nameS; #define GEN_DP_DELAY(DQuant, CQuant, Rule) \ template<> \ struct DiscreteProperty_ComputeDelay { \ template \ inline static Time eval(PC &pc, Context context, \ Transaction transaction, Time t) { \ return Rule; \ } \ }; /// default impls template struct DiscreteProperty_ComputeDelay { template inline static Time eval(PC &, Context, Transaction, Time) DO_NOT_CALL }; #endif // iNnFGNqFLlBaWFgGGH0sLM3mh40