![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Обсуждаю статью
voidbent-а (он же Вова Фролов) "General policy pattern".
Она относится к class metaprogramming, на основе C++.
Идея в том, чтобы в некоей библиотеке сложить все классы compile-time policy в один и какие выгоды это даёт.
Спор в комментах.
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Она относится к class metaprogramming, на основе C++.
Идея в том, чтобы в некоей библиотеке сложить все классы compile-time policy в один и какие выгоды это даёт.
Спор в комментах.
Tags:
(no subject)
16/5/06 03:28 (UTC)Потому что сложность библиотеки с каждой новой полиси растёт экспоненциально. Даже Александреску нигде больше 4-х полиси не использует. А в случае с ГП мы можем все аспекты библиотеки смело выносить в полиси.
--
void
И вопрос
16/5/06 03:57 (UTC)А сложность написания? А переносимость?
Re: И вопрос
16/5/06 04:49 (UTC)Например стандарт С++ говорит что std::basic_string может иметь ref-counted implementation. Это говорит о том что мы можем использовать std::string в многопоточности только если конкретная реализация STL-я гарантирует что std::string не будет ref-counted. А почему не дать возможность пользователю самому управлять этим аспектом?
Какая библиотека переносимее, в которой пользователь может управлять абсолютно всем или в которой пользователь может управлять только выделением памяти?
Кстати в stl-е из за этого и сделали всего одну полиси, потому что в модели когда все полиси передаються отдельным параметром структурная сложность библиотеки растёт экспоненциально.
Re: И вопрос
16/5/06 04:53 (UTC)Позиция алексанреску и Loki : Это не правильно. Решения нельзя хардокить. Надо любые спорные аспекты выносить в policy.
Позиция моя и ГП : Надо любые аспекты (а не только спорные) выносить в полиси. Есть способ наращивать полиси линейно.