Информация об изменениях

Сообщение Re[4]: Специализация шаблонов по 2 параметрам от 21.02.2016 7:45

Изменено 21.02.2016 7:47 SVV

Здравствуйте, Erop, Вы писали:

E>Здравствуйте, SVV, Вы писали:


SVV>>Делюсь:

SVV>>если делается класс для работы как с char так и с wchar_t то конструкторов должно быть минимум 4:
SVV>>для char версии класса:
SVV>>Test(const char *) — обычная инициализация
SVV>>Test(const wchar_t *) — инициализация конвертацией wide строки в char
SVV>>для wchar_t версии класса:
SVV>>Test(const char *) — инициализация конвертацией char строки в wide
SVV>>Test(const wchar_t *) — обычная инициализация

SVV>>те же минимум 4 operator= (&), operator=(&&) и конструкторы Test (&&)


E>Не ясно зачем тут вообще шаблонный конструктор, если честно... :xz;

Верно, достаточно прописать специализацию для Test<char> и Test<wchar>.
Re[4]: Специализация шаблонов по 2 параметрам
Здравствуйте, Erop, Вы писали:

E>Здравствуйте, SVV, Вы писали:


SVV>>Делюсь:

SVV>>если делается класс для работы как с char так и с wchar_t то конструкторов должно быть минимум 4:
SVV>>для char версии класса:
SVV>>Test(const char *) — обычная инициализация
SVV>>Test(const wchar_t *) — инициализация конвертацией wide строки в char
SVV>>для wchar_t версии класса:
SVV>>Test(const char *) — инициализация конвертацией char строки в wide
SVV>>Test(const wchar_t *) — обычная инициализация

SVV>>те же минимум 4 operator= (&), operator=(&&) и конструкторы Test (&&)


E>Не ясно зачем тут вообще шаблонный конструктор, если честно... :xz;

Верно, достаточно прописать специализацию для Test<char> и Test<wchar>.

E>А как предполагается обобщать, если классов больше? Имеется в виду что есть ещё и TryA и TryW, DoA и DoW и т. д, или что, кроме A и W есть X, Y, Z?..

скорее что-то кроме A и W. То есть это опять A и W только немного по-другому будет работа со строками происходить. как буду обобщать еще не знаю.