7.9.1.17.GEL 表达式中的 C++ 支持

GEL 表达式语法中添加了以下 C++ 增强功能。

访问数据成员

.”和“->”运算符(直接和间接成员选择)已扩展为可访问类的数据成员。无论 C++ 访问类型如何(公共、受保护或专有),均可访问所有数据成员。还提供基类的数据成员(除非被同名衍生类的成员所遮蔽)。被 C++ 编译器视为模糊的成员名称将由 Code Composer Studio 解析为可能的匹配项之一。

限定标识符

变量标识符可能是完全限定或部分限定的。可以使用 :: 范围运算符来访问全局或类静态函数或变量(例如 std::mallocMyClass::static_var)。当前范围由程序计数器 (PC) 确定,内部范围优先于外部范围。

例如,如果函数中当前有 PC:

N1::C1::C2::f(int)

并且此时计算标识符 C1::b,则该标识符将匹配以下任一完全限定标识符(按照优先级顺序)

N1::C1::C2::C1::b N1::C1::C2::b N1::C1::b C1::b

嵌套类型必须通过其完全限定名称进行引用。

“this”指针

当 PC 处于某个成员函数中时,指向关联对象的 this 指针可用。

对类成员的隐式访问

当 PC 处于某个成员函数中时,可以直接访问类(或基类)的任何数据成员,而无需显式通过 this 间接访问。例如,m_x 将解析为 this->m_x(假设没有局部变量对其进行覆盖)。

转换对象指针

C/C++ 指针转换操作 (Type \*) value 可用于导航类层次结构,必要时对指针进行调整。与 C++ 编译器类似,在可能的情况下会执行 static_cast,否则执行 reinterpret_cast。即使存在多重继承,(Derived \*) base(Base \*) derived 也能正确执行。

___

另请参阅:

GEL 函数:按字母顺序排列的列表