/+ dub.sdl: dependency "numparse" path=".." dflags "-betterC" +/ // dub --single --build=release bc.d -- -10 +0.5 abc -.1 module bench.bc; import numparse; import core.stdc.stdio; extern(C) nothrow @nogc: int main(int argc, char** argv) { if (argc < 2) { fprintf(stderr, "pass float numbers to program\n"); return 1; } foreach (i; 1 .. argc) { printf("try parse: %s\n", argv[i]); size_t n = 0; while (argv[i][n] != 0) n++; const arg = argv[i][0..n]; double val; const err = parseSimpleFloatNumber!10(val, arg); if (err != ParseError.none) fprintf(stderr, "problem then parse '%s': %d\n", argv[i], err); else printf("%f\n", val); } return 0; }