Re: Using std string when ustring is not available.



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



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