$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
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>< </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> >::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>