Boost logo

Boost :

From: Reece Dunn (msclrhd_at_[hidden])
Date: 2005-09-15 09:52:25


Alec Ross wrote:
>In message <dgbrjk$k7r$1_at_[hidden]>, Adam Badura <abadura_at_[hidden]>
>writes
> >2) using own classes instead of standard (most common for string)
>(wxWidgets
> >and MFC for example)
>
>wxWidgets has a wxString class: but you can use a std::string as well;
>and wxWidgets may well migrate to using std::string. Currently it is
>forward compatible, to the extent that it implements most of the
>std::string functions.
>
>But I take the point that wxWidgets and MFC currently have native types
>that (approximately) duplicate the std versions.

Also, there is nothing stopping you doing:

   window.SetText( std::string( "Hello World" ).c_str());

and:

   ATL::CString text;
   window.GetText( text );
   return std::string( static_cast< const char * >( text ));

If you want to use TCHAR's:

   typedef std::basic_string< TCHAR > _tstring;

so you could have:

   namespace boost { namespace gui
   {
#if defined(BOOST_WINDOWS) || defined(BOOST_HAS_TCHAR)
      typedef std::basic_string< TCHAR > string;
#else
      typedef std::string string;
#endif
   }}

Then you can use gui::string in a generic, cross-platform way. Granted, it
is (slightly) more work, but there is no need to use the string types
provided by a particular GUI framework.

- Reece Haston Dunn
Software Engineer, Sophos
www.sophos.com


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk