I'm just starting the process of moving a very large C++ Builder/VCL application from C++ Builder 6 to Rad Studio 2010.
Most of the application uses Strings. Many calls are made to external libraries that require char *'s, so there's liberal use of mystr.c_str() calls. This is, of course, now causing a tremendous amount of work to bring up to date. Note that DO NOT need Unicode support. This little 3-person company will not be going international. Ever.
So my question is, if you were going to essentially re-write string usage in your application, what would you use? So far I've found::
1. use String, and convert when needed (which is pretty much everywhere)
2. only use String when dealing with UI code, and std::string everywhere else.
I'm tempted to create my own string class so that c_str() would return the old char * pointers, a_str() to return ansi strings, and w_str() to return the new wide string that the VCL functions need (probably derived from std::string). A little voice in the back of my head is voting no on that one.
Soooo.... what's your recommendation?