# Boost.Flyweight Reference

Annex: MPL lambda expressions
Index
`flyweight` reference

## Contents

- Header summary
- Dependencies
- Header `"boost/flyweight.hpp"` synopsis
- Class template `flyweight`
- Key-value flyweights
- Tags
- Factories
- Holders
- Locking policies
- Tracking policies

## Header summary

Boost.Flyweight comprises the following public headers:

- `"boost/flyweight.hpp"`
- Class template `flyweight`
  - `"boost/flyweight/flyweight_fwd.hpp"`
  - `"boost/flyweight/flyweight.hpp"`
  - `"boost/flyweight/flyweight_serialize.hpp"`
- Key-value flyweights
  - `"boost/flyweight/key_value_fwd.hpp"`
  - `"boost/flyweight/key_value.hpp"`
- Tags
  - `"boost/flyweight/tag.hpp"`
- Factories
  - `"boost/flyweight/factory_tag.hpp"`
  - `"boost/flyweight/hashed_factory_fwd.hpp"`
  - `"boost/flyweight/hashed_factory.hpp"`
  - `"boost/flyweight/concurrent_factory_fwd.hpp"`
  - `"boost/flyweight/concurrent_factory.hpp"`
  - `"boost/flyweight/set_factory_fwd.hpp"`
  - `"boost/flyweight/set_factory.hpp"`
  - `"boost/flyweight/assoc_container_factory_fwd.hpp"`
  - `"boost/flyweight/assoc_container_factory.hpp"`
- Holders
  - `"boost/flyweight/holder_tag.hpp"`
  - `"boost/flyweight/static_holder_fwd.hpp"`
  - `"boost/flyweight/static_holder.hpp"`
  - `"boost/flyweight/intermodule_holder_fwd.hpp"`
  - `"boost/flyweight/intermodule_holder.hpp"`
- Locking policies
  - `"boost/flyweight/locking_tag.hpp"`
  - `"boost/flyweight/simple_locking_fwd.hpp"`
  - `"boost/flyweight/simple_locking.hpp"`
  - `"boost/flyweight/no_locking_fwd.hpp"`
  - `"boost/flyweight/no_locking.hpp"`
- Tracking policies
  - `"boost/flyweight/tracking_tag.hpp"`
  - `"boost/flyweight/refcounted_fwd.hpp"`
  - `"boost/flyweight/refcounted.hpp"`
  - `"boost/flyweight/no_tracking_fwd.hpp"`
  - `"boost/flyweight/no_tracking.hpp"`

## Dependencies

In order to use the serialization capabilities of Boost.Flyweight, the appropriate Boost.Serialization library module must be linked. Other than that, Boost.Flyweight is a header-only library, requiring no additional object modules. The default `simple_locking` locking policy introduces a dependency on the Pthreads library on those POSIX-compliant environments where the Boost.Config macro `BOOST_HAS_PTHREADS` is set.

## Header `"boost/flyweight.hpp"` synopsis

>     #include <boost/flyweight/flyweight.hpp>
>     #include <boost/flyweight/hashed_factory.hpp>
>     #include <boost/flyweight/refcounted.hpp>
>     #include <boost/flyweight/simple_locking.hpp>
>     #include <boost/flyweight/static_holder.hpp>

This convenience header includes the main class template `flyweight` along with the default components used by `flyweight`.

Annex: MPL lambda expressions
Index
`flyweight` reference

Revised September 17th 2024

© Copyright 2006-2024 Joaquín M López Muñoz. Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)