Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r49961 - in sandbox/mirror/doc/html/mirror/non_boost_book/concepts: . overview views xslt
From: chochlik_at_[hidden]
Date: 2008-11-27 13:03:44


Author: matus.chochlik
Date: 2008-11-27 13:03:43 EST (Thu, 27 Nov 2008)
New Revision: 49961
URL: http://svn.boost.org/trac/boost/changeset/49961

Log:
[mirror 0.2.x]
- Documentation update

Added:
   sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/ContextNodeSet.xml (contents, props changed)
   sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/TraversalContext.xml (contents, props changed)
   sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/TraversalVisitor.xml (contents, props changed)
   sandbox/mirror/doc/html/mirror/non_boost_book/concepts/xslt/make_model_list.xsl (contents, props changed)
Removed:
   sandbox/mirror/doc/html/mirror/non_boost_book/concepts/views/
Text files modified:
   sandbox/mirror/doc/html/mirror/non_boost_book/concepts/ontology.xml | 255 +++++++++++++++++++++++++++++++++++----
   sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/transform.xsl | 186 +++++++++++++---------------
   2 files changed, 317 insertions(+), 124 deletions(-)

Modified: sandbox/mirror/doc/html/mirror/non_boost_book/concepts/ontology.xml
==============================================================================
--- sandbox/mirror/doc/html/mirror/non_boost_book/concepts/ontology.xml (original)
+++ sandbox/mirror/doc/html/mirror/non_boost_book/concepts/ontology.xml 2008-11-27 13:03:43 EST (Thu, 27 Nov 2008)
@@ -8,8 +8,181 @@
                 <model url="http://www.sgi.com/tech/stl/basic_string.html" name="::std::basic_string"/>
         </concept>
 
