使用 IBM Rhapsody 的 C++ 移动构造函数

C++ move constructor with IBM Rhapsody

我是 运行 IBM Rhapsody 8.1.5 并将代码库迁移到现代 C++。

我现在面临的问题是,如果已经定义了复制构造函数,我将无法定义移动构造函数,因为 Rhapsody 会简单地忽略左值和右值引用,并认为两个构造函数相同。

由于我在创建时连移动构造函数都不能选择,所以我尝试手动添加&&。这也有效,但 Rhapsody 不允许我保存,因为它认为操作是重复的。

有人知道如何在 Rhapsody 中实现这一点吗?这甚至有可能吗,也许至少在更新的版本中?如果有更多帮助,我很乐意提供更多信息。

恕我直言,这是产品中的一个错误。 这些解决方法存在于 8.4 版中:

  • 首先创建一个参数类型为 int(或不同于 A 的任何其他类型)的 class A 的构造函数,然后转到 Features...Arguments 并将参数类型更改为 A 并将代码模式更改为 $type&&
  • 使用C++ 声明 A&& 而不是现有类型 作为参数