Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Específico do C++
Especifica se um ponteiro para um membro de classe pode ser declarado antes de sua definição de classe associada. Usado para controlar o tamanho do ponteiro e o código necessário para interpretar o ponteiro.
Sintaxe
#pragma pointers_to_members( best_case )
#pragma pointers_to_members( full_generality,most-general-representation[ ])
Comentários
Você pode colocar um pointers_to_memberspragma no arquivo de origem como alternativa ao uso das opções do compilador /vmb ou /vmg e /vmm, /vms, /vmv das palavras-chave de herança específicas da Microsoft.
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 destes dois símbolos:
full_generality
Gerencia o código seguro, às vezes não ideal. Usefull_generalityse 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 argumentomost-general-representation. Equivalente a/vmg.best_case
Gera o código ideal usando a melhor representação de letras maiúsculas e minúsculas para todos os ponteiros dos membros. Exige que você defina a classe antes de declarar um ponteiro para um membro. O padrão ébest_case.
O argumento most-general-representation especifica a menor representação de ponteiro que o compilador deve usar para referenciar com segurança qualquer ponteiro para um membro de uma classe em uma unidade de tradução. O argumento pode ser um destes valores:
single_inheritance
A representação mais geral é um ponteiro de herança única para a função de membro. Equivalente a/vmg /vms. Causará um erro se o modelo de herança de uma definição de classe for múltiplo ou virtual.multiple_inheritance
A representação mais geral é um ponteiro de herança única para a função de membro. Equivalente a/vmg /vmm. Causará um erro se o modelo de herança de uma definição de classe for virtual.virtual_inheritance
A representação mais geral é um ponteiro de herança única para a função de membro. Equivalente a/vmg /vmv. Nunca causa um erro.virtual_inheritanceé o argumento padrão quando se usa#pragma pointers_to_members(full_generality).
Cuidado
Nós recomendamos que você coloque o pointers_to_memberspragma somente no arquivo de código-fonte que deseja afetar e somente depois de todas as diretivas #include. Essa prática reduz o risco de que pragma afetará outros arquivos e que você acidentalmente especifique várias definições para a mesma variável, função ou nome de classe.
Exemplo
// Specify single-inheritance only
#pragma pointers_to_members( full_generality, single_inheritance )
END Específico do C++