gpt4 book ai didi

d - 对于 D 结构是 opAssign 必要/有用的,如果是这样的话

转载 作者:行者123 更新时间:2023-12-01 01:13:33 29 4
gpt4 key购买 nike

在 TDPL 7.1.5.1 中讨论了将 Widget w2 分配给 w1 并且作者指出“将 w2 逐个字段分配给 w1 会将 w2.array 分配给 w1.array——一个简单的数组边界分配,而不实际复制数组内容。这需要修复,因为我们想要的是在源 Widget 中创建数组的副本并将该副本分配给目标 Widget。”据我所见,如果您编写了 postblit,那么默认 opAssign 会调用您的 postblit。然后似乎这在书中是不正确的,或者至少是可疑的建议。此外,如果您已经创建了 postblit,则似乎不需要创建 opAssign。这是对问题的正确评估吗?

假设少写代码是好的,那么为结构体实现 opAssign 的情况是什么?

最佳答案

首先想到的是将一些东西分配给一个不是结构类型的结构(比如 doubleAngle 结构)

此外,当每个结构需要唯一的外部资源(纯值语义)时,您可以使用 opAssign将内容直接复制到旧资源中,而不是在析构函数中丢弃,然后在 postblit 中重新分配

最后一种用法仅在资源的释放/分配比深层复制昂贵得多时才有用(TBH 我现在真的想不出一个)

关于d - 对于 D 结构是 opAssign 必要/有用的,如果是这样的话,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13587413/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com