On Thursday, 18 October 2012 at 23:51:44 UTC, Timon Gehr wrote:
If the issue _is_ with the signature, then the compiler should tell you. That is the (secondary) job of the compiler.

But not everything is parsed/compiled if it doesn't match the constraints, especially template functions. Sometimes I wish I had more information of what signatures it generated, what it compared against, and why each of them were disqualified; But that's regarding more complex stuff.


That is a lot better, but what if the typo is within the first 3 characters? :o)

If the beginning doesn't match 'op(Op)?[A-Z]', then you can't safely guess it was ever intended to override operators. If it has the keyword override then you know in a class it's polymorphic, however in a struct.... Hmmm... i don't know.

Maybe a small suite list of tests that go through a few dozen templates and tells you what a struct qualifies for, like ranges, random access, forward/reverse, infinite. Etc. Might be more informational but if you expect you struct to do something and it doesn't qualify then you have a better idea at least of what is wrong.

Reply via email to