+ <concept name="ContextNodeSet">
+ <metafunction concept="MplIntegralConstant" subnamespace="meta_path" name="size">
+ <metafn_param placeholder="true">
+ </metafn_param>
+ <desc>Returns the count of MetaObjects in the ContextNodeSet.</desc>
+ </metafunction>
+ <metafunction concept="MetaObject" subnamespace="meta_path" name="at">
+ <metafn_param placeholder="true">
+ </metafn_param>
+ <metafn_param name="Position">
+ </metafn_param>
+ <desc>Returns the MetaObject at the given Position in the ContextNodeSet. Position should be a model of the MPL's IntegralConstant concept.</desc>
+ </metafunction>
+
+ <free_function concept="UnaryFunctor" subnamespace="meta_path" name="for_each">
+ <template_param placeholder="true"/>
+ <template_param name="UnaryFunctor"/>
+ <fn_param concept="UnaryFunctor" name="funct"/>
+ <desc>Executes the runtime functor on an temporary instance of every MetaObject in the ContextNodeSet.</desc>
+ </free_function>
+ <free_function concept="UnaryFunctor" subnamespace="meta_path" name="for_each">
+ <template_param placeholder="true"/>
+ <template_param name="TransformOp"/>
+ <template_param name="UnaryFunctor"/>
+ <fn_param concept="TransformOp" name="transform"/>
+ <fn_param concept="UnaryFunctor" name="funct"/>
+ <desc>Executes the runtime functor on a temporary instance of the result of the TransformOp on every MetaObject in the ContextNodeSet.</desc>
+ </free_function>
+ </concept>
+
+ <concept name="TraversalContext">
+ <metafunction concept="ContextNodeSet" subnamespace="meta_path" name="self">
+ <metafn_param placeholder="true">
+ </metafn_param>
+ <desc>Returns a ContextNodeSet containing only the contextual MetaObject.</desc>
+ </metafunction>
+ <metafunction concept="ContextNodeSet" subnamespace="meta_path" name="parent">
+ <metafn_param placeholder="true">
+ </metafn_param>
+ <desc>Returns a ContextNodeSet containing only the parent MetaObject of the contextual MetaObject. For example a MetaClass is a parent of MetaBaseClasses or MetaClassAttributes, MetaClassAttributes is a parent of MetaClassAttribute, etc.</desc>
+ </metafunction>
+ <metafunction concept="ContextNodeSet" subnamespace="meta_path" name="ancestors">
+ <metafn_param placeholder="true">
+ </metafn_param>
+ <desc>Returns a ContextNodeSet containing the MetaObjects which are ancestors of the contextual MetaObject.</desc>
+ </metafunction>
+ <metafunction concept="ContextNodeSet" subnamespace="meta_path" name="ancestors_and_self">
+ <metafn_param placeholder="true">
+ </metafn_param>
+ <desc>Returns a ContextNodeSet containing the MetaObjects which are ancestors of the contextual MetaObject and the contextual MetaObject itself.</desc>
+ </metafunction>
+ <metafunction concept="ContextNodeSet" subnamespace="meta_path" name="siblings">
+ <metafn_param placeholder="true">
+ </metafn_param>
+ <desc>Returns a ContextNodeSet containing the MetaObjects which are siblings of the contextual MetaObject.</desc>
+ </metafunction>
+ <metafunction concept="ContextNodeSet" subnamespace="meta_path" name="siblings_and_self">
+ <metafn_param placeholder="true">
+ </metafn_param>
+ <desc>Returns a ContextNodeSet containing the MetaObjects which are siblings of the contextual MetaObject and the contextual MetaObject itself.</desc>
+ </metafunction>
+ <metafunction concept="ContextNodeSet" subnamespace="meta_path" name="prior">
+ <metafn_param placeholder="true">
+ </metafn_param>
+ <desc>Returns a ContextNodeSet containing the single MetaObject which is directly preceding the contextual MetaObject.</desc>
+ </metafunction>
+ <metafunction concept="ContextNodeSet" subnamespace="meta_path" name="next">
+ <metafn_param placeholder="true">
+ </metafn_param>
+ <desc>Returns a ContextNodeSet containing the single MetaObject which is directly following the contextual MetaObject.</desc>
+ </metafunction>
+ </concept>
+
+ <concept name="TraversalVisitor">
+ <member_typedef concept="MplBooleanIntegralConstant" name="works_on_instances">
+ <desc>Indicates whether the visitor works on instances or just on the structure of the visited type.</desc>
+ </member_typedef>
+
+ <member_function concept="void" name="enter_type">
+ <fn_param concept="MetaClass" name="_meta_class"/>
+ <fn_param concept="TraversalContext" name="_context"/>
+ <desc>The visitor enters a type reflected by _meta_class in the context indicated by _context.</desc>
+ </member_function>
+ <member_function concept="void" name="leave_type">
+ <fn_param concept="MetaClass" name="_meta_class"/>
+ <fn_param concept="TraversalContext" name="_context"/>
+ <desc>The visitor leaves a type reflected by _meta_class in the context indicated by _context.</desc>
+ </member_function>
+ <member_function concept="void" name="enter_base_classes">
+ <fn_param concept="MetaClass" name="_meta_class"/>
+ <fn_param concept="MetaBaseClasses" name="_meta_base_classes"/>
+ <fn_param concept="TraversalContext" name="_context"/>
+ <desc>The visitor enters the list of base classes reflected by _meta_base_classes, of a class reflected by _meta_class in the context indicated by _context.</desc>
+ </member_function>
+ <member_function concept="void" name="leave_base_classes">
+ <fn_param concept="MetaClass" name="_meta_class"/>
+ <fn_param concept="MetaBaseClasses" name="_meta_base_classes"/>
+ <fn_param concept="TraversalContext" name="_context"/>
+ <desc>The visitor leaves the list of base classes reflected by _meta_base_classes, of a class reflected by _meta_class in the context indicated by _context.</desc>
+ </member_function>
+ <member_function concept="void" name="enter_base_class">
+ <fn_param concept="MetaInheritance" name="_meta_inheritance"/>
+ <fn_param concept="TraversalContext" name="_context"/>
+ <desc>The visitor enters a concrete base class reflected by _meta_inheritance in the context indicated by _context.</desc>
+ </member_function>
+ <member_function concept="void" name="leave_base_class">
+ <fn_param concept="MetaInheritance" name="_meta_inheritance"/>
+ <fn_param concept="TraversalContext" name="_context"/>
+ <desc>The visitor leaves a concrete base class reflected by _meta_inheritance in the context indicated by _context.</desc>
+ </member_function>
+ <member_function concept="void" name="enter_attributes">
+ <fn_param concept="MetaClass" name="_meta_class"/>
+ <fn_param concept="MetaClassAttributes" name="_meta_class_attributes"/>
+ <fn_param concept="TraversalContext" name="_context"/>
+ <desc>The visitor enters the list of member attributes reflected by _meta_class_attributes, of a class reflected by _meta_class in the context indicated by _context.</desc>
+ </member_function>
+ <member_function concept="void" name="leave_base_classes">
+ <fn_param concept="MetaClass" name="_meta_class"/>
+ <fn_param concept="MetaClassAttributes" name="_meta_class_attributes"/>
+ <fn_param concept="TraversalContext" name="_context"/>
+ <desc>The visitor leaves the list of member attributes reflected by _meta_class_attributes, of a class reflected by _meta_class in the context indicated by _context.</desc>
+ </member_function>
+ <member_function concept="void" name="enter_base_class">
+ <fn_param concept="MetaClassAttribute" name="_meta_attribute"/>
+ <fn_param concept="TraversalContext" name="_context"/>
+ <desc>The visitor enters a concrete member attribute reflected by _meta_attribute in the context indicated by _context.</desc>
+ </member_function>
+ <member_function concept="void" name="leave_base_class">
+ <fn_param concept="MetaClassAttribute" name="_meta_attribute"/>
+ <fn_param concept="TraversalContext" name="_context"/>
+ <desc>The visitor leaves a concrete member attribute reflected by _meta_attribute in the context indicated by _context.</desc>
+ </member_function>
+ <member_function concept="void" name="visit_instance">
+ <fn_param concept="MetaClass" name="_meta_class"/>
+ <fn_param concept="TraversalContext" name="_context"/>
+ <fn_param concept="Pointer" name="_ptr_to_inst"/>
+ <desc>The visitor visits an instance, pointed to by _ptr_to_inst, of the class or type reflected by _meta_class in the context indicated by _context.</desc>
+ </member_function>
+ </concept>
+
         <concept name="Iterator">
