
From: "Emil Dotchevski" <emildotchevski@gmail.com> The point is, you're generalizing the interface without anybody having posted even a single use case that requires that generalization.
Yes, I've been playing along that generalization effort as I did not see it compromising the interface or muddling the intent. For me the clarity was the goal, the generalization was a bonus. I do not feel int i = convert<int>::from(string) has been generalized at the expense of clarity. Quite the opposite. To me above does exactly what it says... in the best possible (IMHO) way. I do not believe that something clearer like "from_string" will better reflect its purpose as the "string" is open for interpretation and the above converts from various string-like *containers* (like vector<char>, list<wchar_t>). Same goes for 'to_string' as I need to convert to char and wchar_t-based strings and most likely need to convert to u8char strings. Therefore, I do not feel to_string<wstring>(-1) looks/reads better than convert<wstring>::from(-1)
Such generalization is not needed by anyone, or if it is needed we have no idea if that use case will fit this interface. So why is it supported? Just in case? We have lexical_cast for that. :)
Yes, I indeed have that feeling that the generalization option will never be exercised. However, to me the generalization has been accidental, a bonus. The main goal of the exercise (for me) has been clearing up the interface to say what it does. V.