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 )