syntax sugar: std.path::buildPath instead of from!"std.path".buildPath
ZombineDev via Digitalmars-d
digitalmars-d at puremagic.com
Wed Feb 15 16:37:00 PST 2017
On Thursday, 16 February 2017 at 00:08:12 UTC, Walter Bright
wrote:
> On 2/15/2017 12:31 PM, Jonathan M Davis via Digitalmars-d wrote:
>> It's one of those features that I was surprised when you
>> couldn't do it.
>
> It was an oversight. We just never thought of it.
What do you think about generalizing this feature to allow
introducing template value parameters without default value, i.e.:
// Note: `beg` and `end` have no default value
auto bounded
(auto beg, auto end, auto onErrPolicy = Enforce("Value out of
range"), T)
(T value)
{
return Bounded!(beg, end, Policy)(value);
}
struct Enforce
{ this(string) { /* */ } }
int tmp;
readf("%s", &x);
enum policy = Enforce("User age must be between 18 and 150");
auto userAge = bounded!(18, 150, policy)(tmp);
"Declaring non-type template arguments with auto" is also coming
to C++17:
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/p0127r1.html
BTW, shouldn't we use `enum`, instead of `auto`, since everywhere
else `enum` means guaranteed to be computed at compile-time
whereas `auto` means the opposite?
More information about the Digitalmars-d
mailing list