I've been reading a bit about static functions and static member functions. From my understanding if a function is declared static then this function is only visible to it's translation unit and nowhere else. A static member function instead is a function that can be called without instantiating any object of its class (so you can use it like it was in a name space).
To clarify with static function I mean something like
static int foo(int a, int b)
{
return a + b;
}
And with static member function I mean
struct MyClass
{
static int foo(int a, int b)
{
return a + b;
}
}
Is this the only difference? or is the visibility within the same translation unit still a common feature for the two of them?
As you can see on this page, static
actually has 3 different meanings depending on where it's used.