/ / usando atributos C ++ 11 - c ++, c ++ 11, atributos

Usando atributos C ++ 11 - c ++, c ++ 11, atributos

Você poderia por favor explicar como obter informaçõesde atributos em C ++? Por exemplo, eu quero escrever C ++ para ligação de python. Para isso, preciso anotar todos os métodos em classe com algumas informações de ligação específicas. Agora preciso gerar algum código por atributos. Ou outro exemplo, mapear a classe para a entidade db. Ou C + + 11 atributos não é o mesmo que em anotações Java ou C #?

Respostas:

18 para resposta № 1

Atributos (a novo recurso do C ++ 11) são apenas uma sintaxe padronizada para o compiladorextensões. Para fazer o que você quer, você precisa de um compilador com as extensões adequadas. Até agora, eu não acho que qualquer compilador implemente a sintaxe de atributos, muito menos quaisquer atributos específicos para ligações do Python.

Porque eles são destinados a extensões de compilador,não há nenhuma maneira padrão de criar seus próprios atributos, como você pode com anotações Java ou atributos C #. Naturalmente, um compilador poderia fornecer essa capacidade como uma extensão ...;)


3 para resposta № 2

Uma atualização com algumas informações mais recentes:

O GCC agora (a partir de 4.8) implementa os atributos do C ++ 11 como uma sintaxe alternativa para __attribute__((XXX)).

Você também pode usar o mecanismo de plug-in do GCC para definir novos atributos - consulte https://gcc.gnu.org/onlinedocs/gccint/Plugins.html.

Você também pode fazer isso em python usando o gcc-python-plugin - veja https://gcc-python-plugin.readthedocs.org/en/latest/attributes.html.