Am Freitag, den 15.05.2009, 10:26 -0400 schrieb José Alburquerque:
> On Fri, 2009-05-15 at 16:16 +0200, Dirk Vanden Boer wrote:
> > Hi,
> > 
> > I wanted to start using gstreamermm in my project today but ran into a
> > problem with an include file.
> > 
> > taglist.h contains this line (196)
> > const Glib::ustring VERSION = GST_TAG_VERSION;

Automake normally defines the macros PACKAGE and VERSION in the
configuration header.  You can avoid that by adding the option
"no-define" to AM_INIT_AUTOMAKE().  However, gstreamermm should not
define something with a name that has such a high probability of
clashing.

> I don't understand how that constant could be causing a problem since it
> is declared in a namespace, namely "Tag".

VERSION is a macro, so it's not namespaced.

Also, objects that need a constructor to run should not be defined in
header files, with some rare exceptions.  Not to mention that the
definition should have gone into the source file rather than the header,
as a Glib::ustring is no longer a simple value constant.

I think these constants should probably be mapped to enums, and the
corresponding name strings looked up when doing the conversion from C++
to C argument types.

--Daniel


_______________________________________________
gtkmm-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/gtkmm-list

Reply via email to