Template type parameters with their own type parameters

spir denis.spir at gmail.com
Sat Mar 5 04:51:18 PST 2011


On 03/05/2011 04:02 AM, Peter Lundgren wrote:
> I have a function that I think should look something like this:
>
> MyStruct!T myFunc(T)(MyStruct!T x, ...) {
> 	...
> 	return MyStruct!T(...);
> }
>
> and the closest I can get to is:
>
> T myFunc(T)(T x, ...) {
> 	...
> 	return T(...);
> }
>
> which works, but doesn't make clear the intended use and gets in the way of
> overloading. How can I express the intent of the first version.

Maybe I do not exactly understand your problem; anyway, the following runs fine 
by me:

struct S (T) {
     T v;
}

S!T inc (T) (S!T s) {
     return S!T(s.v + 1);
}

unittest {
     auto s1 = S!int(1);
     auto s2 = inc(s1);
     assert ( s2.v == 2 );
}

Could you provide (1) context (2) example (3) errors?

Denis
-- 
_________________
vita es estrany
spir.wikidot.com



More information about the Digitalmars-d-learn mailing list