Re[6]: Специализация шаблонов по 2 параметрам
От: SVV Беларусь  
Дата: 22.02.16 09:33
Оценка:
Здравствуйте, Кодт, Вы писали:

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


SVV>>я не совсем понял намёк, сорри. Мой уровень не достаточен. Но смысл в том чтобы сделать объект класса минимального размера. Выделать 4 байта под deleter пока не хочется. Но про allocator/deallocator уже что-то думается. Надо будет как-то через параметр шаблона что-то передавать и не сохраняя как член класса использовать в методах. Если это возможно.


К>Намёк такой, что сделать класс сам по себе минимально специализируемым. Один шаблон и всё.

К>А места для конкретизации вынести за его пределы.

К>Я не знаю, нужно ли кастомизировать владение. Это примерно по аналогии с макросами A2W и т.п. в MFC/ATL/WTL — если строка того же типа, то прозрачно держим указатель на оригинал, а если другого — создаём копию, которую потом удалим.

К>Если нужно — тогда будет деаллокатор-или-пусто. В конце концов, это не 4 байта, а 1 (булев флажок), — хотя всё равно, с учётом выравнивания, вырастет до 4 байтов.
К>Если копия строки создаётся всегда, — то не нужно, делаем безусловный деструктор.
на длину строки отведено 4 байта. некоторые типы строк всегда будут содержать только указатель и не освобождать данные. в таких случаях char -> wchar преобразование невозможно. в других строках старший бит длины определяет надо ли освобождать данные. Таким образом, длина строки только 2^31, чего в большинстве случаев достаточно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.