http://codepad.org/etWqYnn3Reflexion Perfect Forwarding et le motif des visiteurs
Je travaille sur une certaine forme d'un système de réflexion pour C++, malgré les nombreux qui ont mis en garde contre. Ce que je cherche à avoir est un ensemble d'interfaces IScope, IType, IMember, IMonikerClient et une classe wrapper qui contient le CReflexion ci-dessus. Ignorant tout sauf le membre qui est la partie importante ici est ce que je voudrais faire:
1) Instance l'emballage
2) Déterminer quel type doit être utilisé
3) type d'instance
4) Surcharger le() et [] pour accéder au contenu de membre externe (l'emballage) dans le code aussi facilement qu'il se fait lors de l'utilisation d'un std :: vecteur
Je trouve que l'utilisation 0x je peux transmettre un appel de méthode avec n'importe quel type pour un paramètre. Je ne peux que la fonte ne cependant dynamiquement jetai prend pas une variable (à moins qu'il existe des moyens que je ne connais!)
I lié l'idée approximative ci-dessus. J'utilise actuellement une instruction switch pour gérer les différentes interfaces. Je voudrais, et pour des raisons évidentes, aimer l'effondrer. Les erreurs de correspondance de type dans les cas de commutation sont la cause de l'appel aux méthodes de compilation dans chaque cas où un seul des trois travaux pour une condition et des erreurs de compilateur sont lancés.
Quelqu'un pourrait-il suggérer quoi que ce soit pour moi ici? C'est en dehors de coller à VARIANT:/
Merci!
1. C'est "réflexion" pas "réflexion". 2. Vous auriez besoin d'annoter chaque méthode/portée/classe etc manuellement pour obtenir quelque chose comme la réflexion. Vous rencontrez des problèmes simplement parce que C++ n'expose pas le type d'information que vous recherchez. 3.Vous ne pouvez pas imaginer un meilleur nom pour vos structures que "A" "B" ou "C"? –