On Wednesday, 24 February 2021 at 06:18:02 UTC, H. S. Teoh wrote:
Usually it's when there's a decision that needs to be made at compile-time (or desirable to be made at compile-time for whatever reason). For example, if there are two very different branches of code that should run depending on the value of parameter, and user code is expected to want only one or the other code path, so fixing the code path at compile-time may be advantageous.

D's operator overloading is one example of this. It takes a compile-time string containing the operator, which lets the implementor choose whether to implement multiple operator overloads separately, or grouped together in a common implementation. E.g.:

Thank you for the additional clarification with a new example. Compile-time parameters are indeed a powerful tool.

Reply via email to