When accessing a dim of a shape, ideally we would allow simply auto x = s.dim<0>(). Unfortunately, the reality of template syntax issues in many situations means it has to be auto x = s.template dim<0>().
This is the main reason I added named aliases like auto x = s.x().
But, maybe a better direction to go is a free function dim<i>(s).
When accessing a dim of a shape, ideally we would allow simply
auto x = s.dim<0>(). Unfortunately, the reality of template syntax issues in many situations means it has to beauto x = s.template dim<0>().This is the main reason I added named aliases like
auto x = s.x().But, maybe a better direction to go is a free function
dim<i>(s).