PrevUpHomeNext

set

Description

set is an Associative Sequence of heterogeneous typed data elements. Type identity is used to impose an equivalence relation on keys. The element's type is its key. A set may contain at most one element for each key. Membership testing and element key lookup has constant runtime complexity (see Overloaded Functions).

Header
#include <boost/fusion/container/set.hpp>
#include <boost/fusion/include/set.hpp>
#include <boost/fusion/container/set/set_fwd.hpp>
#include <boost/fusion/include/set_fwd.hpp>
Synopsis
template <
    typename T0 = unspecified
  , typename T1 = unspecified
  , typename T2 = unspecified
    ...
  , typename TN = unspecified
>
struct set;

For C++11 compilers, the variadic function interface has no upper bound.

For C++03 compilers, the variadic class interface accepts 0 to FUSION_MAX_SET_SIZE elements, where FUSION_MAX_SET_SIZE is a user definable predefined maximum that defaults to 10. Example:

set<int, char, double>

You may define the preprocessor constant FUSION_MAX_SET_SIZE before including any Fusion header to change the default. Example:

#define FUSION_MAX_SET_SIZE 20
Template parameters

Parameter

Description

Default

T0...TN

Element types

unspecified

Model of

Notation

S

A set type

s

An instance of set

e0...en

Heterogeneous values

fs

A Forward Sequence

Expression Semantics

Semantics of an expression is defined only where it differs from, or is not defined in Random Access Sequence and Associative Sequence.

Expression

Semantics

S()

Creates a set with default constructed elements.

S(e0, e1,... en)

Creates a set with elements e0...en.

S(fs)

Copy constructs a set from a Forward Sequence fs.

s = fs

Assigns to a set, s, from a Forward Sequence fs.

Example
typedef set<int, float> S;
S s(12, 5.5f);
std::cout << at_key<int>(s) << std::endl;
std::cout << at_key<float>(s) << std::endl;
std::cout << result_of::has_key<S, double>::value << std::endl;

PrevUpHomeNext