Espelho

Uma biblioteca C ++ para ajudá-lo com seu desenvolvimento.
Baixe Agora

Espelho Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • Freeware / $0.00
  • Língua:
  • English
  • Nome do editor:
  • Imagine Interactive Systems
  • Tamanho do arquivo:
  • 350K

Espelho Tag


Espelho Descrição

Fornece metadados de tempo de compilação e tempo de execução que descrevem construções comuns C ++ O objetivo da biblioteca espelhada é fornecer aos meta-dados de tempo de compilação e tempo de execução que descrevem construções comuns C ++, como namespaces, tipos (e como importantes tipos especiais de caso typedef-ined), classes e suas classes base e variáveis de membros, construtores, etc. e fornecer interfaces uniformes e genéricas para sua introspecção. Porque padrão C ++ fornece apenas um conjunto muito limitado de meta-informação para construir em cima, a principal desvantagem desta biblioteca é que namespace, tipos, classes, etc. necessidade de ser registrado antes que eles possam ser refletida. No entanto, o espelho tenta tornar o processo de se registrar simples, fornecendo um conjunto de macros de registro de fácil utilização e tem os nativos e muitos dos outros tipos, classes, modelos e namespaces comuns. Além disso, várias ferramentas para registro automático / semi-automático estão sendo trabalhadas. Uma vez registrado os meta-dados podem ser reutilizados em um grande número de situações. O espelho é projetado com o princípio da estratificação em mente e tenta ser o mais menos intrusivo possível. As classes novas ou existentes não precisam ser projetadas para suportar diretamente o espelho e nenhum código relacionado ao espelho é necessário na definição da classe, tanto quanto algumas diretrizes gerais são seguidas. O espelho fornece uma camada de reflexão de tempo de compilação que pode ser usada em meta-programas de tempo de compilação e uma camada de tempo de execução com uma interface semelhante, mas dinâmica com base nos meta-dados de tempo de compilação. Recursos: * Reflexão estática e dinâmica das seguintes construções de linguagem de nível básico: o namespaces o Tipos o Typedefs o Classes o Modelos de Classe * Traversas baseadas em faixa estática e dinâmica de: o Membros do namespace, como namespaces, classes, typedefs, modelos, etc. O Herança de Classe, incluindo o especificador do tipo de herança, o especificador de acesso, o derivado e a classe base na herança o Variáveis de membro da classe fornecendo informações sobre o especificador de classe de armazenamento, especificador de acesso, escopo, tipo e nome da variável de membro o Todas as variáveis de membro da classe, incluindo aquelas herdadas de classes de base o funções do membro da classe estática / dinâmica] o Construtores o Operadores de conversão o Parâmetros de modelo o Parâmetros de função, incluindo o tipo e o nome do parâmetro * O utilitário gerador de fábrica * Outros utilitários de programação de tempo de compilação * Nomeie as funções do Getter para todas as construções de idioma nomeadas como namespaces, tipos (incluindo tipos derivados como ponteiros, referências, matrizes, funções, tipos qualificados com CV e suas combinações), TypeDefs, variáveis de membro, etc. o Nomes de base sem os especificadores nested do nome o Nomes completos com os especificadores nested do nome o Nomes locais de construções nomeadas aninhadas que podem ter partes do especificador completo do nome aninhado removido com base no uso da diretiva do espelho usando o escopo global ou os escopos locais * Funções genéricas para obter e definir o valor de uma variável de membro da classe quando dada uma referência à classe à qual a variável de membro pertence. * Reflexão, categorização e despacho de etiquetagem do meta-objeto. Tipos de tag para diferentes meta-objetos podem ser usados em sobrecarga de função de tempo de compilação ou especialização de modelo de despacho e enumerações de tag de meta-objeto em ramificação de tempo de execução com base no tipo de meta-objeto. * Utilitários de nível superior com base nos meta-dados básicos: o Geradores de fábrica que permitem criar facilmente classes de fábricas especializáveis e especializadas que coletam os valores de parâmetros necessários, selecione e ligue para o construtor apropriado de uma maneira específica do usuário (de uma GUI, de um conjunto de dados RDB, de um arquivo XML, etc.) para Crie instâncias de um tipo especificado. * Anotação de meta-objetos com tipos de tags. Vários objetos MEA (atualmente apenas tipos) podem ser marcados por tipos de tags pré-definidos ou específicos de aplicativos que podem ser usados em meta-programas para o acionamento de processamento especializado. Características planejadas * Utilitários de nível superior com base nos meta-dados básicos: o Inspetores de objetos semelhantes ao utilitário de geradores de fábrica, que permitiria construir classes para inspeção da estrutura (e valores quando aplicável) de uma classe, tipo, namespace, variável de membro etc. de uma maneira definida pelo usuário (em uma GUI para exemplo). o Gerador de fábrica abstrata, permitindo criar instâncias de diferentes classes derivadas com uma classe base comum. O travessias de namespaces, classes, etc para (de) operações semelhantes a serialização. o Acesso a dados semânticos que descrevem as construções individuais de linguagem conceitualmente. Isso permitiria, por exemplo, escrever agentes capazes de usar objetos de outros aplicativos sem acesso a suas fontes que definem essas classes. * Automático (ou semi-automático) registrando, usando várias ferramentas comuns e toolchains como (doxygen, gcc2xml, openc ++, xslt, etc.) ou analisadores portáteis especializados e transformadores para gerar o código-fonte necessário para registrar as construções de nível básico com espelho . o pode ser totalmente automático em alguns casos o Pode usar anotações incorporadas em comentários (como doxygen faz)


Espelho Software Relacionado