Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

C++ Boost

KeyedUpdatableQueue

A KeyedUpdatableQueue is a refinement of the UpdatableQueue concept. It requires that models order the contained values by their keys, to which values are mapped via a read/write key map.

Notation

Q is a type that models KeyedUpdatableQueue.
T is the value type of Q.

Members

For a type to model the KeyedUpdatableQueue concept it must have the following members in addition to the members that are required of types that model UpdatableQueue:

Member Description
key_type The type of keys that are associated with values
key_map The key property map type. This type must model Read/Write Property Map.
key_map keys() const Returns the key map

Concept Checking Class

boost/graph/buffer_concepts.hpp

  template <class Q>
  struct KeyedUpdatableQueueConcept
  {
    typedef typename Q::key_type key_type;
    typedef typename Q::key_map key_map;

    void constraints() {
      BOOST_CONCEPT_ASSERT(( UpdatableQueue<Q> ));
      BOOST_CONCEPT_ASSERT(( ReadWritePropertyMap< key_map, typename Buffer<Q>::value_type > ));
    }

    void const_constraints(const Q& cq) {
      km = cq.keys();
      k = get(km, g_ct);
    }

    static const typename Buffer<Q>::value_type g_ct;
    key_type k;
    key_map km;
    Q q;
  };

Models



Copyright © 2010 Daniel Trebbien (dtrebbien@gmail.com)