OT: C++ Template Functions
Erich Dollansky
oceanare at pacific.net.sg
Thu Dec 27 08:15:58 PST 2007
Hi,
Heiko Wundram (Beenic) wrote:
> Am Donnerstag, 27. Dezember 2007 16:42:29 schrieb Erich Dollansky:
>> Heiko Wundram (Beenic) wrote:
>>> The problem is most probably related to the fact that the group of member
>>> functions is only discriminated by return type (i.e., the template
>>> parameter defines the return type), not by parameter (which could be
>>> inferred).
>> if nothing got changed over the last years, it is not possible to do
>> this by definition.
>>
>> When I needed this the last time, I used a enum as an additonal
>> parameter to achieve this.
>>
>> I know, it is not perfect, but it leads to what I intended.
>>
>> It should work here too. I know, it is not the prefect solution.
>
> This is perfectly possible (nowadays? I've been using this for quite some time
> now, but not in the "complexity" of the original mail). Take the following
> code, for example, which compiles perfectly fine with gcc (and works, of
> course):
>
> """
> template <typename T, typename U>
> T* newop(U test)
> {
> return new T(test);
> }
>
wasn't your question that you have a class with several member functions
which would all be identical except of the return type?
It is not a problem outside a class, the problem comes when you want to
do this inside a class as you also would define a class with an - in
theory - unknown and unlimited number of member functions.
Erich
More information about the freebsd-hackers
mailing list