Работа в среде проектирования Rational Rose. Гусин А.Н - 29 стр.

UptoLike

подобно дополнительным пользовательским комментариям в конце
концов, просто игнорируются. Однако код, который содержит namespaces,
может все еще причинять проблемы, поскольку Rose, Visual C++ не может
различать тождественно названные классы, которые присутствуют в
отдельном namespaces. Это свойство перепроектирует или модифицирует
первый, с которым сталкивается.
Rose Visual C++ не использует полный C ++ синтаксический
анализатор, чтобы анализировать и извлекать семантику от кода. Вместо
этого, Rose использует многие из тех же самых интерфейсов, которые
использует Visual C ++ ClassView. В настоящее время, C ++ директивы
препроцессора полностью не поддержаны. Таким образом, условные
инструкции трансляции и #defines игнорируются. Условно исключенный
код, который иначе игнорировался бы транслятором, будет казаться
видимым для Rose Visual C++. Таким образом, следующее
макроопределение и использование:
#define CLASSDECL(X, Y) \
class X : public Y \
{ \
Y* parent; \
};
CLASSDECL(CFoo, CBase)
Появятся следующие предупреждения при генерации:
10:46:53 PM Warning: Unsupported declaration encountered:
CLASSDECL(CFoo, CBase)
(See line 32 in "D:\Projects\tests\unsupported\Unsupported.h".) This declaration
will be ignored.
Rose Visual C ++ - не способен развернуть CLASSDECL макрокоманду,
чтобы получить в основном имеющем силу C ++ декларацию и таким
образом интерпретирует инструкцию как недействительная декларация и
игнорирует это.
Члены данных Класса, объявленные с совокупными типами типа emus
и анонимного structs или союзов не поддержаны. Таким образом:
class CInvalid {
enum {Red, Green, Blue } color;
struct {int x; int y; } posn;
};
Результат следующих из этого предупреждений:
подобно дополнительным пользовательским комментариям – в конце
концов, просто игнорируются. Однако код, который содержит namespaces,
может все еще причинять проблемы, поскольку Rose, Visual C++ не может
различать тождественно названные классы, которые присутствуют в
отдельном namespaces. Это свойство перепроектирует или модифицирует
первый, с которым сталкивается.
      Rose Visual C++ не использует полный C ++ синтаксический
анализатор, чтобы анализировать и извлекать семантику от кода. Вместо
этого, Rose использует многие из тех же самых интерфейсов, которые
использует Visual C ++ ClassView. В настоящее время, C ++ директивы
препроцессора полностью не поддержаны. Таким образом, условные
инструкции трансляции и #defines игнорируются. Условно исключенный
код, который иначе игнорировался бы транслятором, будет казаться
видимым для Rose Visual C++. Таким образом, следующее
макроопределение и использование:

#define CLASSDECL(X, Y) \
class X : public Y \
{                  \
      Y* parent;   \
};

CLASSDECL(CFoo, CBase)

Появятся следующие предупреждения при генерации:

10:46:53 PM Warning: Unsupported declaration encountered:
CLASSDECL(CFoo, CBase)
(See line 32 in "D:\Projects\tests\unsupported\Unsupported.h".) This declaration
will be ignored.

     Rose Visual C ++ - не способен развернуть CLASSDECL макрокоманду,
чтобы получить в основном имеющем силу C ++ декларацию и таким
образом интерпретирует инструкцию как недействительная декларация и
игнорирует это.
     Члены данных Класса, объявленные с совокупными типами типа emus
и анонимного structs или союзов не поддержаны. Таким образом:


      class CInvalid {
       enum {Red, Green, Blue } color;
       struct {int x; int y; } posn;
      };

Результат следующих из этого предупреждений: