|
Boost-Commit : |
From: dgregor_at_[hidden]
Date: 2008-08-23 22:45:38
Author: dgregor
Date: 2008-08-23 22:45:37 EDT (Sat, 23 Aug 2008)
New Revision: 48342
URL: http://svn.boost.org/trac/boost/changeset/48342
Log:
Archetypes can be arithmetic or floating point types, too
Text files modified:
sandbox/committee/concepts/wording/wording.tex | 52 ++++++++++++++++++++++-----------------
1 files changed, 29 insertions(+), 23 deletions(-)
Modified: sandbox/committee/concepts/wording/wording.tex
==============================================================================
--- sandbox/committee/concepts/wording/wording.tex (original)
+++ sandbox/committee/concepts/wording/wording.tex 2008-08-23 22:45:37 EDT (Sat, 23 Aug 2008)
@@ -5067,21 +5067,21 @@
\pnum
\addedConcepts{A concept requirement that refers to the
-\mbox{\tcode{SameType}} concept (\mbox{\ref{concept.support}}) is a
+\mbox{\tcode{std::SameType}} concept (\mbox{\ref{concept.support}}) is a
\mbox{\techterm{same-type requirement}}. A same-type requirement is satisfied
when its two template arguments refer to the same type (including the
same \mbox{\techterm{cv}} qualifiers). In a
constrained template (\mbox{\ref{temp.constrained}}), a same-type requirement
-\mbox{\tcode{SameType<T1, T2>}} makes the types \mbox{\tcode{T1}} and \mbox{\tcode{T2}}
+\mbox{\tcode{std::SameType<T1, T2>}} makes the types \mbox{\tcode{T1}} and \mbox{\tcode{T2}}
equivalent. \mbox{\enternote} type equivalence is a
congruence relation, thus}
\begin{itemize}
-\item \addedConcepts{\mbox{\tcode{SameType<T1, T2>}} implies \mbox{\tcode{SameType<T2, T1>}},}
-\item \addedConcepts{\mbox{\tcode{SameType<T1, T2>}} and \mbox{\tcode{SameType<T2, T3>}} implies
- \mbox{\tcode{SameType<T1, T3>}},}
-\item \addedConcepts{\mbox{\tcode{SameType<T1, T1>}} is trivially true,}
-\item \addedConcepts{\mbox{\tcode{SameType<T1*, T2*>}} implies \mbox{\tcode{SameType<T1, T2>}} and
- \mbox{\tcode{SameType<T1**, T2**>}}, etc.}
+\item \addedConcepts{\mbox{\tcode{std::SameType<T1, T2>}} implies \mbox{\tcode{std::SameType<T2, T1>}},}
+\item \addedConcepts{\mbox{\tcode{std::SameType<T1, T2>}} and \mbox{\tcode{std::SameType<T2, T3>}} implies
+ \mbox{\tcode{std::SameType<T1, T3>}},}
+\item \addedConcepts{\mbox{\tcode{std::SameType<T1, T1>}} is trivially true,}
+\item \addedConcepts{\mbox{\tcode{std::SameType<T1*, T2*>}} implies \mbox{\tcode{std::SameType<T1, T2>}} and
+ \mbox{\tcode{std::SameType<T1**, T2**>}}, etc.}
\end{itemize}
\addedConcepts{\mbox{\exitnote}
\mbox{\enterexample}}
@@ -5702,31 +5702,37 @@
\mbox{\tcode{T}} is}
\begin{itemize}
\additemConcepts{an object type ([intro.object]), if the template
- contains the requirement \mbox{\tcode{ObjectType<T>}},}
+ contains the requirement \mbox{\tcode{std::ObjectType<T>}},}
\additemConcepts{a class type (clause~\mbox{\ref{class}}), if the
template contains the requirement
- \mbox{\tcode{ClassType<T>}},}
+ \mbox{\tcode{std::ClassType<T>}},}
\additemConcepts{a class (clause~\mbox{\ref{class}}), if the
- template contains the requirement \mbox{\tcode{Class<T>}},}
+ template contains the requirement \mbox{\tcode{std::Class<T>}},}
\additemConcepts{a union ([class.union]), if the template contains
- the requirement \mbox{\tcode{Union<T>}}},
+ the requirement \mbox{\tcode{std::Union<T>}}},
\additemConcepts{a trivial type (\mbox{\ref{basic.types}}), if the
template contains the requirement
- \mbox{\tcode{TrivialType<T>}},}
+ \mbox{\tcode{std::TrivialType<T>}},}
\additemConcepts{a standard layout type (\mbox{\ref{basic.types}}), if the
template contains the requirement
- \mbox{\tcode{StandardLayoutType<T>}},}
+ \mbox{\tcode{std::StandardLayoutType<T>}},}
\additemConcepts{a literal type (\mbox{\ref{basic.types}}), if the
template contains the requirement
- \mbox{\tcode{LiteralType<T>}},}
+ \mbox{\tcode{std::LiteralType<T>}},}
\additemConcepts{a scalar type (\mbox{\ref{basic.types}}), if the
template contains the requirement
- \mbox{\tcode{ScalarType<T>}},}
-\additemConcepts{an integral type ([basic.fundamental]), if the
+ \mbox{\tcode{std::ScalarType<T>}},}
+\additemCC{an arithmetic type (\mbox{\ref{basic.fundamental}}), if the
template contains the requirement
- \mbox{\tcode{IntegralType<T>}}, and}
-\additemConcepts{an enumeration type ([dcl.enum]), if the template
- contains the requirement \mbox{\tcode{EnumerationType<T>}}.}
+ \mbox{\tcode{std::ArithmeticType<T>}},}
+\additemConcepts{an integral type (\mbox{\ref{basic.fundamental}}), if the
+ template contains the requirement
+ \mbox{\tcode{std::IntegralType<T>}},}
+\additemCC{a floating point type (\mbox{\ref{basic.fundamental}}), if the
+ template contains the requirement
+ \mbox{\tcode{std::FloatingPointType<T>}}, and}
+\additemConcepts{an enumeration type (\mbox{\ref{dcl.enum}}), if the template
+ contains the requirement \mbox{\tcode{std::EnumerationType<T>}}.}
\end{itemize}
\pnum
@@ -5836,10 +5842,10 @@
\pnum
\addedConcepts{If the template requirements contain a requirement
-\mbox{\tcode{DerivedFrom<T, Base>}}, then the archetype of
+\mbox{\tcode{std::DerivedFrom<T, Base>}}, then the archetype of
\mbox{\tcode{T}} is publicly derived from the archetype of \mbox{\tcode{Base}}.
-If the same \mbox{\tcode{DerivedFrom<T, Base>}} requirement occurs more than once
-within the template requirements, the repeated \mbox{\tcode{DerivedFrom<T,
+If the same \mbox{\tcode{std::DerivedFrom<T, Base>}} requirement occurs more than once
+within the template requirements, the repeated \mbox{\tcode{std::DerivedFrom<T,
Base>}} requirements are ignored.}
\pnum
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