Re[9]: [ANN] memcpy() banned
От: Аноним  
Дата: 26.05.09 08:13
Оценка: +1
Здравствуйте, Коваленко Дмитрий, Вы писали:

А>>а std::copy для char* некошерно.


КД>Можно сделать специализацию.


Нельзя сделать специализацию.

17.3.3.1 Reserved names [lib.reserved.names]

1 It is undefined for a C++ program to add declarations or definitions
to namespace std or namespaces within namespace std unless otherwise
specified. A program may add template specializations for any stan-
dard library template to namespace std. Such a specialization (com-
plete or partial) of a standard library template results in undefined
behaviour unless the declaration depends on a user-defined name of
external linkage and unless the specialization meets the standard
library requirements for the original template.20)


А>>вообще CString заместо char*.


КД>А шо это такое — CString? Ни разу за 10 лет не использовал


Ну как Вам объяснить. вот у std::basic_string имеются какие-то size (совпадающий с length) empty (который похож на глагол опустошить), при этом совершенно нет пробразования регистра, регистронезависимого сравнения, возможности _удобно_ получить подстроку с начала/середины/конца, кошерного преобразования "ANSI" <-> Unicode и вообще не понятно, используется ли там подсчёт ссылок, оптимизация малого буфера, или ничего из этого.
CString же не обладает вышеозначенными недостатками, и вполне установленный факт, что он использует подсчёт ссылок. Стандарная строка — стандартная, и поэтому велосипеды широко используются.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.