
David Abrahams <dave <at> boost-consulting.com> writes:
"Eric Niebler" <eric <at> boost-consulting.com> writes:
I put the using declaration in the requirement because without it, users might rightly wonder how a type such as int[5] could fulfill this particular requirement.
So why not simply document that there exists in namespace boost:
template <class T, std::size_t N> T* begin(T(&x)[N])
with semantics
return &x[0];
??
The reference docs state exactly what the functions returns. In the RC branch, I've added the following line: boost_range_begin(x) otherwise
You're saying a Concept should not describe how it should be satisfied, just how it should be used. Is that right?
It should describe both, but it's okay if the former is not spelled out all in one place, and I find the approach I'm suggesting to be more understandable than yours.
I like this distinction. What it amounts to is that there might be several ways to satisfy a concept and that can be explained elsewhere. -Thorsten