小编Tim*_*ver的帖子

一个类型是否只能移动,只是因为复制可能很昂贵?

我有一个可复制的类型,但复制可能很昂贵.我已经实现了移动构造函数和移动赋值.但是我遇到性能问题,人们忘记在传递值时调用move().

是否有良好的C++ 11样式来删除复制构造函数,而是为实际需要复制的罕见情况提供显式的copy()方法?这在其他语言(Ruby,JavaScript)中是惯用的,但我不知道C++标准库中的任何内容都禁止纯粹为了性能而复制.例如,std :: vector <>是可复制的,而std :: unique_ptr <>和std :: thread由于其他原因是不可复制的.

c++ move-semantics c++11

10
推荐指数
1
解决办法
393
查看次数

为什么`(count nil)`返回0?

在Clojure中,我发现这令人惊讶:

> (count nil)
0
Run Code Online (Sandbox Code Playgroud)

我希望有一个类型错误,就像在这种情况下:

> (count 77)
java.lang.UnsupportedOperationException: count not supported on this type: Long
Run Code Online (Sandbox Code Playgroud)

既然nil不是清单:

> (list? nil)
false
Run Code Online (Sandbox Code Playgroud)

是否nil具有空序列的特殊状态?

null clojure

4
推荐指数
2
解决办法
244
查看次数

标签 统计

c++ ×1

c++11 ×1

clojure ×1

move-semantics ×1

null ×1