Mirror reflection library 0.5.13

mirror::MetaContainer Struct Reference

MetaContainer provides meta-data about a container. More...

#include <mirror/doc/concepts_container.hpp>

Inheritance diagram for mirror::MetaContainer:
Collaboration diagram for mirror::MetaContainer:

List of all members.

Public Types

typedef MetaScope scope
 MetaScope reflecting the class or namespace this container belongs to.
typedef MetaType element_type
 MetaType reflecting the type of the elements stored in the container.
typedef MetaTraversal default_traversal
 The default element traversal method for the reflected container.

Static Public Member Functions

static bool empty (Container &container)
 Checks if the container is empty.
static size_t size_hint (Container &container)
 Returns the number of elements in the container if possible.

Friends

struct default_traversal< MetaContainer >
 The default element traversal method for the reflected container.
struct traversals< MetaContainer >
 The element traversal methods available for the reflected container.
struct locators< MetaContainer >
 The element location methods available for the reflected container.
struct inserters< MetaContainer >
 The element insertion methods available for the reflected container.
struct erasers< MetaContainer >
 The element removal methods available for the reflected container.
meta_container_tag categorize_meta_object (MetaContainer)
struct scope< MetaScopedObject >
 Meta-function returning the scope of the scoped object.
meta_scoped_object_tag categorize_meta_object (MetaScopedObject)
meta_object_tag categorize_meta_object (MetaObject)
struct is_a< MetaObject, ConceptTag >
 Meta-function for checking if the MetaObject conforms to a concept.

Detailed Description

MetaContainer provides meta-data about a container.

See also:
meta_container_tag
meta_object_category
categorize_meta_object

Member Typedef Documentation

MetaScope reflecting the class or namespace this container belongs to.

The resulting MetaScope is a MetaClass for most containers, but it is for example the MetaGlobalScope for array containers.

Reimplemented from mirror::MetaScopedObject.


Member Function Documentation

static size_t mirror::MetaContainer::size_hint ( Container &  container) [static]

Returns the number of elements in the container if possible.

This member function returns the number of elements in the container if this information is available for this Container type. If the info is not available this function returns zero.


Friends And Related Function Documentation

meta_container_tag categorize_meta_object ( MetaContainer  ) [friend]
See also:
meta_object_category
categorize_meta_object(const T&)
meta_scoped_object_tag categorize_meta_object ( MetaScopedObject  ) [friend, inherited]
See also:
meta_object_category
categorize_meta_object(const T&)
meta_object_tag categorize_meta_object ( MetaObject  ) [friend, inherited]

This function can be used to determine if a type is a MetaObject

See also:
meta_object_category
categorize_meta_object(const T&)
friend struct default_traversal< MetaContainer > [friend]

The default element traversal method for the reflected container.

Meta-function returning a MetaTraversal which is providing meta-data about the default element traversal method for the container reflected by this MetaContainer

See also:
traversals
Returns:
MetaTraversal
friend struct erasers< MetaContainer > [friend]

The element removal methods available for the reflected container.

Meta-function returning a range of MetaErasers which are providing meta-data about all element removal methods for the container reflected by this MetaContainer

See also:
default_inserter
mp::range
Returns:
Range<MetaEraser>
friend struct inserters< MetaContainer > [friend]

The element insertion methods available for the reflected container.

Meta-function returning a range of MetaInserters which are providing meta-data about all element insertion methods for the container reflected by this MetaContainer

See also:
default_inserter
mp::range
Returns:
Range<MetaInserter>
friend struct is_a< MetaObject, ConceptTag > [friend, inherited]

Meta-function for checking if the MetaObject conforms to a concept.

This meta-function returns std::true_type if a MetaObject conforms to the concept identified by the ConceptTag. Returns std::false_type otherwise.

Returns:
BooleanConstantType
friend struct locators< MetaContainer > [friend]

The element location methods available for the reflected container.

Meta-function returning a range of MetaLocators which are providing meta-data about all element location methods for the container reflected by this MetaContainer

See also:
mp::range
Returns:
Range<MetaLocator>
friend struct scope< MetaScopedObject > [friend, inherited]

Meta-function returning the scope of the scoped object.

This meta-function "returns" the same MetaScope as the scope member typedef, but is better suited for algorithms using lambda placeholder expressions.

Returns:
MetaScope
friend struct traversals< MetaContainer > [friend]

The element traversal methods available for the reflected container.

Meta-function returning a range of MetaTraversals which are providing meta-data about all element traversal methods for the container reflected by this MetaContainer

See also:
default_traversal
mp::range
Returns:
Range<MetaTraversal>

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

Copyright © 2006-2011 Matus Chochlik, University of Zilina, Zilina, Slovakia.
<matus.chochlik -at- fri.uniza.sk>
<chochlik -at -gmail.com>
Documentation generated on Fri Dec 16 2011 by Doxygen (version 1.7.3).
Important note: Although the 'boostified' version of Mirror uses the Boost C++ libraries Coding Guidelines and is implemented inside of the boost namespace, it IS NOT an officially reviewed and accepted Boost library. Mirror is being developed with the intention to be submitted for review for inclusion to the Boost C++ libraries.