Workarounds for HP aCC from Thomas Matelich

[SVN r10031]
This commit is contained in:
Jeremy Siek
2001-05-06 01:20:41 +00:00
parent 98ccb8167d
commit 7d8d791022

View File

@ -6,6 +6,7 @@
// to its suitability for any purpose. // to its suitability for any purpose.
// //
// Revision History: // Revision History:
// 05 May 2001: Workarounds for HP aCC from Thomas Matelich. (Jeremy Siek)
// 02 April 2001: Removed limits header altogether. (Jeremy Siek) // 02 April 2001: Removed limits header altogether. (Jeremy Siek)
// 01 April 2001: Modified to use new <boost/limits.hpp> header. (JMaddock) // 01 April 2001: Modified to use new <boost/limits.hpp> header. (JMaddock)
// //
@ -460,9 +461,7 @@ struct require_same { typedef T type; };
typedef typename std::iterator_traits<TT>::reference R; typedef typename std::iterator_traits<TT>::reference R;
typedef typename std::iterator_traits<TT>::pointer P; typedef typename std::iterator_traits<TT>::pointer P;
typedef typename std::iterator_traits<TT>::iterator_category C; typedef typename std::iterator_traits<TT>::iterator_category C;
function_requires< ConvertibleConcept< function_requires< ConvertibleConcept<C, std::input_iterator_tag> >();
typename std::iterator_traits<TT>::iterator_category,
std::input_iterator_tag> >();
#endif #endif
++i; // require preincrement operator ++i; // require preincrement operator
i++; // require postincrement operator i++; // require postincrement operator
@ -489,9 +488,8 @@ struct require_same { typedef T type; };
void constraints() { void constraints() {
function_requires< InputIteratorConcept<TT> >(); function_requires< InputIteratorConcept<TT> >();
#ifndef BOOST_NO_STD_ITERATOR_TRAITS #ifndef BOOST_NO_STD_ITERATOR_TRAITS
function_requires< ConvertibleConcept< typedef typename std::iterator_traits<TT>::iterator_category C;
typename std::iterator_traits<TT>::iterator_category, function_requires< ConvertibleConcept<C, std::forward_iterator_tag> >();
std::forward_iterator_tag> >();
typedef typename std::iterator_traits<TT>::reference reference; typedef typename std::iterator_traits<TT>::reference reference;
reference r = *i; reference r = *i;
ignore_unused_variable_warning(r); ignore_unused_variable_warning(r);
@ -516,8 +514,8 @@ struct require_same { typedef T type; };
void constraints() { void constraints() {
function_requires< ForwardIteratorConcept<TT> >(); function_requires< ForwardIteratorConcept<TT> >();
#ifndef BOOST_NO_STD_ITERATOR_TRAITS #ifndef BOOST_NO_STD_ITERATOR_TRAITS
function_requires< ConvertibleConcept< typedef typename std::iterator_traits<TT>::iterator_category C;
typename std::iterator_traits<TT>::iterator_category, function_requires< ConvertibleConcept<C,
std::bidirectional_iterator_tag> >(); std::bidirectional_iterator_tag> >();
#endif #endif
--i; // require predecrement operator --i; // require predecrement operator
@ -545,8 +543,8 @@ struct require_same { typedef T type; };
function_requires< BidirectionalIteratorConcept<TT> >(); function_requires< BidirectionalIteratorConcept<TT> >();
function_requires< ComparableConcept<TT> >(); function_requires< ComparableConcept<TT> >();
#ifndef BOOST_NO_STD_ITERATOR_TRAITS #ifndef BOOST_NO_STD_ITERATOR_TRAITS
function_requires< ConvertibleConcept< typedef typename std::iterator_traits<TT>::iterator_category C;
typename std::iterator_traits<TT>::iterator_category, function_requires< ConvertibleConcept< C,
std::random_access_iterator_tag> >(); std::random_access_iterator_tag> >();
typedef typename std::iterator_traits<TT>::reference R; typedef typename std::iterator_traits<TT>::reference R;
#endif #endif