Earlier this year on 25 March, I shared my idea to this mailing list of using the 'explicit' keyword on template parameters as follows:
template<explicit class T>
void Func(T &arg)
{
/* Do Something */
}
The idea was that you would have to write:
int main(void)
{
int i;
Func<int>(i);
}
because the 'explicit' keyword would prevent automatic deduction of the type T.
You can see my original post archived here:
That same week, another contributor made another suggestion that looked similar to what I was suggesting, but which was very different in functionality. My own suggestion I think got lost in the paperwork back and forth, and so I would like to bring it to people's attention again now, as I've shared the idea elsewhere and people seeming to be overwhelming in support of it.