`const long pos_long = ftell(fp);` contains a potential implicit case in the future if the return type of `ftell()` changes.
That's one reason type inference is safer than not inferring. Your program doesn't include semantics you didn't actually intend to be part of its meaning.
Also, I think lambdas would be annoying without it.
Thank you for answering for me!