I'm not sure, but I think a class is a somewhat object (poorly used), where all its internal components work together (generally speaking), its member definitely needs its methods.
But the namespace is different, the functions are not related. This means that the function is not designed to work with any other functions inside the namespace.
Thus, declarations and definitions of separation are the best you could do.
If foo() needs bar() , it will most likely be in the same declaration file and work this way
source share