On Friday, 14 July 2017 at 19:49:05 UTC, Andrei Alexandrescu wrote:
On 7/14/17 2:19 PM, data pulverizer wrote:
template Construct(R: Union{double, int}, W: Union{string, char, dchar})

template Construct(R, W)
if ((is(R == double) || is(R == int))
    && (is(W == string) || is(W == char) || is(W == dchar))

It would be good to get comments and suggestions before I write a DIP.

An effective way of improving the state of affairs would be to create a PR that makes the constraint easier to read and write, e.g.:

among!(R, double, int) && among!(W, string, char, dchar)

In fact it's surprising it hasn't been proposed yet.

Andrei

But specializations are quite different from constraints, no? Constraints wouldn't help when the template name is overloaded and passes the constraint checks of several different template implementations; specializations narrow things down for overload resolution.

Unless I'm misunderstanding the OP or everyone else in the thread somehow :/

Reply via email to