pointers_to_members
C++ 特定
指定对类成员的指针是否可以声明,在其关联的类定义和使用控件所需的指针大小和代码解释指针之前。
#pragma pointers_to_members( pointer-declaration, [most-general-representation] )
备注
在源文件中放置 pointers_to_members 说明或者为使用 /vmx 编译器选项或 继承关键字。
指针声明 参数指定是否声明指向成员的指针在关联的函数定义之前或之后。 指针声明 参数是以下两个符号之一:
参数 |
注释 |
---|---|
full_generality |
生成安全,有时 nonoptimal 代码。 ,如果对成员的任何指针在关联的类定义之前,声明使用 full_generality 。 此参数始终使用 最通用表示 参数指定的指针表示。 对 /vmg 的等效项。 |
best_case |
生成安全,最佳的代码使用任何指针的最佳的表示该成员。 定义类的 Requires 在将指针声明之前对类的成员。 默认值为 best_case。 |
最通用表示 参数指定编译器可以安全地使用所有引用指向类的成员在翻译单元的最小指针表示。 参数可以是下列值之一:
参数 |
注释 |
---|---|
single_inheritance |
最常见的表示为单继承,指向成员函数的指针。 会导致错误,如果指向成员的指针声明类定义的继承模型是多或虚拟的。 |
multiple_inheritance |
最常见的指示是多重继承,指向成员函数的指针。 会导致错误,如果指向成员的指针声明类定义的继承模型是虚拟的。 |
virtual_inheritance |
最常见的表示虚拟继承,指向成员函数的指针。 不会产生一个错误。 ,当使用时,这是默认参数 #pragma pointers_to_members (full_generality) 。 |
警告
我们建议您仅将 pointers_to_members 说明在要影响的源代码文件和所有 #include 指令之后。此做法降低风险说明将影响其他文件,例如,并且对相同变量、函数或类名将意外地指定多个定义。
示例
// Specify single-inheritance only
#pragma pointers_to_members( full_generality, single_inheritance )