Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
específicos do C++
Especifica se um ponteiro para um membro da 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 em seu arquivo de origem como uma alternativa ao uso das opções /vmb ou /vmg e /vmm, /vms, /vmv compilador ou as palavras-chave de herança de 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
Gera código seguro, às vezes não ideal. Usefull_generalityse qualquer ponteiro para um membro for declarado antes da definição de classe associada. Esse argumento sempre usa a representação de ponteiro especificada pelo argumentomost-general-representation. Equivalente a/vmg.best_case
Gera código ideal usando a representação de melhor caso para todos os ponteiros para membros. Requer 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 fazer referência segura a qualquer ponteiro a 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 é o ponteiro de herança única para a função de membro. Equivalente a/vmg /vms. Causa 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 é o ponteiro de herança múltipla para a função de membro. Equivalente a/vmg /vmm. Causa um erro se o modelo de herança de uma definição de classe for virtual.virtual_inheritance
A representação mais geral é o ponteiro de herança virtual para a função de membro. Equivalente a/vmg /vmv. Nunca causa um erro.virtual_inheritanceé o argumento padrão quando#pragma pointers_to_members(full_generality)é usado.
Atenção
Aconselhamo-lo a colocar o pointers_to_memberspragma apenas no ficheiro de código fonte que pretende afetar, e apenas após quaisquer diretivas #include. Essa prática reduz o risco de que o pragma afete outros arquivos e que você especifique acidentalmente 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 )
específicos do END C++