Re: Template class to obtain members function result type
On 16 May, 15:11, Piotr Jachowicz <pjach...@gmail.com> wrote:
I'm aware of specializations solution. But my Seq classes are
generated from CORBA IDL sequences and I have hundrets of them in my
project - it means hundrets of specializations that makes project hard
to understand and maintain. Morover if IDL change I'll have to keep
all synchronizations sync. What's I was looking for more elegant
solution.
Can you not have a typedef for the Res_type with your Seq classes? And
all types of Seq provide this typedef. So, let's assume if Seq is a
template on Res type, we would have:
template<Res>
struct Seq
{
typedef Res res_type;
//other things
};
and then,
template<typename Seq, typename Res = Seq::res_type >
SeqIter<Seq, Res> getBegin(Seq seq, Res res);
or you can even do without the second template type parameter since
you can always get through the public typedef where you need. For ex:
template<typename Seq>
SeqIter<Seq> getBegin(Seq seq, typename Seq::res_type res);
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]