Why is the static keyword necessary at all?
Why can’t the compiler infer whether it’s ‘static’ or not?
As follows:
Can I compile this function without access to non-static member data? Yes -> static funcion.
No -> non-static function.
Is there any reason this isn’t inferred?
If you expect the compiler to decide on the spot whether it’s static or not, how does that affect external source files linking against the header file that just defines the method signatures?