- <metafunction concept="MplBooleanIntegralType" name="is_valid" nolink="true">
+ <free_function concept="UnaryFunctor" name="for_each">
+ <template_param placeholder="true"/>
+ <template_param placeholder="true"/>
+ <template_param name="UnaryFunctor"/>
+ <fn_param concept="UnaryFunctor" name="funct"/>
+ <desc>Executes the functor on an temporary instance of every element in the range specified by the passed iterators.</desc>
+ </free_function>
+ <free_function concept="UnaryFunctor" name="for_each">
+ <template_param placeholder="true"/>
+ <template_param placeholder="true"/>
+ <template_param name="TransformOp"/>
+ <template_param name="UnaryFunctor"/>
+ <fn_param concept="TransformOp" name="transform"/>
+ <fn_param concept="UnaryFunctor" name="funct"/>
+ <desc>Executes the runtime functor on a temporary instance of the result of the TransformOp on every element in the range specified by the passed iterators.</desc>
+ </free_function>
+ <free_function concept="UnaryFunctor" name="reverse_for_each">
+ <template_param placeholder="true"/>
+ <template_param placeholder="true"/>
+ <template_param name="UnaryFunctor"/>
+ <fn_param concept="UnaryFunctor" name="funct"/>
+ <desc>Executes the functor on an temporary instance of every element in the reversed range specified by the passed iterators.</desc>
+ </free_function>
+ <free_function concept="UnaryFunctor" name="reverse_for_each">
+ <template_param placeholder="true"/>
+ <template_param placeholder="true"/>
+ <template_param name="TransformOp"/>
+ <template_param name="UnaryFunctor"/>
+ <fn_param concept="TransformOp" name="transform"/>
+ <fn_param concept="UnaryFunctor" name="funct"/>
+ <desc>Executes the runtime functor on a temporary instance of the result of the TransformOp on every element in the reverse range specified by the passed iterators.</desc>
+ </free_function>
+
+ <metafunction concept="MplBooleanIntegralConstant" name="is_valid">
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <desc>Returns mpl::true_ if the passed iterator is valid, returns mpl::false_ otherwise. A valid iterator can be dereferenced.</desc>
@@ -30,42 +203,42 @@
                         <desc>Returns an Iterator pointing to the next element in the MetaObjectSequence.</desc>
                 </metafunction>
 
- <metafunction concept="MplBooleanIntegralType" name="iterator_equal" nolink="true">
+ <metafunction concept="MplBooleanIntegralConstant" name="iterator_equal">
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <desc>Iterator equality comparison.</desc>
                 </metafunction>
- <metafunction concept="MplBooleanIntegralType" name="iterator_not_equal" nolink="true">
+ <metafunction concept="MplBooleanIntegralConstant" name="iterator_not_equal">
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <desc>Iterator non-equality comparison.</desc>
                 </metafunction>
- <metafunction concept="MplBooleanIntegralType" name="iterator_less" nolink="true">
+ <metafunction concept="MplBooleanIntegralConstant" name="iterator_less">
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <desc>Iterator less than comparison.</desc>
                 </metafunction>
