Qu'est-ce que Pococapsule statut actuel? Est-ce que cela évolue? A-t-il été fourché avec un autre produit? Qu'est-ce qui concerne toute l'idée de CIO pour C ++? Si pococapsule n'est pas évoluer, est-ce parce que le CIO était considéré comme non utile pour C ++, dangereux, D'autres motifs sont apparus ou autre chose? P>
Autant que je sache, il y a 2-3, peut-être encore de nombreux produits, que Mettre en œuvre CIO pour C ++, disponible et Pococapsule est le plus mature d'eux. P>
Je vois plusieurs inconvénients dans la version actuelle (comme je le vois, c'est 1.1 de Code Google): P>
Quelqu'un a-t-il des mêmes pensées? Quelqu'un travaille-t-il sur quelque chose de cette liste? Y a-t-il des obstacles à commencer à travailler, comme des brevets? P>
3 Réponses :
J'ai envoyé par courrier électronique Ke Jin (mainteneur) et sa réponse était que ce n'est pas en cours de développement actif actuel à partir du 14 juillet 2011. Il n'a pas donné de raison. P>
Je cherchais cela moi-même depuis un certain temps et je me suis rendu compte qu'il n'y a pas de bons conteneurs de COI en C ++. Il y a beaucoup de problèmes à mettre en œuvre cela. Obtenir quelque chose comme les conteneurs C # IOC (Castle Windsor, Unity, etc.) est hors de portée. Je suppose que si vous avez besoin de quelque chose comme ça, vous ne faites pas C ++. Et si vous faites C ++, vous lancez votre propre ou utilisez des usines singleton (peu de blague);) p>
Un raccourci facile consiste à utiliser qt's qml. Il a été construit pour l'UIS déclaratif mais peut être utilisé pour construire n'importe quel arbre QObject. P>
Un autre bon look sont des systèmes Corba pour C ++, ils peuvent avoir certaines des choses dont vous avez besoin. P>
Juste mes conseils pour d'autres endroits pour regarder ... P>
Je pense que vous pouvez utiliser avec succès le système QT MetaObject en réutilisant la bibliothèque Qtcore et le compilateur MOC dans votre application. P>
avec système MetaObject Vous pouvez créer des modules entièrement isolés en appelant toute méthode d'interface de module via QmetaObject :: invokemethod () . P>
et tout fonctionnera sans instance d'objet QcoreApplication! Définissez vos modules sous forme de sous-classes de QOBJECT, fournissez q_Object macro et marquez toutes les méthodes d'interface avec q_invokable (bien sûr, vous devez ajouter un compilateur MOC comme échéance de construction). P>