Static storage duration just means a variable declared at a namespace scope. We’ll have external linkage in the following cases:

  • Functions declared without the static keyword are extern
  • non-const variables not declared static and all variables declared extern
  • enums, names of classes, templates of things that satisfy above rules

See Storage class specifiers