On Sunday, 11 December 2016 at 22:48:56 UTC, Chris Wright wrote:
On Sun, 11 Dec 2016 18:08:04 +0000, safety0ff wrote:
[...]

That's one option. Here's another:

Template instantiations are interned as they are constructed (or at least should be). You must construct their arguments before you instantiate the template. Therefore you can do a reference equality check instead of checking the values of the parameters.

[...]

Collisions are not the problem.
In the worst case they add a linear factor.

If you truly get the interning right, it will reduce the complexity from O(n!) to O(n^2.6) However it will pessimize the overall performance of everything that are not deeply recursive templates.

Reply via email to