Compartilhar via


pointers_to_members

Específico do C++

Especifica se um ponteiro para um membro da classe pode ser declarado antes de sua definição de classe associada e é usado para controlar o tamanho do ponteiro e o código necessários para interpretar o ponteiro.

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

Comentários

Você pode colocar um pragma pointers_to_members no arquivo de origem como uma alternativa ao uso das opções do compilador de /vmx ou as palavras-chave de herança.

O argumento pointer-declaration especifica se você declarou um ponteiro para um membro antes ou depois da definição de função associada. O argumento pointer-declaration é um dos dois símbolos a seguir:

Argumento

Comentários

full_generality

Gerencia o código seguro, às vezes não ideal. Use full_generality se qualquer ponteiro para um membro for declarado antes da definição da classe associada. Esse argumento sempre usa a representação do ponteiro especificada pelo argumento most-general-representation. Equivalente a /vmg.

best_case

Gera o código seguro, ideal usando a melhor representação de letras maiúsculas e minúsculas para todos os ponteiros dos membros. Requer a definição da classe antes de declarar um ponteiro para um membro da classe. O padrão é best_case.

O argumento most-general-representation especifica a menor representação de ponteiro que o compilador pode seguramente usar para referenciar qualquer ponteiro para um membro de uma classe em uma unidade de conversão. O argumento pode ser um destes:

Argumento

Comentários

single_inheritance

A representação mais geral é de herança única, ponteiro para uma função de membro. Causa um erro se o modelo de herança de uma definição de classe para a qual um ponteiro para um membro é declarado nunca for múltiplo ou virtual.

multiple_inheritance

A representação mais geral é de herança múltipla, ponteiro para uma função de membro. Causa um erro se o modelo de herança de uma definição de classe para a qual um ponteiro para um membro é declarado nunca for virtual.

virtual_inheritance

A representação mais geral é de herança virtual, ponteiro para uma função de membro. Nunca causa um erro. Esse argumento é o padrão quando #pragma pointers_to_members(full_generality) é usado.

Aviso

Nós recomendamos que você coloque o pragma pointers_to_members somente no arquivo de origem que deseja afetar e somente depois de todas políticas de #include.Essa prática diminui o risco de o pragma afetar outros arquivos e de você especificar acidentalmente várias definições para a mesma variável, função, ou nome da classe.

Exemplo

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

Consulte também

Referência

Diretivas Pragma e a palavra-chave __Pragma