2010-01-23 8 views

Répondre

15

Vous ne pouvez pas résoudre ceci par des caractères de type parce que vous auriez à définir si pour chaque nom possible.

Here sont les solutions communes listées, qui ont cependant un problème: de nombreuses implémentations STL mettent du code commun dans les classes de base et cette méthode ne vérifie pas les noms hérités. Si vous devez également vérifier les membres hérités, voir here. La réponse fournit une solution qui vérifie si la classe en question a un membre de ce nom et peut également vérifier le nombre de constantes et d'arguments. Il échoue cependant à vérifier la signature complète, y compris les arguments et les types de retour et la visibilité des membres ne fait pas de différence. Vous devriez être capable de résoudre ce partiellement en utilisant le lien is_call_possible<> (pas encore eu le temps de le regarder).

+4

Chaque fois que je vois que le fil 'is_call_possible', un peu de moi a peur. – GManNickG

+0

mon russe porte ses fruits, merci – Anycorn

+0

@GMan: Je vais devoir prendre le coeur et attaquer le mois prochain;) –