Здравствуйте.
Мне необходимо написать класс строки , используя шаблоны. Предполагается, что будет два типа строк: юникодные и анси. Вот например даю определение:
template<typename CT>
class CTestString {
public:
CTestString(void);
CTestString(const LPCTSTR lpszStr);
.................
И вот мне требуется так сделать, чтобы использовать юникодные ф-ии в случае, если я инстанциируют CTestString<wchar_t> some. Ну и соответственно , анси варианты в случае CTestString<char> some. Как вариант, приходит лишь идея создать в классе флаг — который установится в конструкторе, в зависимости от длины типа CT:
if (sizeof(CT)==2) m_bUnicode=true;
................
// а гдето ниже, в какойто ф-ии пишу:
if (m_bUnicode) m_iLength=wcslen(m_sString); else m_iLength=strlen(m_sString);
Нутром чувствую, что маразм пишу, — вернее, некрасиво и примитивно — но как по иному — не представляю. Кто-нибудь подскажет, как правильно в таким случаях пишут?