We propose a way to spell a universal template parameter kind. This would allow for a generic apply and other higher-order template metafunctions, and certain typetraits.
I'm thinking that the reason we can't see advantages to mathematically correct is that we are at the bottom of the hierarchy, where there is no further step to even less specificity.
On the other hand I think what was said about auto being contravariant means that:
template<template class X> class Y {};
Here only these forms of arguments are allowed, if I understand correctly:
template class A1;
template class A2;
template class A3;
templates class A4;
I think this is a mistake. We already had "easy" when it comes to variadics:
template<template class X> class Y;
Y y; // Works even though vector can only take one or two template arguments.
I'm thinking that the reason we can't see advantages to mathematically correct is that we are at the bottom of the hierarchy, where there is no further step to even less specificity.
On the other hand I think what was said about auto being contravariant means that:
template<template class X> class Y {};
Here only these forms of arguments are allowed, if I understand correctly:
template class A1; template class A2;
template class A3;
templates class A4;
I think this is a mistake. We already had "easy" when it comes to variadics:
template<template class X> class Y;
Y y; // Works even though vector can only take one or two template arguments.