Как использовать boost::flyweight в качестве шаблона GOF?

Я не могу понять, как использовать boost::flyweight как шаблон GOF. Есть ли где-нибудь пример?

Например, я ожидаю это использование следующим образом. Должен быть какой-то контейнер с навесом, который состоит из "жирных" объектов. Этот контейнер может дать некоторый легкий "держатель / дескриптор" для некоторого объекта. И я могу хранить дескриптор в каком-то контейнере.

Я не могу понять, как получить "держатель / дескриптор" объекта от boost::flyweight,

1 ответ

Решение

Реализация шаблона не должна отображать 1:1 в исходное описание шаблона. Это хорошо, поскольку можно использовать языковые функции, недоступные в любом наборе функций, которые использовались GoF, чтобы сделать эту реализацию более производительной, менее многословной, более удобной в обслуживании и т. Д. И т. Д.

boost::flyweight это "легкий держатель / дескриптор":

Boost.Flyweight упрощает использование этой распространенной идиомы программирования, предоставляя шаблон класса flyweight<T>, который выступает в качестве замены для замены const T,

Другие вопросы по тегам