Walter: > Adding such error messages misses the point of constraints. The idea is that > template overloading is based on constraints. Given 3 templates with 3 > constraints, overload resolution picks the one with constraints that pass. > Giving error messages for the others is wrong.
You are right, I miss things all the time :-) Thank you for your patience. > If you want it to produce error messages if the instantiation is wrong, the > correct way is to use static asserts within the template body. No additional > features serve any purpose. If the purpose is to produce error messages if the instantiation is wrong, then using a "static precondition" instead of normal free static asserts may give a bit better error messages (errors at the instantiation point instead of inside the template). But I guess this is just a limit of the compiler, not a problem of the language... Bye, bearophile