【发布时间】:2012-11-03 13:17:04
【问题描述】:
我正在学习 Objective-C。我有这样一个“学术”问题,是针对对现代 C++ (C++11) 有深入了解的 Objective-C 专家提出的。
在 C++11 中,我经常使用移动语义(使用对临时对象的引用可以避免不必要的复制):
What are move semantics?
http://www.cprogramming.com/c++11/rvalue-references-and-move-semantics-in-c++11.html
这些链接适用于不熟悉移动语义概念的 Objective-C 编码人员,我很感兴趣 Objective-C 是否有类似的东西,或者可能有一些方法来实现/模拟这个?
【问题讨论】:
-
我不明白“对象语义”与“值语义”是什么。这是你编的吗?如果是这样,请更清楚地说明您的目标。
-
@KerrekSB:提问者没有编造出来,但我认为他所说的“对象语义”是指我称之为“实体语义”的东西。简而言之,具有实体语义的类型具有 object identity 的概念,这对该类型的用户有用/有意义/无论什么,而具有值语义的类型您只希望通过值与 @ 进行比较987654324@。显然,差异可能会变得模糊,这是一个设计目标,而不是类型的严格属性。在 C++ 中,它通常伴随着可复制类型与不可复制类型之间的区别:实体不是常规复制的。
-
重新标记您的问题。我相信这是 Objective-C 问题,而不是 C++ 问题,C++ 可能是次要标签,并且 [equivalent] 具有误导性。询问 Objective-C 专家,假设他们对 C++11 知之甚少,因此更详细地解释您希望在 Objective-C 中实现的目标。我对 Objective-C 几乎一无所知 - 但也许这有帮助:stackoverflow.com/questions/2002174/copy-mutablecopy
-
@Alexander 如果您描述这些 C++11 特性的方式对于非 C++ 专家来说会有些不明确 - 那么 Objective-C 专家将能够提供帮助。届时您将拥有更广泛的受众,更多的成功机会。最好的办法是描述你想在 Objective-C 中做什么 - 尽可能少地提及 C++...
标签: c++ objective-c c++11 copy-constructor move-semantics