- <metafunction concept="MplBooleanIntegralType" name="iterator_less_equal" nolink="true">
+ <metafunction concept="MplBooleanIntegralConstant" name="iterator_less_equal">
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <desc>Iterator less than or equal comparison.</desc>
                 </metafunction>
- <metafunction concept="MplBooleanIntegralType" name="iterator_greater" nolink="true">
+ <metafunction concept="MplBooleanIntegralConstant" name="iterator_greater">
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <desc>Iterator greater than comparison.</desc>
                 </metafunction>
- <metafunction concept="MplBooleanIntegralType" name="iterator_greater_equal" nolink="true">
+ <metafunction concept="MplBooleanIntegralConstant" name="iterator_greater_equal">
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <metafn_param placeholder="true">
@@ -208,7 +381,7 @@
 
         <concept name="MetaType">
                 <model name="meta_type"/>
- <member_typedef concept="Type" name="reflected_type" nolink="true">
+ <member_typedef concept="Type" name="reflected_type">
                         <desc>The type reflected by this MetaType.</desc>
                 </member_typedef>
         </concept>
@@ -255,7 +428,7 @@
                 <member_typedef concept="MetaClassAttributes" name="meta_all_attributes">
                         <desc>The sequence of MetaClassAttribute(s) reflecting all attributes of a class including the ones inherited from base classes.</desc>
                 </member_typedef>
- <member_typedef concept="Class" name="reflected_type" nolink="true">
+ <member_typedef concept="Class" name="reflected_type">
                         <desc>The class reflected by this MetaClass.</desc>
                 </member_typedef>
         </concept>
@@ -378,26 +551,26 @@
                 <member_typedef concept="MetaClassAttributes" name="meta_attributes">
                         <desc>Equivalent to container.</desc>
                 </member_typedef>
- <member_typedef concept="Type" name="type" nolink="true">
+ <member_typedef concept="Type" name="type">
                         <desc>The type of the reflected attribute.</desc>
                 </member_typedef>
- <member_typedef concept="TypedefOrTypeSelector" name="typedef_or_type" nolink="true">
+ <member_typedef concept="TypedefOrTypeSelector" name="typedef_or_type">
                         <desc>A type that can be reflected to obtain the proper MetaType for the attribute's type. This selector allows to distinguish typedefined types.</desc>
                 </member_typedef>
 
- <member_function concept="Type" name="get" nolink="true">
+ <member_function concept="Type" name="get">
                         <desc>Generic attribute value getter. Returns the value of the reflected class attribute when given an instance of the class that the attribute belongs to.</desc>
- <fn_param concept="Class" name="instance" nolink="true"/>
+ <fn_param concept="Class" name="instance"/>
                 </member_function>
- <member_function concept="TypeReference" name="query" nolink="true">
+ <member_function concept="TypeReference" name="query">
                         <desc>Generic attribute value query. Stores the value of the reflected class attribute into the instance referred to by dest_ref, when given an instance of the class that the attribute belongs to.</desc>
- <fn_param concept="Class" name="instance" nolink="true"/>
- <fn_param concept="TypeReference" name="dest_ref" nolink="true"/>
+ <fn_param concept="Class" name="instance"/>
+ <fn_param concept="TypeReference" name="dest_ref"/>
                 </member_function>
- <member_function concept="TypeReference" name="query" nolink="true">
+ <member_function concept="TypeReference" name="query">
                         <desc>Generic attribute value setter. Assigns the new_value to the reflected class attribute, when given an instance of the class that the attribute belongs to.</desc>
- <fn_param concept="Class" name="instance" nolink="true"/>
- <fn_param concept="Type" name="new_value" nolink="true"/>
+ <fn_param concept="Class" name="instance"/>
+ <fn_param concept="Type" name="new_value"/>
                 </member_function>
         </concept>
 
@@ -432,7 +605,7 @@
                 <member_typedef concept="MplBooleanIntegralConstant" name="is_mutable">
                         <desc>Type that indicates whether the class member attribute is mutable.</desc>
                 </member_typedef>
- <member_typedef concept="TypedefOrTypeSelector" name="meta_type_selector" nolink="true">
+ <member_typedef concept="TypedefOrTypeSelector" name="meta_type_selector">
                         <desc>A type that can be reflected to obtain the proper MetaType for the attribute's type. This selector allows to distinguish typedefined types.</desc>
                 </member_typedef>
         </concept>
@@ -480,14 +653,42 @@
         </role>
 
         <concept name="MetaObjectSequence">
