Parameterized enum does not work
Daniel Kozak via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Jan 8 23:52:49 PST 2015
On Friday, 9 January 2015 at 07:50:53 UTC, Daniel Kozak wrote:
> On Friday, 9 January 2015 at 06:17:53 UTC, Andre wrote:
>> Hi,
>>
>> Should following coding work?
>>
>> string lpad(ubyte length, long n)
>> {
>> import std.string: rightJustify;
>> import std.conv: to;
>> return rightJustify(to!string(n), length, '0');
>> }
>>
>> enum lpad14(long n) = lpad(14, n);
>>
>> void main()
>> {
>> lpad14(123);
>> }
>>
>> There is following error from dmd:
>>
>> source\app.d(12): Error: template app.lpad14 cannot deduce
>> function from argumen
>> t types !()(int), candidates are:
>> source\app.d(8): app.lpad14(long n)
>>
>> Kind regards
>> André
>
> What are you trying to do?
OK I probably see it now :):
import std.stdio;
string lpad(ubyte length, long n)
{
import std.string: rightJustify;
import std.conv: to;
return rightJustify(to!string(n), length, '0');
}
enum lpad14(long n) = lpad(14, n);
void main()
{
writeln(lpad14!(123));
}
More information about the Digitalmars-d-learn
mailing list