Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r48697 - sandbox/committee/concepts/stdlib
From: dgregor_at_[hidden]
Date: 2008-09-10 10:41:45


Author: dgregor
Date: 2008-09-10 10:41:44 EDT (Wed, 10 Sep 2008)
New Revision: 48697
URL: http://svn.boost.org/trac/boost/changeset/48697

Log:
Add HasSubscript, remove HasPlacementNew
Text files modified:
   sandbox/committee/concepts/stdlib/clib-concepts.tex | 32 ++++++++++++++++++++------------
   1 files changed, 20 insertions(+), 12 deletions(-)

Modified: sandbox/committee/concepts/stdlib/clib-concepts.tex
==============================================================================
--- sandbox/committee/concepts/stdlib/clib-concepts.tex (original)
+++ sandbox/committee/concepts/stdlib/clib-concepts.tex 2008-09-10 10:41:44 EDT (Wed, 10 Sep 2008)
@@ -120,6 +120,13 @@
     \tcode{LessThanComparable} rather than \tcode{HasLess},
     \tcode{HasGreater}, \tcode{HasLessEqual}, and
     \tcode{HasGreatEqual}.
+ \item Added the \tcode{HasSubscript}
+ concept, from Daniel Kr\"ugler, to finish providing concepts for
+ all overloadable operators.
+ \item Based on the resolution to library issue 402 (and the
+ follow-on issue 866), there is no longer a need for the
+ \tcode{HasPlacementNew} concept in the Standard Library, so it has
+ been removed.
 \end{itemize}
 
 \end{titlepage}
@@ -261,6 +268,7 @@
   auto concept HasRightShift<typename T, typename U> @\textit{see below}@;
   auto concept HasDereference<typename T> @\textit{see below}@;
   auto concept HasAddressOf<typename T> @\textit{see below}@;
+ auto concept HasSubscript<typename T, typename U> @\textit{see below}@;
   auto concept Callable<typename F, typename... Args> @\textit{see below}@;
   auto concept HasAssign<typename T, typename U> @\textit{see below}@;
   auto concept HasPlusAssign<typename T, typename U> @\textit{see below}@;
@@ -312,7 +320,6 @@
   auto concept Swappable<typename T> @\textit{see below}@;
 
   // \ref{concept.memory}, memory allocation:
- auto concept HasPlacementNew<typename T> @\textit{see below}@;
   auto concept FreeStoreAllocatable<typename T> @\textit{see below}@;
 
   // \ref{concept.regular}, regular types:
@@ -1050,6 +1057,18 @@
 \end{itemdescr}
 
 \begin{itemdecl}
+auto concept HasSubscript<typename T, typename U> {
+ typename result_type;
+ result_type operator[](T&&, const U&);
+}
+\end{itemdecl}
+
+\begin{itemdescr}
+\pnum
+\addedConcepts{\mbox{\reallynote} describes types with a subscript \mbox{\tcode{operator[].}}}
+\end{itemdescr}
+
+\begin{itemdecl}
 auto concept Callable<typename F, typename... Args> {
   typename result_type;
   result_type operator()(F&&, Args...);
@@ -1672,17 +1691,6 @@
 
 \rSec2[concept.memory]{Memory allocation}
 \begin{itemdecl}
-auto concept HasPlacementNew<typename T> {
- void* T::operator new(size_t size, void*);
-}
-\end{itemdecl}
-
-\begin{itemdescr}
-\pnum
-\addedConcepts{\mbox{\reallynote} Describes types that have a placement new.}
-\end{itemdescr}
-
-\begin{itemdecl}
 auto concept FreeStoreAllocatable<typename T> {
   void* T::operator new(size_t size);
   void T::operator delete(void*);


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