diff options
author | Douglas Gregor <doug.gregor@gmail.com> | 2004-01-15 15:33:35 +0000 |
---|---|---|
committer | Douglas Gregor <doug.gregor@gmail.com> | 2004-01-15 15:33:35 +0000 |
commit | 4882dfdb945560b240c50a913954d8709f23600d (patch) | |
tree | 5029bb87604a2178bce117df918364b54f583c5b /doc/html/any.html | |
parent | fb1ec4327e418ab3efa3a2acbd6d4e8c57ee83e3 (diff) | |
download | boost-4882dfdb945560b240c50a913954d8709f23600d.tar.gz |
Generated BoostBook HTML documentation for 1.31.0
[SVN r21754]
Diffstat (limited to 'doc/html/any.html')
-rw-r--r-- | doc/html/any.html | 121 |
1 files changed, 111 insertions, 10 deletions
diff --git a/doc/html/any.html b/doc/html/any.html index 15a93255fc..96441559a1 100644 --- a/doc/html/any.html +++ b/doc/html/any.html @@ -1,10 +1,111 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> - <head> - <meta http-equiv="refresh" content="0; URL=http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/any.html"> - </head> - <body> - Automatic redirection failed, please go to - <a href="http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/any.html">http://www.boost.org/regression-logs/cs-win32_metacomm/doc/html/any.html</a> - </body> -</html> +<html><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"><title>Boost.Any</title><link rel="stylesheet" href="reference.css" type="text/css"><meta name="generator" content="DocBook XSL Stylesheets V1.61.3"><link rel="home" href="index.html" title="The Boost C++ Libraries"><link rel="up" href="index.html" title="The Boost C++ Libraries"><link rel="previous" href="ch01s02.html" title="Libraries Listed by Category"><link rel="next" href="ch02s02.html" title="Examples"><link rel="chapter" href="libraries.html" title="The Boost C++ Libraries"><link rel="chapter" href="any.html" title="Boost.Any"><link rel="refentry" href="class.boost.bad_any_cast.html" title="Class bad_any_cast"><link rel="refentry" href="class.boost.any.html" title="Class any"><link rel="refentry" href="id2383300-bb.html" title="Function any_cast"><link rel="chapter" href="array.html" title="Boost.Array"><link rel="refentry" href="class.boost.array.html" title="Class template array"><link rel="chapter" href="function.html" title="Boost.Function"><link rel="refentry" href="class.boost.bad_function_call.html" title="Class bad_function_call"><link rel="refentry" href="class.boost.function_base.html" title="Class function_base"><link rel="refentry" href="class.boost.functionN.html" title="Class template functionN"><link rel="refentry" href="class.boost.function.html" title="Class template function"><link rel="chapter" href="ref.html" title="Boost.Ref"><link rel="refentry" href="class.boost.reference_wrapper.html" title="Class template reference_wrapper"><link rel="refentry" href="class.boost.is_reference_wrapper.html" title="Class template is_reference_wrapper"><link rel="refentry" href="class.boost.unwrap_reference.html" title="Class template unwrap_reference"><link rel="chapter" href="signals.html" title="Boost.Signals"><link rel="refentry" href="class.boost.signalN.html" title="Class template signalN"><link rel="refentry" href="class.boost.signal.html" title="Class template signal"><link rel="refentry" href="class.boost.slot.html" title="Class template slot"><link rel="refentry" href="class.boost.signals.trackable.html" title="Class trackable"><link rel="refentry" href="class.boost.signals.connection.html" title="Class connection"><link rel="refentry" href="class.boost.signals.scoped_connection.html" title="Class scoped_connection"><link rel="refentry" href="id2532119-bb.html" title="Function template visit_each"><link rel="refentry" href="class.boost.last_value.html" title="Class template last_value"><link rel="refentry" href="id2354683-bb.html" title="Class last_value<void>"><link rel="chapter" href="variant.html" title="Boost.Variant"><link rel="refentry" href="BOOST_VARIANT_LIMIT_TYPES.html" title="Macro BOOST_VARIANT_LIMIT_TYPES"><link rel="refentry" href="BOOST_VARIANT_ENUM_PARAMS.html" title="Macro BOOST_VARIANT_ENUM_PARAMS"><link rel="refentry" href="BOOST_VARIANT_ENUM_SHIFTED_PARAMS.html" title="Macro BOOST_VARIANT_ENUM_SHIFTED_PARAMS"><link rel="refentry" href="BOOST_VARIANT_NO_REFERENCE_SUPPORT.html" title="Macro BOOST_VARIANT_NO_REFERENCE_SUPPORT"><link rel="refentry" href="BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT.html" title="Macro BOOST_VARIANT_NO_TYPE_SEQUENCE_SUPPORT"><link rel="refentry" href="BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT.html" title="Macro BOOST_VARIANT_NO_FULL_RECURSIVE_VARIANT_SUPPORT"><link rel="refentry" href="class.boost.variant.html" title="Class template variant"><link rel="refentry" href="id2518553-bb.html" title="Function template swap"><link rel="refentry" href="id2524211-bb.html" title="Function template operator<<"><link rel="refentry" href="class.boost.make_variant_over.html" title="Class template make_variant_over"><link rel="refentry" href="class.boost.make_recursive_variant.html" title="Class template make_recursive_variant"><link rel="refentry" href="class.boost.make_recursive_variant_over.html" title="Class template make_recursive_variant_over"><link rel="refentry" href="class.boost.recursive_wrapper.html" title="Class template recursive_wrapper"><link rel="refentry" href="class.boost.is_recursive_wrapper.html" title="Class template is_recursive_wrapper"><link rel="refentry" href="class.boost.unwrap_recursive_wrapper.html" title="Class template unwrap_recursive_wrapper"><link rel="refentry" href="class.boost.apply_visitor_delayed_t.html" title="Class template apply_visitor_delayed_t"><link rel="refentry" href="id2557051-bb.html" title="Function apply_visitor"><link rel="refentry" href="class.boost.bad_get.html" title="Class bad_get"><link rel="refentry" href="id2493238-bb.html" title="Function get"><link rel="refentry" href="class.boost.bad_visit.html" title="Class bad_visit"><link rel="refentry" href="class.boost.static_visitor.html" title="Class template static_visitor"><link rel="refentry" href="class.boost.visitor_ptr_t.html" title="Class template visitor_ptr_t"><link rel="refentry" href="id2544445-bb.html" title="Function template visitor_ptr"><link rel="chapter" href="boostbook.html" title="The BoostBook Documentation Format"><link rel="refentry" href="boostbook.dtd.class-specialization.html" title=" + BoostBook element class-specialization"><link rel="refentry" href="boostbook.dtd.link-test.html" title=" + BoostBook element link-test"><link rel="refentry" href="boostbook.dtd.link-fail-test.html" title=" + BoostBook element link-fail-test"><link rel="refentry" href="boostbook.dtd.typedef.html" title=" + BoostBook element typedef"><link rel="refentry" href="boostbook.dtd.static-constant.html" title=" + BoostBook element static-constant"><link rel="refentry" href="boostbook.dtd.code.html" title=" + BoostBook element code"><link rel="refentry" href="boostbook.dtd.destructor.html" title=" + BoostBook element destructor"><link rel="refentry" href="boostbook.dtd.template-type-parameter.html" title=" + BoostBook element template-type-parameter"><link rel="refentry" href="boostbook.dtd.description.html" title=" + BoostBook element description"><link rel="refentry" href="boostbook.dtd.librarylist.html" title=" + BoostBook element librarylist"><link rel="refentry" href="boostbook.dtd.library-reference.html" title=" + BoostBook element library-reference"><link rel="refentry" href="boostbook.dtd.boostbook.html" title=" + BoostBook element boostbook"><link rel="refentry" href="boostbook.dtd.union.html" title=" + BoostBook element union"><link rel="refentry" href="boostbook.dtd.inherit.html" title=" + BoostBook element inherit"><link rel="refentry" href="boostbook.dtd.template-varargs.html" title=" + BoostBook element template-varargs"><link rel="refentry" href="boostbook.dtd.source.html" title=" + BoostBook element source"><link rel="refentry" href="boostbook.dtd.function.html" title=" + BoostBook element function"><link rel="refentry" href="boostbook.dtd.postconditions.html" title=" + BoostBook element postconditions"><link rel="refentry" href="boostbook.dtd.compile-test.html" title=" + BoostBook element compile-test"><link rel="refentry" href="boostbook.dtd.method.html" title=" + BoostBook element method"><link rel="refentry" href="boostbook.dtd.snippet.html" title=" + BoostBook element snippet"><link rel="refentry" href="boostbook.dtd.constructor.html" title=" + BoostBook element constructor"><link rel="refentry" href="boostbook.dtd.namespace.html" title=" + BoostBook element namespace"><link rel="refentry" href="boostbook.dtd.if-fails.html" title=" + BoostBook element if-fails"><link rel="refentry" href="boostbook.dtd.free-function-group.html" title=" + BoostBook element free-function-group"><link rel="refentry" href="boostbook.dtd.functionname.html" title=" + BoostBook element functionname"><link rel="refentry" href="boostbook.dtd.librarycategory.html" title=" + BoostBook element librarycategory"><link rel="refentry" href="boostbook.dtd.notes.html" title=" + BoostBook element notes"><link rel="refentry" href="boostbook.dtd.data-member.html" title=" + BoostBook element data-member"><link rel="refentry" href="boostbook.dtd.specialization.html" title=" + BoostBook element specialization"><link rel="refentry" href="boostbook.dtd.union-specialization.html" title=" + BoostBook element union-specialization"><link rel="refentry" href="boostbook.dtd.throws.html" title=" + BoostBook element throws"><link rel="refentry" href="boostbook.dtd.template-arg.html" title=" + BoostBook element template-arg"><link rel="refentry" href="boostbook.dtd.method-group.html" title=" + BoostBook element method-group"><link rel="refentry" href="boostbook.dtd.requirement.html" title=" + BoostBook element requirement"><link rel="refentry" href="boostbook.dtd.precondition.html" title=" + BoostBook element precondition"><link rel="refentry" href="boostbook.dtd.paramtype.html" title=" + BoostBook element paramtype"><link rel="refentry" href="boostbook.dtd.using-class.html" title=" + BoostBook element using-class"><link rel="refentry" href="boostbook.dtd.run-test.html" title=" + BoostBook element run-test"><link rel="refentry" href="boostbook.dtd.librarypurpose.html" title=" + BoostBook element librarypurpose"><link rel="refentry" href="boostbook.dtd.copy-assignment.html" title=" + BoostBook element copy-assignment"><link rel="refentry" href="boostbook.dtd.run-fail-test.html" title=" + BoostBook element run-fail-test"><link rel="refentry" href="boostbook.dtd.template.html" title=" + BoostBook element template"><link rel="refentry" href="boostbook.dtd.compile-fail-test.html" title=" + BoostBook element compile-fail-test"><link rel="refentry" href="boostbook.dtd.returns.html" title=" + BoostBook element returns"><link rel="refentry" href="boostbook.dtd.default.html" title=" + BoostBook element default"><link rel="refentry" href="boostbook.dtd.parameter.html" title=" + BoostBook element parameter"><link rel="refentry" href="boostbook.dtd.signature.html" title=" + BoostBook element signature"><link rel="refentry" href="boostbook.dtd.overloaded-function.html" title=" + BoostBook element overloaded-function"><link rel="refentry" href="boostbook.dtd.class.html" title=" + BoostBook element class"><link rel="refentry" href="boostbook.dtd.librarycategorydef.html" title=" + BoostBook element librarycategorydef"><link rel="refentry" href="boostbook.dtd.type.html" title=" + BoostBook element type"><link rel="refentry" href="boostbook.dtd.enumvalue.html" title=" + BoostBook element enumvalue"><link rel="refentry" href="boostbook.dtd.overloaded-method.html" title=" + BoostBook element overloaded-method"><link rel="refentry" href="boostbook.dtd.programlisting.html" title=" + BoostBook element programlisting"><link rel="refentry" href="boostbook.dtd.complexity.html" title=" + BoostBook element complexity"><link rel="refentry" href="boostbook.dtd.purpose.html" title=" + BoostBook element purpose"><link rel="refentry" href="boostbook.dtd.template-nontype-parameter.html" title=" + BoostBook element template-nontype-parameter"><link rel="refentry" href="boostbook.dtd.library.html" title=" + BoostBook element library"><link rel="refentry" href="boostbook.dtd.librarycategorylist.html" title=" + BoostBook element librarycategorylist"><link rel="refentry" href="boostbook.dtd.using-namespace.html" title=" + BoostBook element using-namespace"><link rel="refentry" href="boostbook.dtd.struct-specialization.html" title=" + BoostBook element struct-specialization"><link rel="refentry" href="boostbook.dtd.struct.html" title=" + BoostBook element struct"><link rel="refentry" href="boostbook.dtd.lib.html" title=" + BoostBook element lib"><link rel="refentry" href="boostbook.dtd.enum.html" title=" + BoostBook element enum"><link rel="refentry" href="boostbook.dtd.requires.html" title=" + BoostBook element requires"><link rel="refentry" href="boostbook.dtd.effects.html" title=" + BoostBook element effects"><link rel="refentry" href="boostbook.dtd.libraryname.html" title=" + BoostBook element libraryname"><link rel="refentry" href="boostbook.dtd.libraryinfo.html" title=" + BoostBook element libraryinfo"><link rel="refentry" href="boostbook.dtd.testsuite.html" title=" + BoostBook element testsuite"><link rel="refentry" href="boostbook.dtd.header.html" title=" + BoostBook element header"><link rel="refentry" href="boostbook.dtd.rationale.html" title=" + BoostBook element rationale"><link rel="refentry" href="Assignable.html" title="Concept Assignable"><link rel="refentry" href="InputIterator.html" title="Concept InputIterator"><link rel="refentry" href="OutputIterator.html" title="Concept OutputIterator"><link rel="refentry" href="ForwardIterator.html" title="Concept ForwardIterator"><link rel="refentry" href="BidirectionalIterator.html" title="Concept BidirectionalIterator"><link rel="refentry" href="RandomAccessIterator.html" title="Concept RandomAccessIterator"><link rel="refentry" href="DefaultConstructible.html" title="Concept DefaultConstructible"><link rel="refentry" href="CopyConstructible.html" title="Concept CopyConstructible"><link rel="refentry" href="EqualityComparable.html" title="Concept EqualityComparable"><link rel="refentry" href="LessThanComparable.html" title="Concept LessThanComparable"><link rel="refentry" href="SignedInteger.html" title="Concept SignedInteger"><link rel="section" href="any.html#id2444062" title="Introduction"><link rel="section" href="ch02s02.html" title="Examples"><link rel="section" href="any.reference.html" title="Reference"><link rel="section" href="ch02s04.html" title="Acknowledgements"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" border="1" cellpadding="2" bgcolor="#007F7F"><tr><td bgcolor="#FFFFFF"><img src="../../c++boost.gif" alt="c++boost.gif (8819 bytes)" width="277" height="86"></td><td><a href="../../index.htm"><font color="#FFFFFF" size="4" face="Arial">Home</font></a></td><td><a href="libraries.html"><font color="#FFFFFF" size="4" face="Arial">Libraries</font></a></td><td><a href="../../people/people.htm"><font color="#FFFFFF" size="4" face="Arial">People</font></a></td><td><a href="../../more/faq.htm"><font color="#FFFFFF" size="4" face="Arial">FAQ</font></a></td><td><a href="../../more/index.htm"><font color="#FFFFFF" size="4" face="Arial">More</font></a></td></tr></table><div class="chapter" lang="en"><div class="titlepage"><div><div><h2 class="title"><a name="any"></a>Boost.Any</h2></div><div><div class="author"><h3 class="author"><span class="firstname">Kevlin</span> <span class="surname">Henney</span></h3></div></div><div><p class="copyright">Copyright © 2001 Kevlin Henney</p></div></div><div></div></div><div class="toc"><p><b>Table of Contents</b></p><dl><dt><a href="any.html#id2444062">Introduction</a></dt><dt><a href="ch02s02.html">Examples</a></dt><dt><a href="any.reference.html">Reference</a></dt><dd><dl><dt><a href="any.reference.html#any.ValueType">ValueType requirements</a></dt><dt><a href="any.reference.html#header.boost.any.hpp">Header <boost/any.hpp></a></dt></dl></dd><dt><a href="ch02s04.html">Acknowledgements</a></dt></dl></div><div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title"><a name="id2444062"></a>Introduction</h3></div></div><div></div></div><p>There are times when a generic (in the sense of + <span class="emphasis"><em>general</em></span> as opposed to + <span class="emphasis"><em>template-based programming</em></span>) type is needed: + variables that are truly variable, accommodating values of many + other more specific types rather than C++'s normal strict and + static types. We can distinguish three basic kinds of generic + type:</p><div class="itemizedlist"><ul type="disc"><li><p>Converting types that can hold one of a number of + possible value types, e.g. <tt class="computeroutput">int</tt> and + <tt class="computeroutput">string</tt>, and freely convert between them, for + instance interpreting <tt class="computeroutput">5</tt> as <tt class="computeroutput">"5"</tt> or + vice-versa. Such types are common in scripting and other + interpreted + languages. + <tt class="computeroutput">boost::lexical_cast</tt> + supports such conversion functionality.</p></li><li><p> + Discriminated types that contain values of different types but + do not attempt conversion between them, i.e. <tt class="computeroutput">5</tt> is + held strictly as an <tt class="computeroutput">int</tt> and is not implicitly + convertible either to <tt class="computeroutput">"5"</tt> or to + <tt class="computeroutput">5.0</tt>. Their indifference to interpretation but + awareness of type effectively makes them safe, generic + containers of single values, with no scope for surprises from + ambiguous conversions.</p></li><li><p> + Indiscriminate types that can refer to anything but are + oblivious to the actual underlying type, entrusting all forms + of access and interpretation to the programmer. This niche is + dominated by <tt class="computeroutput">void *</tt>, which offers plenty of scope + for surprising, undefined behavior.</p></li></ul></div><p>The <tt class="computeroutput"><a href="class.boost.any.html" title="Class any">boost::any</a></tt> class + (based on the class of the same name described in <a href="http://www.two-sdg.demon.co.uk/curbralan/papers/ValuedConversions.pdf" target="_top">"Valued + Conversions"</a> by Kevlin Henney, <span class="emphasis"><em>C++ + Report</em></span> 12(7), July/August 2000) is a variant value type + based on the second category. It supports copying of any value + type and safe checked extraction of that value strictly against + its type. A similar design, offering more appropriate operators, + can be used for a generalized function adaptor, + <tt class="computeroutput">any_function</tt>, a generalized iterator adaptor, + <tt class="computeroutput">any_iterator</tt>, and other object types that need + uniform runtime treatment but support only compile-time template + parameter conformance.</p></div></div><table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr><td align="left"><small>Last revised: March 15, 2003 at 23:12:35 GMT</small></td><td align="right"><small></small></td></tr></table><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch01s02.html"><img src="images/prev.png" alt="Prev"></a> </td><td width="20%" align="center"><a accesskey="u" href="index.html"><img src="images/up.png" alt="Up"></a></td><td width="40%" align="right"> <a accesskey="n" href="ch02s02.html"><img src="images/next.png" alt="Next"></a></td></tr><tr><td width="40%" align="left" valign="top">Libraries Listed by Category </td><td width="20%" align="center"><a accesskey="h" href="index.html"><img src="images/home.png" alt="Home"></a></td><td width="40%" align="right" valign="top"> Examples</td></tr></table></div></body></html> |