That seems like a very unusual way to define a function. I'd want 'ok' to be the return value, and the actual value returned to be via the pointer, since that allows for
float c;
if(get(v, &c))
...do something with c...
instead of the more verbose
bool ok;
float c;
c = get(v, &ok);
if(ok)
...do something with c...