pointers_to_members

특정 C++

클래스 멤버에 대 한 포인터 관련된 클래스 정의 전에 선언 될 수 있습니다 고 포인터 크기 및 포인터를 해석 하는 데 필요한 코드를 제어 하는 데 사용 됩니다 여부를 지정 합니다.

#pragma pointers_to_members( pointer-declaration, [most-general-representation] )

설명

배치할 수는 pointers_to_members pragma를 사용 하는 대신 소스 파일에는 /vmx 컴파일러 옵션 나는 키워드 상속.

포인터 선언 인수는 포인터 멤버에 연결 된 함수 정의 전후 선언한 여부를 지정 합니다.해당 포인터 선언 인수를 다음 두 심볼 중 하나입니다.

인수

설명

full_generality

안전 하 고 때로는 nonoptimal 코드를 생성합니다.사용 하면 full_generality 멤버에 대 한 포인터 관련된 클래스 정의 전에 선언 되는 경우.이 인수는 항상 지정 된 포인터 표현이 사용은 표현-대부분-일반 인수입니다./Vmg을 것과 같습니다.

best_case

최적 표현을 사용 하 여 모든 포인터 멤버에 대 한 안전, 최적 코드를 생성 합니다.클래스 멤버에 대 한 포인터를 선언 하기 전에 클래스를 정의 해야 합니다.기본값은 best_case.

표현-일반-대부분 인수 컴파일러 참조 번역 단위에서 클래스 멤버에 대 한 포인터를 안전 하 게 사용할 수 있는 가장 작은 포인터 표현을 지정 합니다.인수는 다음 중 하나일 수 있습니다.

인수

설명

single_inheritance

가장 일반적인 표시는 단일 상속, 멤버 함수에 대 한 포인터입니다.예전 어느 구성원에 대 한 포인터를 선언 하는 클래스 정의의 상속 모델이 있는 경우 오류가 발생 다중 또는 가상입니다.

multiple_inheritance

가장 일반적인 표시를 여러 상속, 멤버 함수에 대 한 포인터입니다.멤버에 대 한 포인터를 선언 하는 클래스 정의의 상속 모델이 가상 인 경우 오류가 발생 합니다.

virtual_inheritance

가장 일반적인 표시를 가상 상속을 하는 멤버 함수에 대 한 포인터입니다.오류가 발생 하지 않습니다.기본 인수입니다 때 # pragma pointers_to_members(full_generality) 사용 됩니다.

주의 정보주의

넣을 수 없으므로 권장의 pointers_to_members pragma에 영향을 주지를 소스 코드 파일에만 하 고 후 원하는 #include 지시문입니다.이 연습 pragma 다른 파일에 영향을 미칩니다 위험이 줄어들며 실수로 될 것 같은 변수, 함수 또는 클래스 이름에 대 한 여러 정의 지정 합니다.

예제

//   Specify single-inheritance only
#pragma pointers_to_members( full_generality, single_inheritance )

참고 항목

참조

Pragma 지시문과 __Pragma 키워드