Why restricting to HyperRectangularDomain ? 
maybe you could consider adding Domain in template parameter list (then alias the domain at construction)...