Re: [gtkmm] gtkmm3 speculation: intermediate types.

Am Mon, 2002-11-04 um 12.45 schrieb Murray Cumming:
> I'm not very comfortable with our use of intermediate types in the API:
> People don't know how to use them unless they read the book or reference
> documentation.
> I think their advantage (You can choose whether to use a list, vector,
> or whatever, instead of us choosing for you) doesn't outweigh the
> disadvantage (they make the API less clear, and people might we're
> stupid enough to implement non-standard containers). Please discuss.

Uhm, I don't think it's a good idea to force a certain container type,
even though I agree that newbies often don't get it at the first
glance.  Here are some points pro container handles:

1) The handles support more than just containers.  E.g. you can pass an
iterator sequence to a method taking a *Handle as argument:

    combo.set_popdown_strings(Glib::sequence(foo.begin(), foo.end());

This is the natural STL approach, actually.

2) If we'd force a container type then using a different container would
involve an extra copy.  We're talking about *whole* containers here,
thus that has to be considered.

3) For methods that return *Handle it's even worse.  The container
handles are called handles because copying them doesn't involve a
container copy.  If such a method would return e.g. std::vector<> the
extra copy would be unavoidable.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]