Am 20.05.2012 16:15, schrieb Hannu Vuolasaho:
> 
> Hello everyone!
> 
> I'm thinking of supporting UTF-8 in my small console application and ustring 
> would be quite useful and using gtkmm there is possibility to add GUI also. 
> However some systems might not have gtkmm installed and in that case I'd like 
> to fall back to std string.
> 
> Is this behaviour achievable some kind of wrapper class easily?
> I'm thinking something like:
> #ifdef HAVE_GTKMM
> class myString: public ustring{
> ....
> #else
> class myString:public std::string{
> ...
> #endif
> and myString would act like stdstring or ustring.
> Or what kind solution would be good?
> 
> best regards,
> Hannu Vuolasaho
>                                         

I don't think public inheritance of std::string is a good idea. ustring
doesn't either, for various reasons. Without further research, I suggest
two options:

1. Create your own class which doesn't inherit from either one but
contains an instance and mimics the interface -- basically doing what
ustring does with regard to std::string.

2. Since ustring and std::string have very similar interfaces, you might
get away with a preprocessor-dependant typedef like
#ifdef HAVE_GTKMM
typedef Glib::ustring mystring;
#else
typedef std::string mystring;
#endif

Regards,
Florian Philipp

Attachment: signature.asc
Description: OpenPGP digital signature

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

Reply via email to