isReversibleRule

Tests if something is a ReversibleRule, defined as being a Rule with the additional primitive applyRuleReverse

returns true if T is a ReversibleRule. A ReversibleRule can "reverse" the state of a ca to its previours state. It must define the primitive void applyRuleReverse(), in addition to the primitives defined in Rule

enum isReversibleRule (
T
)

Return Value

true if T is a ReversibleRule, false if not

Examples

struct A
{
    void applyRule() {}
    void applyRuleReverse() {}
}

static assert( isRule!A );
static assert(!isRule!string );

Meta