The
static specifier shall be applied only
to the declaration of a variable or function,
to a structured binding declaration (
[dcl.struct.bind]), or
to the declaration of an anonymous union (
[class.union.anon])
. There can be no
static function declarations within a block, nor any
static function parameters
. A
static specifier used in
the declaration of a variable declares the variable to have static storage
duration (
[basic.stc.static]), unless accompanied by the
thread_local specifier, which declares the variable to have thread
storage duration (
[basic.stc.thread])
. A
static specifier can be
used in declarations of class members;
[class.static] describes its
effect
. For the linkage of a name declared with a
static specifier,
see
[basic.link].