13.9 Use the Capabilities of the Module!
By far the most common mistake is to not use the full power of the module. If you find yourself writing a little “helper” class, consider why you are doing it. Or, if what you are writing seems a little clumsy, then maybe there's a more elegant approach. A bit of searching through the Essential Tools Module manuals may uncover just the thing you are looking for!
Here is a surprisingly common example:
 
main(int argc, char* argv[]){
char buf[120]; //uh oh: possible overflow
ifstream fstr(argv[1]);
RWCString line;
while (fstr.readline(buf,sizeof(buf)) {
line = buf; //hmm: extra copy
cout << line;
}
}
This program reads lines from a file specified on the command line and prints them to standard output. By using the full abilities of the RWCString class it could be greatly simplified as follows:
 
main(int argc, char* argv[]){
ifstream fstr(argv[1]);
RWCString line;
while (line.readLine(fstr)) {
cout << line;
}
}
There are countless other such examples. The point is, if it looks awkward to you, most likely there's a better way!