使用 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&& 而不是现有类型 作为参数
我是 运行 IBM Rhapsody 8.1.5 并将代码库迁移到现代 C++。
我现在面临的问题是,如果已经定义了复制构造函数,我将无法定义移动构造函数,因为 Rhapsody 会简单地忽略左值和右值引用,并认为两个构造函数相同。
由于我在创建时连移动构造函数都不能选择,所以我尝试手动添加&&。这也有效,但 Rhapsody 不允许我保存,因为它认为操作是重复的。
有人知道如何在 Rhapsody 中实现这一点吗?这甚至有可能吗,也许至少在更新的版本中?如果有更多帮助,我很乐意提供更多信息。
恕我直言,这是产品中的一个错误。 这些解决方法存在于 8.4 版中:
- 首先创建一个参数类型为 int(或不同于 A 的任何其他类型)的 class A 的构造函数,然后转到 Features... → Arguments 并将参数类型更改为 A 并将代码模式更改为 $type&&
- 使用C++ 声明 A&& 而不是现有类型 作为参数