how to instantiate explicitly template parameters in struct A(T1){this(T2)(){...}}
Jonathan M Davis
jmdavisProg at gmx.com
Mon May 13 13:42:59 PDT 2013
On Monday, May 13, 2013 13:27:44 Timothee Cour wrote:
> While writing DIP40, I came upon the following question:
> how to instantiate explicitly template parameters for both the
> class/struct AND the constructor?
> for example: struct A(T1){this(T2)(){...}} ? (T2 could be used
> somehow inside the ctor body for example)
> // auto a=A!double!int(); // CT error
> The example is a bit contrived but there could be less contrived ones
> where both A and ctor need explicit instantiations.
I don't believe that you can _ever_ give explicit template arguments to a
constructor whether the type is templated or not. Note that this code doesn't
compile:
struct S
{
this(T)(T val)
{
}
}
void main()
{
auto s = S!float(5);
}
and gives this error:
q.d(10): Error: template instance S!(float) S is not a template declaration, it
is a struct
q.d(10): Error: template instance S!(float) S is not a template declaration, it
is a struct
- Jonathan M Davis
More information about the Digitalmars-d-learn
mailing list