123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- <HTML>
- <!--
- Copyright (c) Jeremy Siek 2000
-
- Distributed under the Boost Software License, Version 1.0.
- (See accompanying file LICENSE_1_0.txt or copy at
- http://www.boost.org/LICENSE_1_0.txt)
- -->
- <Head>
- <Title>Property</Title>
- <BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b"
- ALINK="#ff0000">
- <IMG SRC="../../../boost.png"
- ALT="C++ Boost" width="277" height="86">
- <BR Clear>
- <H2><A NAME="concept:PropertyTag"></A>
- PropertyTag
- </H2>
- A Property Tag is a type used to name or identify properties that are
- attached to the vertices and edges of a graph. A Property type is not
- the type of the actual property values. Objects of the Property type
- are not used except to carry the type information which specifies the
- property. See the section about <A
- href="using_adjacency_list.html#sec:custom-edge-properties"> Custom
- Edge Properties</a> for a description of how to define your own
- property tags.
- <h3>Associated Types</h3>
- <table border>
- <tr>
- <td>Property Kind </td>
- <td><TT>property_kind<PropertyTag>::type</TT> </td>
- <td>
- This specifies whether the property is a <a
- name="VertexPropertyTag"><b>Vertex Property Tag</b></a>
- (<tt>vertex_property_tag</tt>), an <a
- name="EdgePropertyTag"><b>Edge Property Tag</b></a> (<tt>edge_property_tag</tt>), or
- a <a name="GraphPropertyTag"><b>Graph Property Tag</b></a> which is attached to the
- graph object itself (<tt>graph_property_tag</tt>). The tags are
- defined in <a
- href="../../../boost/graph/properties.hpp"><tt>boost/graph/properties.hpp</tt></a>. The <tt>property_kind</tt> traits class is defined in <a href="../../../boost/pending/property.hpp"><tt>boost/pending/property.hpp</tt></a>.
- </td>
- </tr>
- <tr>
- <td>Property ID Number </td>
- <td><TT>property_num<PropertyTag>::value</TT> </td>
- <td>
- This is needed as a workaround when using compilers that do not
- support partial specialization (and hence prevent us from using
- <tt>boost::is_same</tt> to detect if two property tags are the same).
- The <tt>property_num</tt> traits class is defined in <a
- href="../../../boost/pending/property.hpp"><tt>boost/pending/property.hpp</tt></a>.
- </td>
- </tr>
- </table>
- <h3>Refinement of</h3>
- <a
- href="http://www.boost.org/sgi/stl/DefaultConstructible.html">Default Constructible</a>
- <h3>Models</h3>
- The following models of the Property Tag concept are defined
- in <a
- href="../../../boost/graph/properties.hpp"><tt>boost/graph/properties.hpp</tt></a>.
- <ul>
- <li><tt>vertex_index_t</tt></li>
- <li><tt>edge_index_t</tt></li>
- <li><tt>graph_name_t</tt></li>
- <li><tt>vertex_name_t</tt></li>
- <li><tt>edge_name_t</tt></li>
- <li><tt>edge_weight_t</tt></li>
- <li><tt>vertex_distance_t</tt></li>
- <li><tt>vertex_color_t</tt></li>
- <li><tt>vertex_degree_t</tt></li>
- <li><tt>vertex_out_degree_t</tt></li>
- <li><tt>vertex_in_degree_t</tt></li>
- <li><tt>vertex_discover_time_t</tt></li>
- <li><tt>vertex_finish_time_t</tt></li>
- </ul>
- <h3>See Also</h3>
- <a href="./PropertyGraph.html">PropertyGraph</a>
- and
- <a href="../../property_map/doc/property_map.html">Property Map Concepts</a>
- <h3>Notes</h3>
- On compilers that do not support partial specialization, each Property
- type is also required to specialize
- <tt>property_num<PropertyTag></tt> to contain an enum named
- <tt>value</tt> which uniquely identifies the property type.
- <br>
- <HR>
- <TABLE>
- <TR valign=top>
- <TD nowrap>Copyright © 2000-2001</TD><TD>
- <A HREF="http://www.boost.org/people/jeremy_siek.htm">Jeremy Siek</A>, Indiana University (<A HREF="mailto:jsiek@osl.iu.edu">jsiek@osl.iu.edu</A>)
- </TD></TR></TABLE>
- </BODY>
- </HTML>
|