Re: templating
- From: Bernd Robertz <bernd robertz cssweb de>
- To: Robert Rehammar <robert rehammar se>
- Cc: gtkmm-list gnome org
- Subject: Re: templating
- Date: Sun, 21 Dec 2008 15:59:46 +0100
Hi, Robert,
I'm sorry, but I see no easy option to do this task.
But perhaps someone else have a solution about this.
I'm not familiar with it, but perhaps you could use a technique
like binding extra arguments in signal handlers. Described hiere:
http://gtkmm.org/docs/gtkmm-2.4/docs/tutorial/html/sec-binding-extra-arguments.html
You can bind extra agruments through the signal proxy in Gtkmm, wich, as
far as I know also template-based.
If I'm wrong feel free to correct Me.
Greetings
Bernd
Am Sonntag, den 21.12.2008, 13:02 +0100 schrieb Robert Rehammar:
> Hi Bernd,
>
> Thank you for your reply, but this is not an option for me since tClass
> in my case is actually derived from a base class in Glib which requires
> a parameter. So if I can't pass a parameter then there is no point in
> doing this at all for me.
>
> Regards,
> Rober
>
>
> On Sun, 2008-12-21 at 12:07 +0100, Bernd Robertz wrote:
> > Hello,
> >
> > ok, if I got your problem, you ran into the problem, that you can't pass
> > arguments to the template class, because the template class itself is a
> > argument.
> >
> > You have to write a method wich forks the additional parameters like
> > this:
> >
> > myNodeClass<tClass> sometpl;
> > sometpl.push_back("parameter"); // where parameter is type string
> >
> > So the constructor of tClass don't have parameters.
> >
> > Just have a look at
> >
> > http://www.cppreference.com/wiki/stl/vector/vector_constructors
> >
> > There you can define wich type of template the vector should contain,
> > but the template data is later.
> >
> > If I have missunderstood your problem, or I'm generally wrong, just
> > correct Me. :-)
> >
> > Greetings
> >
> > Bernd
> >
> >
> > Am Sonntag, den 21.12.2008, 08:52 +0100 schrieb Robert Rehammar:
> > > Hi all,
> > >
> > > I'm writing a small program and has bumped in to a problem. It is
> > > probably actually C++ related, but since it should be a problem lot's of
> > > people here face I'll ask here. I want to do the following:
> > >
> > > class tClass {
> > > tClass (string s) {...};
> > > ...
> > > }
> > >
> > > class myNodeClass : NodeTree<tClass> {
> > > myNodeClass (string s) :
> > > NodeTree<tClass> {
> > > ...
> > > };
> > > }
> > >
> > > But this won't compile as the template for NodeTree, tClass, requires a
> > > parameter (the string s) and I simply can't figure out how to pass it to
> > > the template.
> > >
> > > Writing the constructor as
> > >
> > > myNodeTree (string s): NodeTree<tClass (s)> won't compile, complaining
> > > that s can't appear in a constant expression, so this seem so suggest
> > > that I can't template with a class that require any parameters for
> > > initiation...
> > >
> > > Thanks in advance!
> > >
> > > \\Robert Rehammar
> > >
> > > _______________________________________________
> > > gtkmm-list mailing list
> > > gtkmm-list gnome org
> > > http://mail.gnome.org/mailman/listinfo/gtkmm-list
> >
>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]