Элегантность решения с шаблонами
От: tomek Украина  
Дата: 22.03.08 10:34
Оценка:
Здравствуйте.
Мне необходимо написать класс строки , используя шаблоны. Предполагается, что будет два типа строк: юникодные и анси. Вот например даю определение:
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);


Нутром чувствую, что маразм пишу, — вернее, некрасиво и примитивно — но как по иному — не представляю. Кто-нибудь подскажет, как правильно в таким случаях пишут?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.