【发布时间】:2019-11-24 22:20:01
【问题描述】:
谁能给我详细解释一下这句话是什么意思?
template< class U = T > optional& operator=( U&& value );4) ...函数不参与重载决议,除非
std::decay_t<U>(C++20 前)std::remove_cvref_t<U>(C++20 起)不是std::optional<T>...
(source)
在第4版中,不带任何动词的“std::decay_t<U> (until C++20) std::remove_cvref_t<U> (since C++20)”是什么意思?有错别字吗?
【问题讨论】:
-
谢谢。我明白。请您解释一下“函数不参与重载解析,除非”部分?
-
“不参与重载决议”意味着当您将一些非可选分配给可选时,选择了其他一些 operator= 重载,例如 (4)。
-
我试图深入理解这一点。