- <metafunction concept="MetaObjectSequenceElement" name="at">
+ <free_function concept="UnaryFunctor" name="for_each">
+ <template_param placeholder="true"/>
+ <template_param name="UnaryFunctor"/>
+ <fn_param concept="UnaryFunctor" name="funct"/>
+ <desc>Executes the functor on an temporary instance of every element in the MetaObjectSequence.</desc>
+ </free_function>
+ <free_function concept="UnaryFunctor" name="for_each">
+ <template_param placeholder="true"/>
+ <template_param name="TransformOp"/>
+ <template_param name="UnaryFunctor"/>
+ <fn_param concept="TransformOp" name="transform"/>
+ <fn_param concept="UnaryFunctor" name="funct"/>
+ <desc>Executes the runtime functor on a temporary instance of the result of the TransformOp on every element in the MetaObjectSequence.</desc>
+ </free_function>
+ <free_function concept="UnaryFunctor" name="reverse_for_each">
+ <template_param placeholder="true"/>
+ <template_param name="UnaryFunctor"/>
+ <fn_param concept="UnaryFunctor" name="funct"/>
+ <desc>Executes the functor on an temporary instance of every element in the reversed reversed MetaObjectSequence.</desc>
+ </free_function>
+ <free_function concept="UnaryFunctor" name="reverse_for_each">
+ <template_param placeholder="true"/>
+ <template_param name="TransformOp"/>
+ <template_param name="UnaryFunctor"/>
+ <fn_param concept="TransformOp" name="transform"/>
+ <fn_param concept="UnaryFunctor" name="funct"/>
+ <desc>Executes the runtime functor on a temporary instance of the result of the TransformOp on every element in the reversed MetaObjectSequence.</desc>
+ </free_function>
+ <metafunction concept="MetaObjectSequenceElement" name="at">
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <metafn_param name="Position">
                         </metafn_param>
                         <desc>The result is the element from the MetaObjectSequence at the given Position. The type used as the Position parameter must conform to MPL Integral Constant concept.</desc>
                 </metafunction>
- <metafunction concept="MplIntegralConstant" name="size" nolink="true">
+ <metafunction concept="MplIntegralConstant" name="size">
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <desc>The result is the count of elements in the MetaObjectSequence.</desc>
@@ -531,7 +732,7 @@
                         </metafn_param>
                         <desc>Returns a Reverse Iterator pointing to the first element in the reversed MetaObjectSequence satisfying the given Predicate.</desc>
                 </metafunction>
- <metafunction concept="unspecified" name="accumulate" nolink="true">
+ <metafunction concept="unspecified" name="accumulate">
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <metafn_param name="InitialState">
@@ -554,7 +755,7 @@
                 <member_typedef concept="MetaObjectSequence" name="container">
                         <desc>The sequence that this element belongs to.</desc>
                 </member_typedef>
- <member_typedef concept="MplIntegralConstant" name="position" nolink="true">
+ <member_typedef concept="MplIntegralConstant" name="position">
                         <desc>An MPL Integral Constant indicating the position of the reflected element in the container.</desc>
                 </member_typedef>
         </concept>
@@ -569,10 +770,10 @@
 
         <concept name="MetaBaseClasses">
                 <model name="meta_base_classes"/>
- <member_typedef concept="Class" name="derived_class" nolink="true">
+ <member_typedef concept="Class" name="derived_class">
                         <desc>The class which base classes this MetaBaseClasses sequence reflects.</desc>
                 </member_typedef>
- <metafunction concept="MplSequence" name="get_type_list" nolink="true">
+ <metafunction concept="MplSequence" name="get_type_list">
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <desc>The result is an MPL Sequence of the base classes of derived_class.</desc>
@@ -591,7 +792,7 @@
         <concept name="MetaClassAttributes">
                 <model name="meta_class_attributes"/>
                 <model name="meta_class_all_attributes"/>
- <metafunction concept="MplSequence" name="get_type_list" nolink="true">
+ <metafunction concept="MplSequence" name="get_type_list">
                         <metafn_param placeholder="true">
                         </metafn_param>
                         <desc>The result is an MPL Sequence of the types of the class' member attributes.</desc>

Added: sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/ContextNodeSet.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/ContextNodeSet.xml 2008-11-27 13:03:43 EST (Thu, 27 Nov 2008)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<?xml-stylesheet type="text/xsl" href="transform.xsl" ?>
+<concept name="ContextNodeSet"/>

