.. Sequences/Intrinsic Metafunctions//value_type value_type ========== Synopsis -------- .. parsed-literal:: template< typename Sequence , typename X > struct value_type { typedef |unspecified| type; }; Description ----------- Returns the |value| that would be used for element ``X`` in ``Sequence``. Header ------ .. parsed-literal:: #include Model of -------- |Tag Dispatched Metafunction| Parameters ---------- +---------------+---------------------------+-----------------------------------------------+ | Parameter | Requirement | Description | +===============+===========================+===============================================+ | ``Sequence`` | |Associative Sequence| | A sequence to query. | +---------------+---------------------------+-----------------------------------------------+ | ``X`` | Any type | The type to get the |value| for. | +---------------+---------------------------+-----------------------------------------------+ Expression semantics -------------------- For any |Associative Sequence| ``s``, and an artibrary type ``x``: .. parsed-literal:: typedef value_type::type v; :Return type: A type. :Precondition: ``x`` can be put in ``s``. :Semantics: ``v`` is the |value| that would be used for ``x`` in ``s``. :Postcondition: If .. parsed-literal:: has_key< s,key_type::type >::type then .. parsed-literal:: at< s,key_type::type >::type is identical to ``value_type::type``. Complexity ---------- Amortized constant time. Example ------- .. parsed-literal:: typedef value_type< map<>,pair >::type v1; typedef value_type< set<>,pair >::type v2; BOOST_MPL_ASSERT(( is_same< v1,unsigned > )); BOOST_MPL_ASSERT(( is_same< v2,pair > )); See also -------- |Associative Sequence|, |key_type|, |at|, |set|, |map|