On Tue, Mar 29, 2011 at 8:22 PM, Jonathan Wakely <jwakely....@gmail.com> wrote: > How about "No suitable %<begin%> and %<end%> functions found for range > expression of type %qT in %<for%> statement" ?
Nice. But the problem here is that there are a lot of different error conditions: 1. begin member but not end member. 2. end member but not begin member. 3. begin and end member but one or both are not callable/accesible/whatever. 3. no begin/end members, a begin global function but not end. 4. no begin/end members, an end global function but not begin. 5. no begin/end members, begin and end functions but one or both not callable/wrong overload/etc. 6. no begin/end members, no begin/end global functions. Since the standard headers have the std::begin/std::end templates, this will not happen when you include (most) STL headers. What is the best message for each? Does it make sense to have up to 6 different messages? Too many? I just can't tell. -- Rodrigo