
16 Dec
2007
16 Dec
'07
3:26 a.m.
Márcio Gil wrote:
I suggest this add on lexical_cast library: a lexical_cast_def function,
string source; int x = lexical_cast_def<int>( source, 0 );
In opposite of:
string source; int x; try { x = lexical_cast<int>( source ); } catch(...) { x = 0; }
This wouldn't only be useful to lexical_cast. What about a more generic utility? template<typename F, typename T> T call_default(F f, T t) { try { return f(); } catch { return t; } } Unfortunately, this requires usage of function objects, and lambdas are not so popular. Maybe one can do it with actual C++ expressions using macros.