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
signature.asc
Description: OpenPGP digital signature
_______________________________________________ gtkmm-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/gtkmm-list
