xxxxxxxxxx
import std.range, std.traits;
Target parse(Target, Source)(ref Source source)
if (isInputRange!Source && isSomeChar!(ElementType!Source) && !is(Source == enum) &&
isFloatingPoint!Target && !is(Target == enum))
{
bool anydigits = false;
if ( anydigits )
{
bool anydigits = true;
}
return 3.14;
}
template isExactSomeString(T)
{
enum isExactSomeString = isSomeString!T && !is(T == enum);
}
private T toImpl(T, S)(S value)
if (isInputRange!S && isSomeChar!(ElementEncodingType!S) &&
!isExactSomeString!T && is(typeof(parse!T(value))))
{
return parse!T(value);
}
void main()
{
string foo = "3.14";
toImpl!real(foo);
}