struct Foo { enum uint Dimension = 2; private bool state = false; int[2][] getNeighboursCoordinates(int x, int y) { if(state) { return [[x+1, y+1]]; } else { return [[x-1, y-1]]; } } void shift() { state = !state; } } static assert(! isShiftingNeighbourhood!(Foo, 3)); static assert( isAnyShiftingNeighbourhood!(Foo ));
$(IS_ANY ShiftingNeighbourhood)