Как моделировать некопируемые в Rational Rhapsody 8.0.1

Я хочу сделать класс в моей модели Rhapsody не копируемым, но

  • нет библиотеки буста (из которой я бы просто получил)
  • и при этом я не могу использовать способ C ++ 11 для отключения сгенерированного по умолчанию ctor копии и op назначения копирования (потому что мне нужно будет манипулировать сигнатурой функции, что AFAIK не представляется возможным напрямую)

=> так что я делаю это по-старому увлечённо.

Что мне нужно от Rhapsody:

В этом контексте я хочу сгенерировать только декларацию для копирования ctor и копирования copy op — мне не нужна реализация.
Это вообще возможно?

Вещи, которые я рассмотрел:

  • Я не нашел никакой полезной собственности еще.
  • Отображение только спецификации функции-члена в файловый объект не помешает Rhapsody генерировать пустое тело функции в неявно созданный файловый объект (который мне не нужен и не нужен).

0

Решение

Я бы предложил стереотипный подход:

  1. Создать NonCopyable Базовый класс, как, например, описано @Dennis.
  2. Создайте стереотип, например, назовите его <<non-copyable>>,

    а) установить свойство стереотипа CPP_CG::Class::AdditionalBaseClasses в NonCopyable (имя базового класса, созданного выше).

    б) Сделать стереотип применимым к занятиям.

  3. Наконец, добавьте <<non-copyable>> стереотип ко всем классам, которые не подлежат копированию.

2

Другие решения

Напишите частную копию ctor и opertor:

class NonCopy {
// These private versions of the copy constructor
// and operator will signal to the compiler to
// prevent automatic generation.
NonCopy(const NonCopy& other);
const NonCopy& operator=(const NonCopy& other);
public:
// Your public ctors
NonCopy(int a);
}

Вы можете посмотреть на расширенная версия не копируемого интерфейса для более полного примера.

0

По вопросам рекламы [email protected]