![]() |
Home | Libraries | People | FAQ | More |
set is an Associative Sequence of heteregenous 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).
#include <boost/fusion/container/set.hpp> #include <boost/fusion/include/set.hpp> #include <boost/fusion/container/set_fwd.hpp> #include <boost/fusion/include/set_fwd.hpp>
template < typename T0 = unspecified , typename T1 = unspecified , typename T2 = unspecified ... , typename TN = unspecified > struct set;
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
|
Parameter |
Description |
Default |
|---|---|---|
|
T0...TN |
Element types |
unspecified-type |
Notation
A set type
An instance of set
Heterogeneous values
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. |
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;