Added: sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/TraversalContext.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/TraversalContext.xml 2008-11-27 13:03:43 EST (Thu, 27 Nov 2008)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<?xml-stylesheet type="text/xsl" href="transform.xsl" ?>
+<concept name="TraversalContext"/>

Added: sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/TraversalVisitor.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/TraversalVisitor.xml 2008-11-27 13:03:43 EST (Thu, 27 Nov 2008)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<?xml-stylesheet type="text/xsl" href="transform.xsl" ?>
+<concept name="TraversalVisitor"/>

Modified: sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/transform.xsl
==============================================================================
--- sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/transform.xsl (original)
+++ sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/transform.xsl 2008-11-27 13:03:43 EST (Thu, 27 Nov 2008)
@@ -15,6 +15,9 @@
         <!-- include the template that makes the alphabetical list of concepts-->
         <xsl:include href="../xslt/make_concept_list.xsl"/>
 
+ <!-- include the template that makes the list of concept models-->
+ <xsl:include href="../xslt/make_model_list.xsl"/>
+
 
         <xsl:template name="make-list-of-already-done-members">
                 <xsl:param name="current"/>
@@ -54,22 +57,24 @@
                         <xsl:if test="not(contains($already_done, concat('[', @name, ']')))">
                         <tr>
                                 <td><code>
- <xsl:if test="@nolink='true'">
- <xsl:value-of select="@concept"/>
+ <xsl:variable name="this_concept" select="@concept"/>
+ <xsl:variable name="this_is_known_concept" select="document($ontology_src)/concept_ontology/concept[@name = $this_concept]"/>
+ <xsl:if test="not($this_is_known_concept)">
+ <xsl:value-of select="$this_concept"/>
                                         </xsl:if>
- <xsl:if test="not(@nolink='true')">
+ <xsl:if test="$this_is_known_concept">
                                                 <xsl:element name="a">
                                                         <xsl:attribute name="href">
                                                                 <xsl:if test="@url">
                                                                         <xsl:value-of select="@url"/>
                                                                 </xsl:if>
                                                                 <xsl:if test="not(@url)">
- <xsl:value-of select="@concept"/>
+ <xsl:value-of select="$this_concept"/>
                                                                         <xsl:text>.xml</xsl:text>
                                                                 </xsl:if>
                                                         </xsl:attribute>
 
- <xsl:value-of select="@concept"/>
+ <xsl:value-of select="$this_concept"/>
                                                 </xsl:element>
                                         </xsl:if>
                                 </code></td>
@@ -81,32 +86,70 @@
                                                 <strong>x</strong><xsl:text>.</xsl:text>
                                         </xsl:if>
                                         
- <xsl:value-of select="@name"/>
- <xsl:if test="$member_type = 'member_function'">
- <xsl:text>(</xsl:text>
- <xsl:for-each select="fn_param">
- <xsl:value-of select="@concept"/>
- <xsl:text> </xsl:text>
- <xsl:value-of select="@name"/>
- <xsl:if test="position()!=last()">
- <xsl:text>, </xsl:text>
- </xsl:if>
- </xsl:for-each>
- <xsl:text>)</xsl:text>
+
+ <xsl:if test="$member_type = 'free_function' or $member_type='metafunction'">
+ <xsl:if test="@namespace or @subnamespace">
+ <xsl:value-of select="@namespace | @subnamespace"/>
+ <xsl:text>::</xsl:text>
+ </xsl:if>
                                         </xsl:if>
- <xsl:if test="$member_type = 'metafunction'">
+ <xsl:value-of select="@name"/>
+ <xsl:if test="$member_type = 'metafunction' or template_param">
                                                 <xsl:text>&lt; </xsl:text>
- <xsl:for-each select="metafn_param">
+ <xsl:for-each select="metafn_param | template_param">
+ <xsl:variable name="templ_param_concept" select="@name"/>
                                                         <xsl:if test="@placeholder='true'">
                                                                 <strong>T</strong>
                                                         </xsl:if>
- <xsl:value-of select="@name"/>
+ <xsl:choose>
+ <xsl:when test="document($ontology_src)/concept_ontology/concept[@name = $templ_param_concept]">
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:value-of select="@name"/>
+ <xsl:text>.xml</xsl:text>
+ </xsl:attribute>
+ <xsl:value-of select="@name"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@name"/>
+ </xsl:otherwise>
+ </xsl:choose>
                                                         <xsl:if test="position()!=last()">
                                                         <xsl:text>, </xsl:text>
                                                         </xsl:if>
                                                 </xsl:for-each>
                                                 <xsl:text> &gt;::type</xsl:text>
                                         </xsl:if>
