|  | Home | Libraries | People | FAQ | More | 
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).
#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>
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
| Parameter | Description | Default | 
|---|---|---|
| 
                   | Element types | unspecified | 
Notation
S
              A set type
            
s
              An instance of set
            
e0...enHeterogeneous values
fsSemantics of an expression is defined only where it differs from, or is not defined in Random Access Sequence and Associative Sequence.
| Expression | Semantics | 
|---|---|
| 
                   | Creates a set with default constructed elements. | 
| 
                   | 
                  Creates a set with elements  | 
| 
                   | 
                  Copy constructs a set from a Forward
                  Sequence  | 
| 
                   | 
                  Assigns to a set,  | 
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;