Re[20]: Cоздание базового шаблона минуя специализацию
От: rg45 СССР  
Дата: 29.10.22 10:03
Оценка: +1
Здравствуйте, so5team, Вы писали:

S>Могу ошибаться, но может быть есть способ объединить лучшее из двух миров?


S>Идея в том, что сейчас fmtlib просто инстанциирует тип formatter там, где ей это нужно. Наверное, можно создавать formatter не напрямую, а вызвав функцию-фабрику, которая уже и возвратит экземпляр formatter.


S>Функция-фабрика будет свободной функцией, которая может быть определена и в пространстве имен пользователя.


Вот такое решение мне нравится гораздо больше. С одной стороны, обеспечивается обратная совместимость с уже написанными форматтерами в виде специализаций. При этом появляются новые возможности, о которых говорилось выше:


В конце концов, с таким подходом пользователь может самостоятельно осуществить переход от форматтеров-классов к форматтерам-функциям, если очень хочется. А может использовать какие-то более сложные гибридные схемы. Вместо одной точки кастомизации теперь их целых три: специализация библиотечного шаблона класса; фабрики форматтеров; пользовательский форматтер. Пользовательский форматтер вообще можно навернуть с какой угодно сложностью и обеспечить еще 100500 точек кастомизации, специфичных для прикладной области. В целом гибкость и юзабельность существенно лучше, чем в текущем подходе со специализациями.

--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 29.10.2022 11:05 rg45 . Предыдущая версия . Еще …
Отредактировано 29.10.2022 11:03 rg45 . Предыдущая версия .
Отредактировано 29.10.2022 10:58 rg45 . Предыдущая версия .
Отредактировано 29.10.2022 10:57 rg45 . Предыдущая версия .
Отредактировано 29.10.2022 10:56 rg45 . Предыдущая версия .
Отредактировано 29.10.2022 10:31 rg45 . Предыдущая версия .
Отредактировано 29.10.2022 10:04 rg45 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.