[Issue 16410] attribute inference inside templated classes

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Sun Aug 21 07:11:48 PDT 2016


https://issues.dlang.org/show_bug.cgi?id=16410

b2.temp at gmx.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|rejects-valid               |
                 CC|                            |b2.temp at gmx.com
           Severity|major                       |enhancement

--- Comment #2 from b2.temp at gmx.com ---
This is an enhancement request not a bug report. 

The member function itself is not a template and since attribs are infered only
for templated functions the error message is correct. 

With "auto" return type the member function becomes a template so it works. It
would also work with a template this parameter or with empty CT parameters.

°°°°°°°°°°°°°°°°°°°°°°°
class Bar(T)
{
    T t;
    ulong a()(){return t.length;}
    ulong b(this T)(){return t.length;}
    auto c(){return t.length;}
}

@nogc void main()
{
    import std.experimental.allocator;
    import std.experimental.allocator.mallocator;
    auto alloc = Mallocator.instance;
    auto a = alloc.make!(Bar!string).a;
    auto b = alloc.make!(Bar!string).b;
    auto c = alloc.make!(Bar!string).c;
}
°°°°°°°°°°°°°°°°°°°°°°°

Definitively not a "rejects-valid".

--


More information about the Digitalmars-d-bugs mailing list