Boost  v1.57.0
doxygen for www.boost.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
boost::bimaps::unordered_set_of< KeyType, HashFunctor, EqualKey > Struct Template Reference

Set Type Specification. More...

#include <unordered_set_of.hpp>

Inheritance diagram for boost::bimaps::unordered_set_of< KeyType, HashFunctor, EqualKey >:
Collaboration diagram for boost::bimaps::unordered_set_of< KeyType, HashFunctor, EqualKey >:

Classes

struct  lazy_concept_checked
 

Public Types

typedef KeyType user_type
 User type, can be tagged. More...
 
typedef
BOOST_DEDUCED_TYPENAME::boost::bimaps::tags::support::value_type_of
< user_type >::type 
value_type
 Type of the object that will be stored in the container. More...
 
typedef HashFunctor hasher
 Hash Functor that takes value_type objects. More...
 
typedef EqualKey key_equal
 Functor that compare two value_type objects for equality. More...
 

Detailed Description

template<class KeyType, class HashFunctor = hash< BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::value_type_of<KeyType>::type >, class EqualKey = std::equal_to< BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::value_type_of<KeyType>::type >>
struct boost::bimaps::unordered_set_of< KeyType, HashFunctor, EqualKey >

Set Type Specification.

This struct is used to specify an unordered_set specification. It is not a container, it is just a metaprogramming facility to express the type of a set. Generally, this specification will be used in other place to create a container. It has the same syntax that an tr1::unordered_set instantiation, except that the allocator cannot be specified. The rationale behind this difference is that the allocator is not part of the unordered_set type specification, rather it is a container configuration parameter. The first parameter is the type of the objects in the set, the second one is a Hash Functor that takes objects of this type, and the third one is a Functor that compares them for equality. Bimap binding metafunctions can be used with this class in the following way:

using namespace support;
BOOST_STATIC_ASSERT( is_set_type_of< unordered_set_of<Type> >::value )
(
is_same
<
unordered_set_of<Type,HashFunctor,EqualKey>::index_bind
<
KeyExtractor,
Tag
>::type,
hashed_unique< tag<Tag>, KeyExtractor, HashFunctor, EqualKey >
>::value
)
typedef bimap
<
unordered_set_of<Type>, RightKeyType
> bimap_with_left_type_as_unordered_set;
(
is_same
<
unordered_set_of<Type>::map_view_bind
<
member_at::left,
bimap_with_left_type_as_unordered_set
>::type,
unordered_map_view
<
member_at::left,
bimap_with_left_type_as_unordered_set
>
>::value
)

See also unordered_set_of_relation.

Member Typedef Documentation

template<class KeyType , class HashFunctor = hash< BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::value_type_of<KeyType>::type >, class EqualKey = std::equal_to< BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::value_type_of<KeyType>::type >>
typedef HashFunctor boost::bimaps::unordered_set_of< KeyType, HashFunctor, EqualKey >::hasher

Hash Functor that takes value_type objects.

template<class KeyType , class HashFunctor = hash< BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::value_type_of<KeyType>::type >, class EqualKey = std::equal_to< BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::value_type_of<KeyType>::type >>
typedef EqualKey boost::bimaps::unordered_set_of< KeyType, HashFunctor, EqualKey >::key_equal

Functor that compare two value_type objects for equality.

template<class KeyType , class HashFunctor = hash< BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::value_type_of<KeyType>::type >, class EqualKey = std::equal_to< BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::value_type_of<KeyType>::type >>
typedef KeyType boost::bimaps::unordered_set_of< KeyType, HashFunctor, EqualKey >::user_type

User type, can be tagged.

template<class KeyType , class HashFunctor = hash< BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::value_type_of<KeyType>::type >, class EqualKey = std::equal_to< BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support::value_type_of<KeyType>::type >>
typedef BOOST_DEDUCED_TYPENAME ::boost::bimaps::tags::support:: value_type_of<user_type>::type boost::bimaps::unordered_set_of< KeyType, HashFunctor, EqualKey >::value_type

Type of the object that will be stored in the container.


The documentation for this struct was generated from the following file: