Templates in classes => what is wrong?
Xan
xancorreu at gmail.com
Tue Apr 17 11:03:30 PDT 2012
On Tuesday, 17 April 2012 at 18:00:55 UTC, Xan wrote:
> On Tuesday, 17 April 2012 at 15:59:25 UTC, Ali Çehreli wrote:
>> On 04/17/2012 08:42 AM, Xan wrote:
>>
>> > How to get the "code" of a function or delegate
>> >
>> > |___string toString() {
>> > |___|___return format("%s (versió %s): Domini -> Recorregut,
>> %s(x) =
>> > %s", nom, versio, nom, &funcio);
>> >
>> > |___}
>> >
>> > does not produce the desired result and &funcio without
>> ampersand
>> > produces me an error.
>> >
>> > So, my doubts are:
>> > given a function:
>> >
>> > - how can I get the domain
>> > - how can I get the range
>>
>> I did not understand those. :(
>
> Domain is the set of values that we pass to the function and
> Range is the set of Values which are returned by function.
>
> V delegate (U) f;
> f has Domain U and Range V
>
> I want to "print" the type of "U" and "V".
>
> Something like:
>
> class Algorisme(U,V) {
> string nom;
> uint versio;
> alias V delegate (U) Funcio;
> Funcio funcio;
>
>
> this(string nom, uint versio, Funcio funcio) {
> this.nom = nom;
> this.versio = versio;
> this.funcio = funcio;
> }
>
> string toString() {
> return format("%s (versió %s): %s -> %s, %s(x) = %s", nom,
> versio, V, U, nom, &funcio);
>
> }
> }
>
>
> but I receive
>
> algorisme.d:24: Error: type int has no value
> algorisme.d:24: Error: type int has no value
Solved with typeid:
string toString() {
|___|___return format("%s (versió %s): %s -> %s, %s(x) = %s",
nom, versio, typeid(V), typeid(U), nom, &funcio);
|___}
More information about the Digitalmars-d-learn
mailing list