【发布时间】:2019-04-02 19:00:22
【问题描述】:
对于可选的template<class U = T> optional<T>& operator=(U&& v);,标准要求(参见[optional.assign]/3.16):
此函数不应参与重载决议,除非 ...
conjunction_v<is_scalar<T>, is_same<T, decay_t<U>>>是false...
为什么在分配U == T 类型的标量时必须排除大小写?
【问题讨论】:
-
可能是因为另一个重载就可以了。查看单个重载并不能真正为您提供全貌
-
类型都是特殊情况...,但基本类型和特别是 void 非常无聊!
标签: c++ language-lawyer c++17 optional