Front Page / Sequences / Classes / set_c

# set_c

### Description

`set_c` is an Integral Sequence Wrapper for set. As such, it shares all set characteristics and requirements, and differs only in the way the original sequence content is specified.

### Header

Sequence form | Header
--- | ---
Variadic | `#include <boost/mpl/set_c.hpp>`
Numbered | `#include <boost/mpl/set/set` n`_c.hpp>`

### Model of

- Variadic Sequence
- Associative Sequence
- Extensible Associative Sequence

### Expression semantics

The semantics of an expression are defined only where they differ from, or are not defined in set.

Expression | Semantics
--- | ---

    set_c<T,c1,c2,... cn>
    setn_c<T,c1,c2,... cn>

A set of integral constant wrappers `integral_c<T,`c1`>`, `integral_c<T,`c2`>`, ... `integral_c<T,`cn`>`; see Integral Sequence Wrapper.

    set_c<T,c1,c2,... cn>::type
    setn_c<T,c1,c2,... cn>::type

Identical to `set` n`<` `integral_c<T,`c1`>`, `integral_c<T,`c2`>`, ... `integral_c<T,`cn`>` `>`; see Integral Sequence Wrapper.

    set_c<T,c1,c2,... cn>::value_type
    setn_c<T,c1,c2,... cn>::value_type

Identical to `T`; see Integral Sequence Wrapper.

### Example

    typedef set_c< int,1,3,5,7,9 > odds;

    BOOST_MPL_ASSERT_RELATION( size<odds>::value, ==, 5 );
    BOOST_MPL_ASSERT_NOT(( empty<odds> ));

    BOOST_MPL_ASSERT(( has_key< odds, integral_c<int,5> > ));
    BOOST_MPL_ASSERT_NOT(( has_key< odds, integral_c<int,4> > ));
    BOOST_MPL_ASSERT_NOT(( has_key< odds, integral_c<int,15> > ));

### See also

Sequences, Integral Sequence Wrapper, set, integral_c, vector_c, list_c, range_c