Why get pages of impenetrable error messages for this?
• int i
= 0, j = 2;
std::sort( i, j ); // screenfuls of
arcane error messages ensue…
Because today sort is defined like this:
• template<class RandomAccessIterator>
void
sort( RandomAccessIterator first, RandomAccessIterator last );
In C++0x we could say something like:
• template<class T> concept RandomAccessIterator {
… definition of what a
RandomAccessIterator<T> should be able
to do, such as increment, dereference, etc.
…
};
• template<class
T>
void sort( RandomAccessIterator<T> first, RandomAccessIterator<T> last );
•Enables clear, friendly, and morally
decent error messages:
• int i
= 0, j = 2;
std::sort( i, j ); // hey, stupid, i and
j aren’t RandomAccessIterators…