Я не могу понять, как использовать boost::flyweight
как шаблон GOF. Есть ли где-нибудь пример?
Например, я ожидаю это использование следующим образом. Должен быть какой-то контейнер с навесом, который состоит из «жирных» объектов. Этот контейнер может дать некоторый легкий «держатель / дескриптор» для некоторого объекта. И я могу хранить дескриптор в каком-то контейнере.
Я не могу понять, как получить «держатель / дескриптор» объекта от boost::flyweight
,
Реализация шаблона не должна отображать 1: 1 в исходное описание шаблона. Это хорошая вещь, поскольку можно использовать языковые функции, недоступные в любом наборе функций, которые использовались GoF, сделать эту реализацию более производительной, менее многословной, более удобной в обслуживании и т. д. и т. д.
boost::flyweight
является «легкий держатель / дескриптор»:
Boost.Flyweight упрощает использование этой распространенной идиомы программирования, предоставляя шаблон класса
flyweight<T>
, который выступает в качестве замены для заменыconst T
,
Других решений пока нет …