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 № 1Atributos (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.