Created on 2009-03-11.00:00:00 last changed 171 months ago
Rationale:
raw_storage_iterator has to adapt a ForwardIterator, rather than just an InputIterator for two reasons:
Proposed resolution:
[memory] p2
Update the synopsis for <memory>
// 20.7.8, raw storage iterator: template <classForwardIterator OutputIterator,classObjectType T> requires OutputIterator< OutIter, T > class raw_storage_iterator; template <ForwardIterator OutIter, ObjectType T> requires OutputIterator< OutIter, T > concept_map Iterator<raw_storage_iterator< OutIter, T > > { }
[storage.iterator] p1
Replace class template definition with:
namespace std { template <classForwardIterator OutputIterator,classObjectType T> requires OutputIterator< OutIter, T > class raw_storage_iterator : public iterator<output_iterator_tag,void,void,void,void> { public: explicit raw_storage_iterator(OutputIteratorx); raw_storage_iterator<OutputIterator,T>& operator*(); raw_storage_iterator<OutputIterator,T>& operator=(const T& element); raw_storage_iterator<OutputIterator,T>& operator++(); raw_storage_iterator<OutputIterator,T>operator++(int); }; template <ForwardIterator OutIter, ObjectType T> requires OutputIterator< OutIter, T > concept_map Iterator<raw_storage_iterator< OutIter, T > > { } }
[ Post Summit Alisdair provided wording and rationale. ]
[ Summit: ]
We look forward to a paper on this topic. We recommend no action until a paper is available.
Addresses UK 214 [CD1]
raw_storage_iterator needs constraining as an iterator adaptor to be safely used in constrained templates
History | |||
---|---|---|---|
Date | User | Action | Args |
2010-10-21 18:28:33 | admin | set | messages: + msg378 |
2010-10-21 18:28:33 | admin | set | messages: + msg377 |
2010-10-21 18:28:33 | admin | set | messages: + msg376 |
2010-10-21 18:28:33 | admin | set | messages: + msg375 |
2009-03-11 00:00:00 | admin | create |