约定:
A -> B : T = type
含义是把参数 A 传入以 B 为模板类型参数, typename 为 T 的模板中时, T 的类型会被推断为 type. 其中, any 指任何类型, |T| 为实参类型, T = error 意味着错误.
|T| -> T&& : T = T&
T&& -> T&& : T = T&&
T& -> T&& : T = T&
|T| -> T& : T = |T|
T&& -> T& : T = error
T& -> T& : T = T&
any -> const T& : T = |any|