[ 2009-07-04 Howard adds: ]
Here's a use case which demonstrates the syntactic niceness which Alisdair describes:
#define requires(...) class = typename std::enable_if<(__VA_ARGS__)>::type template <class T, class U, requires(!is_lvalue_reference<T>() || is_lvalue_reference<T>() && is_lvalue_reference<U>()), requires(is_same<typename base_type<T>::type, typename base_type<U>::type>)> inline T&& forward(U&& t) { return static_cast<T&&>(t); }