> >> Currently matrix.corner(TopLeft,3,3) takes TopLeft as a runtime
> >> parameter. This is based around the assumption that the compiler
> >> resolves this at compile time. In practice that seems to work although
> >> I only checked GCC. Here's an idea to resolve this at runtime: let
> >> TopLeft be an object of type CornerType<TopLeft_t>, etc... taking a
> >> common template CornerType type allows to write the function only
> >> once, yet have a guarantee that that stuff resolves at compile time.
> >
> > Sounds good, and that does not change the API right ?
>
> No API change, assuming that nobody was perverse enough to actually
> pass a runtime variable, whose value actually isn't known at compile
> time, as the corner type.