Tenir compte de ces fonctions surchargées,Modèle C++: Sélection de fonctions surchargées en utilisant la conversion implicite en type instancié par template!
void fun(Int2Type<1>) {}
void fun(Int2Type<2>) {}
void fun(Int2Type<3>) {}
void fun(Int2Type<4>) {}
Je veux appeler ces de cette façon,
fun(1); // this should call first function
fun(4); // this should call fourth function
Est-il possible de le faire? Si oui, alors pouvons-nous faire la même chose avec une valeur d'exécution, dire, (s'il vous plaît noter que dans les appels ci-dessus, l'argument est connu à la compilation)
fun(value); // value can be decided at runtime!
Ou tout alternative si ce n'est pas possible? Le but est, la fonction différente devrait être appelée basée sur la valeur intégrale différente!
EDIT
Soit dit en passant, je ne peux pas utiliser une des opérations suivantes:
- En utilisant
switch(value)
- utilisant certains
SomeFuncTable funTable[] = {fun(Int2Type<1>(), fun(Int2Type<2>()}
etc
Je doute sincèrement que ce soit possible, mais j'aimerais connaître la réponse si elle existe effectivement. – acron
Pourquoi pas? – Puppy
Vous n'avez pas mentionné que Int2Type vient de Loki. –