+ <xsl:if test="$member_type = 'member_function' or $member_type = 'free_function'">
+ <xsl:text>(</xsl:text>
+ <xsl:for-each select="fn_param">
+ <xsl:variable name="fn_param_concept" select="@concept"/>
+ <xsl:element name="span">
+ <xsl:attribute name="title">
+ <xsl:value-of select="@concept"/>
+ </xsl:attribute>
+ <xsl:choose>
+ <xsl:when test="document($ontology_src)/concept_ontology/concept[@name = $fn_param_concept]">
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:value-of select="@concept"/>
+ <xsl:text>.xml</xsl:text>
+ </xsl:attribute>
+ <xsl:value-of select="@name"/>
+ </xsl:element>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ <xsl:if test="position()!=last()">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
                                 </code></td>
                                 <td>
                                         <xsl:value-of select="desc"/>
@@ -202,6 +245,28 @@
                 </div>
         </xsl:template>
 
+ <!-- makes the free function table -->
+ <xsl:template name="make-free-fn-table">
+ <xsl:param name="concept"/>
+ <div class="table">
+ <p class="title"><b>Free functions</b></p>
+ <div class="table-contents">
+ <table class="table">
+ <tr>
+ <th>Return value concept</th>
+ <th>Expression</th>
+ <th>Notes</th>
+ </tr>
+ <xsl:call-template name="make-member-items">
+ <xsl:with-param name="concept" select="$concept"/>
+ <xsl:with-param name="current" select="$concept"/>
+ <xsl:with-param name="member_type">free_function</xsl:with-param>
+ </xsl:call-template>
+ </table>
+ </div>
+ </div>
+ </xsl:template>
+
         <!-- makes the metafunction function table -->
         <xsl:template name="make-meta-fn-table">
                 <xsl:param name="concept"/>
@@ -224,82 +289,6 @@
                 </div>
         </xsl:template>
 
- <xsl:template name="make-model-list">
- <xsl:param name="concept"/>
- <xsl:param name="current"/>
- <xsl:param name="already_done"/>
-
- <xsl:for-each select="document($ontology_src)/concept_ontology/concept[@name = $current]/model">
- <xsl:if test="not(contains($already_done, concat('[', @name, ']')))">
- <tr>
- <td>
- <xsl:if test="@nolink='true'">
- <code> <xsl:value-of select="@name"/> </code>
- </xsl:if>
- <xsl:if test="not(@nolink='true')">
- <xsl:element name="a">
- <xsl:attribute name="href">
- <xsl:if test="@url">
- <xsl:value-of select="@url"/>
- </xsl:if>
- <xsl:if test="not(@url)">
- <xsl:text>../../../../boost/</xsl:text>
- <xsl:if test="@namespace">
- <xsl:value-of select="@namespace"/>
- </xsl:if>
- <xsl:if test="not(@namespace)">
- <xsl:text>mirror</xsl:text>
- </xsl:if>
- <xsl:text>/</xsl:text>
- <xsl:value-of select="@name"/>
- <xsl:text>.html</xsl:text>
- </xsl:if>
-
- </xsl:attribute>
-
- <xsl:if test="@namespace">
- <xsl:value-of select="@namespace"/>
- <xsl:text>::</xsl:text>
- </xsl:if>
- <code> <xsl:value-of select="@name"/> </code>
- </xsl:element>
- </xsl:if>
- </td>
- <td>
- <xsl:if test="not(notes)">
- <xsl:text>-</xsl:text>
- </xsl:if>
- </td>
- </tr>
- </xsl:if>
- </xsl:for-each>
-
- <xsl:variable name="new_already_done">
- <xsl:value-of select="$already_done"/>
- <xsl:for-each select="document($ontology_src)/concept_ontology/concept[@name = $current]/model">
- <xsl:value-of select="concat('[', @name, ']')"/>
- </xsl:for-each>
- </xsl:variable>
- <!-- go through the refinements of this concept -->
- <xsl:for-each select="document($ontology_src)/concept_ontology/role[@type='Specialization' and @subject=$current]">
- <!-- get the list of members that were already covered -->
- <xsl:call-template name="make-model-list">
- <xsl:with-param name="concept" select="$concept"/>
- <xsl:with-param name="current" select="@object"/>
- <xsl:with-param name="already_done">
- <xsl:value-of select="$new_already_done"/>
- <xsl:for-each select="preceding-sibling::node()[@type='Specialization' and @subject=$current]">
- <xsl:call-template name="make-list-of-already-done-models">
- <xsl:with-param name="current" select="@object"/>
- </xsl:call-template>
- </xsl:for-each>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:for-each>
-
- </xsl:template>
-
- <!-- makes the concept models table -->
         <xsl:template name="make-models-table">
                 <xsl:param name="concept"/>
                 <div class="table">
@@ -337,7 +326,7 @@
                 </xsl:call-template>
                 </div>
 
- <p>For each type <code>T</code> which is a model of the <xsl:value-of select="$concept"/> concept and for each variable <code>x</code> which is of <code>T</code> type, the following expressions are valid.</p>
+ <p>For each type <code><strong>T</strong></code> which is a model of the <xsl:value-of select="$concept"/> concept and for each variable <code><strong>x</strong></code> which is of <code><strong>T</strong></code> type, the following expressions are valid.</p>
 
                 <xsl:call-template name="make-typedef-table">
                         <xsl:with-param name="concept" select="$concept"/>
@@ -345,6 +334,9 @@
                 <xsl:call-template name="make-mem-fn-table">
                         <xsl:with-param name="concept" select="$concept"/>
                 </xsl:call-template>
+ <xsl:call-template name="make-free-fn-table">
+ <xsl:with-param name="concept" select="$concept"/>
+ </xsl:call-template>
                 <xsl:call-template name="make-meta-fn-table">
                         <xsl:with-param name="concept" select="$concept"/>
                 </xsl:call-template>

Added: sandbox/mirror/doc/html/mirror/non_boost_book/concepts/xslt/make_model_list.xsl
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/mirror/non_boost_book/concepts/xslt/make_model_list.xsl 2008-11-27 13:03:43 EST (Thu, 27 Nov 2008)
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+>
+ <xsl:template name="make-model-list">
+ <xsl:param name="concept"/>
+ <xsl:param name="current"/>
+ <xsl:param name="already_done"/>
+
+ <xsl:for-each select="document($ontology_src)/concept_ontology/concept[@name = $current]/model">
+ <xsl:if test="not(contains($already_done, concat('[', @name, ']')))">
+ <tr>
+ <td>
+ <xsl:if test="@nolink='true'">
+ <code> <xsl:value-of select="@name"/> </code>
+ </xsl:if>
+ <xsl:if test="not(@nolink='true')">
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:if test="@url">
+ <xsl:value-of select="@url"/>
+ </xsl:if>
+ <xsl:if test="not(@url)">
+ <xsl:text>../../../../boost/</xsl:text>
+ <xsl:if test="@namespace">
+ <xsl:value-of select="@namespace"/>
+ </xsl:if>
+ <xsl:if test="not(@namespace)">
+ <xsl:text>mirror</xsl:text>
+ </xsl:if>
+ <xsl:text>/</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:text>.html</xsl:text>
+ </xsl:if>
+
+ </xsl:attribute>
+
+ <xsl:if test="@namespace">
+ <xsl:value-of select="@namespace"/>
+ <xsl:text>::</xsl:text>
+ </xsl:if>
+ <code> <xsl:value-of select="@name"/> </code>
+ </xsl:element>
+ </xsl:if>
+ </td>
+ <td>
+ <xsl:if test="not(notes)">
+ <xsl:text>-</xsl:text>
+ </xsl:if>
+ </td>
+ </tr>
+ </xsl:if>
+ </xsl:for-each>
+
+ <xsl:variable name="new_already_done">
+ <xsl:value-of select="$already_done"/>
+ <xsl:for-each select="document($ontology_src)/concept_ontology/concept[@name = $current]/model">
+ <xsl:value-of select="concat('[', @name, ']')"/>
+ </xsl:for-each>
+ </xsl:variable>
+ <!-- go through the refinements of this concept -->
+ <xsl:for-each select="document($ontology_src)/concept_ontology/role[@type='Specialization' and @subject=$current]">
+ <!-- get the list of members that were already covered -->
+ <xsl:call-template name="make-model-list">
+ <xsl:with-param name="concept" select="$concept"/>
+ <xsl:with-param name="current" select="@object"/>
+ <xsl:with-param name="already_done">
+ <xsl:value-of select="$new_already_done"/>
+ <xsl:for-each select="preceding-sibling::node()[@type='Specialization' and @subject=$current]">
+ <xsl:call-template name="make-list-of-already-done-models">
+ <xsl:with-param name="current" select="@object"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:for-each>
+
+ </xsl:template>
+</xsl:stylesheet>


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk