【发布时间】:2011-10-16 15:11:27
【问题描述】:
前段时间我已经问过a similar question,但有些细节我还不清楚。
什么情况下调用postblit构造函数?
移动对象的语义是什么?它会被后期处理和/或破坏吗?
如果我按值返回局部变量会发生什么?会隐式移动吗?
如何将表达式转换为右值?例如,通用交换会是什么样子?
【问题讨论】:
-
通用交换:
void swap(T)(ref T t1,ref T t2){T tmp=t1;t1=t2;t2=tmp;} -
@ratched:你在那里有三个复制操作。我想要移动操作。
-
那么你需要转换为字节数组检查github.com/D-Programming-Language/phobos/blob/master/std/… 的火卫一实现
-
@ratchet 怪胎:您可以像在通常的帖子中一样在 cmets 中使用 markdown 链接,即
[string](url)。详情here -
@AlexanderMalakhov 自从我在 7 月 发布后我就明白了
标签: templates return-value d copy-constructor move-semantics