blob: ea4e7c0e208239f0cdc5ddf747641d92c1d9ed75 [file] [log] [blame]
<HTML>
<!--
Copyright (c) 2012 Trustees of Indiana University
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>Value-Transforming Property Map Adaptor</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="sec:function-property-map"></A>
</h2>
<PRE>
transform_value_property_map&lt;UnaryFunction, PM, Ref&gt;
</PRE>
<P>
This property map is an adaptor that composes a function object after an existing property map. The new property map will model either <a href="ReadablePropertyMap.html">Readable Property Map</a> or a <a href="LvaluePropertyMap.html">Lvalue Property Map</a>. The category of the property map is based on whether the function's return type (as given by <tt>Ref</tt>) is a non-const reference type.
<P>
<!-- <h3>Example</h3>
<pre>
</pre> -->
<H3>Where Defined</H3>
<P>
<a href="../../../boost/property_map/transform_value_property_map.hpp"><TT>boost/property_map/transform_value_property_map.hpp</TT></a>
<p>
<H3>Model Of</H3>
<a href="./ReadablePropertyMap.html">Readable Property Map</a> or <a href="./LvaluePropertyMap.html">Lvalue Property Map</a>
<P>
<H3>Template Parameters</H3>
<P>
<TABLE border>
<TR>
<th>Parameter</th><th>Description</th><th>Default</th>
</tr>
<TR>
<TD><TT>UnaryFunction</TT></TD>
<TD>Must be a model of <a href="http://www.sgi.com/tech/stl/UnaryFunction.html">Unary Function</a> that accepts an object of type <tt>property_traits&lt;PM&gt;::reference</tt> as an argument and returns a result of type <tt>Ref</tt>.</TD>
<TD>&nbsp;</td>
</tr>
<TR>
<TD><TT>PM</TT></TD> <TD>The underlying property map.
</TD> <TD>&nbsp;</TD>
</TR>
<TR>
<TD><TT>Ref</TT></TD>
<TD>The result type of the function.</TD>
<TD><TT>boost::result_of&lt;const UnaryFunction(property_traits&lt;PM&gt;::reference)&gt;::type</TT></TD>
</TR>
</TABLE>
<P>
<H3>Members</H3>
<P>
In addition to the methods and functions required by <a
href="./ReadablePropertyMap.html">Readable Property Map</a> or <a href="LvaluePropertyMap.html">Lvalue Property Map</a>, this
class has the following members:
<hr>
<pre>
property_traits&lt;transform_value_property_map&gt;::value_type
</pre>
The type <tt>Ref</tt> with any reference or cv-qualifiers removed.
<hr>
<pre>
transform_value_property_map(const UnaryFunction&amp; f, const PM&amp; pm);
</pre>
Constructor.
<hr>
<h3>Non-Member functions</h3>
<hr>
<pre>
template &lt;class PM, class UnaryFunction&gt;
transform_value_property_map&lt;UnaryFunction, PM&gt;
make_transform_value_property_map(const UnaryFunction&amp; f, const PM&amp; pm);
</pre>
Returns a <tt>transform_value_property_map</tt> using the given function and property map type.
<hr>
<pre>
template &lt;class Ref, class PM, class UnaryFunction&gt;
transform_value_property_map&lt;UnaryFunction, PM, Ref&gt;
make_transform_value_property_map(const UnaryFunction&amp; f, const PM&amp; pm);
</pre>
Returns a <tt>transform_value_property_map</tt> using the given function and property map, explicitly giving the function's result type.
<hr>
<br>
<HR>
<TABLE>
<TR valign=top>
<TD nowrap>Copyright &copy; 2012</TD><TD>Trustees of Indiana University
</TD></TR></TABLE>
</BODY>
</HTML>