Open2
読みにくい関数パラメータ宣言
static_assert(std::is_same_v<void(()), void()>);
static_assert(std::is_same_v<void((*)()), void(*)()>);
void ()
// ~~~~ ~~
// | |
// | abstract-declarator = parameters-and-qualifiers
// |
// type-specifier = trailing-type-specifier = simple-type-specifier
void ( () )
// ~~~~ ~~~~~~
// | | ~~
// | | |
// | | ptr-abstract-declarator = noptr-abstract-declarator = parameters-and-qualifiers
// | |
// | abstract-declarator = ptr-abstract-declarator = noptr-abstract-declarator
// |
// type-specifier = trailing-type-specifier = simple-type-specifier