+2002-02-10 Phil Edwards <pme@gcc.gnu.org>
+
+ * include/bits/stl_algo.h (transform (both signatures), generate_n):
+ Use __typeof__ in concept checks.
+
2002-02-10 Jonathan Wakely <cow@compsoc.man.ac.uk>
* include/bits/stl_algo.h (__median, for_each, find, find_if,
{
// concept requirements
__glibcpp_function_requires(_InputIteratorConcept<_InputIter>)
- /* XXX
__glibcpp_function_requires(_OutputIteratorConcept<_OutputIter,
- // should be "the type returned by _UnaryOperation"
- typename iterator_traits<_InputIter>::value_type>)
- */
+ // "the type returned by a _UnaryOperation"
+ __typeof__(__unary_op(*__first))>)
for ( ; __first != __last; ++__first, ++__result)
*__result = __unary_op(*__first);
// concept requirements
__glibcpp_function_requires(_InputIteratorConcept<_InputIter1>)
__glibcpp_function_requires(_InputIteratorConcept<_InputIter2>)
- /* XXX
__glibcpp_function_requires(_OutputIteratorConcept<_OutputIter,
- // should be "the type returned by _BinaryOperation"
- typename iterator_traits<_InputIter1>::value_type>)
- */
+ // "the type returned by a _BinaryOperation"
+ __typeof__(__binary_op(*__first1,*__first2))>)
for ( ; __first1 != __last1; ++__first1, ++__first2, ++__result)
*__result = __binary_op(*__first1, *__first2);
_OutputIter
generate_n(_OutputIter __first, _Size __n, _Generator __gen)
{
- /*
- // XXX concept requirements
+ // concept requirements
__glibcpp_function_requires(_OutputIteratorConcept<_OutputIter,
- "the return type of _Generator" ?? >)
- */
+ // "the type returned by a _Generator"
+ __typeof__(gen())>)
for ( ; __n > 0; --__n, ++__first)
*__first = __gen();