Added template meta-programming utilities to control size of types