8 Functions

8.1 Syntax

function attributes? function‑specifiers return‑type function‑group‑id parameter‑list (function‑body | ;)
function‑specifiers (access | extern)*
return‑type type‑expr
function‑group‑id identifier | operator‑group‑id
parameter‑list ( (parameter (, parameter)* )? )
parameter type‑expr identifier
operator‑group‑id operator ( << | >> | == | < | + | | * | / | % | ^ | ! | () )
function‑body compound‑statement
attributes [ ( name‑value‑pair (, name‑value‑pair)* ) ]
name‑value‑pair name = value
name qualified‑id
value qualified‑id | string‑literal | integer‑literal | boolean‑literal