The following linkage rules apply to names with file scope:
Static class members have external linkage.
Class member functions have external linkage.
Functions declared as friend functions must have external linkage. Declaring a static function as a friend is an error (Microsoft specific).
Enumerators and typedef names do not have external linkage.