Compartilhar via


pointers_to_members

Específico do C++

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

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

Comentários

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

O declaração de ponteiro argumento especifica se você tenha declarado um ponteiro para um membro antes ou após a definição da função associada.O declaração de ponteiro argumento é uma das duas seguintes símbolos:

Argumento

Comentários

full_generality

Gera código seguro, às vezes não ideal.Você pode usar full_generality se nenhum ponteiro para um membro for declarado antes da definição de classe associado.Esse argumento sempre usa a representação de ponteiro especificada pelo maioria-geral-representação argumento.Equivalente a /vmg.

best_case

Gera código seguro, ideal usando representação melhor hipótese para todos os ponteiros para os membros.Requer a definição da classe antes de declarar um ponteiro para um membro da classe.O padrão é best_case.

O maioria-geral-representação argumento especifica a representação de ponteiro menor que o compilador pode usar com segurança para fazer referência a qualquer ponteiro para um membro de uma classe em uma unidade de conversão.O argumento pode ser um destes procedimentos:

Argumento

Comentários

single_inheritance

A representação mais geral é herança simples, ponteiro para uma função de membro.Causa um erro se o modelo de herança de uma definição de classe para o qual está declarado como um ponteiro para um membro é sempre um dos vários ou virtual.

multiple_inheritance

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

virtual_inheritance

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

Observação de cuidadoCuidado

Aconselhamos você a colocar o pointers_to_members pragma somente o arquivo de código-fonte que você deseja afetar em somente após qualquer #include diretivas.Essa prática reduz o risco de que o pragma afetará outros arquivos e que você irá acidentalmente especificar 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 __Pragma palavra-chave