singalen: (portrait)
[personal profile] singalen
Обсуждаю статью [livejournal.com profile] voidbent-а (он же Вова Фролов) "General policy pattern".
Она относится к class metaprogramming, на основе C++.
Идея в том, чтобы в некоей библиотеке сложить все классы compile-time policy в один и какие выгоды это даёт.
Спор в комментах.

(no subject)

16/5/06 03:28 (UTC)
Posted by (Anonymous)
Я не припоминаю случаев, когда бы у меня было более двух классов-полиси на класс.

Потому что сложность библиотеки с каждой новой полиси растёт экспоненциально. Даже Александреску нигде больше 4-х полиси не использует. А в случае с ГП мы можем все аспекты библиотеки смело выносить в полиси.
--
void

Re: И вопрос

16/5/06 04:49 (UTC)
Posted by (Anonymous)
Сложность написания библиотеки с каждой полиси в ГП как я уже и говорил растёт линейно. Т.е. полиси можно наращивать итеративно. Библиотеку будет использовать легко, и она будет переносимой (не только с платформы на платформу, но и из контекста в контекст).

Например стандарт С++ говорит что std::basic_string может иметь ref-counted implementation. Это говорит о том что мы можем использовать std::string в многопоточности только если конкретная реализация STL-я гарантирует что std::string не будет ref-counted. А почему не дать возможность пользователю самому управлять этим аспектом?

Какая библиотека переносимее, в которой пользователь может управлять абсолютно всем или в которой пользователь может управлять только выделением памяти?

Кстати в stl-е из за этого и сделали всего одну полиси, потому что в модели когда все полиси передаються отдельным параметром структурная сложность библиотеки растёт экспоненциально.

Re: И вопрос

16/5/06 04:53 (UTC)
Posted by (Anonymous)
Позиция stl-я и комитета стандартизации: Всё, чего я не знаю, нету. Например нету многопоточности. Но мы многопоточность имели в виду.

Позиция алексанреску и Loki : Это не правильно. Решения нельзя хардокить. Надо любые спорные аспекты выносить в policy.

Позиция моя и ГП : Надо любые аспекты (а не только спорные) выносить в полиси. Есть способ наращивать полиси линейно.

March 2023

S M T W T F S
   1234
567891011
12131415161718
19202122232425
262728293031 

Page Summary

Page generated 23/7/25 16:37

Expand Cut Tags

No cut tags