Templates! Using templates can reduce the amount of code because you can have a class or function/method that can be reusable with many datatypes.
Consider the following:
#include
using std::basic_string;
template
void CreateString(basic_string s)
{
//...
}
The basic_string could be composed of char, wchar_t, unsigned char or unsigned wchar_t.
Templates could also be used for a panoply of different things such as traits, class specialization or even used to pass a int value to a class!