Bonjour à tous
ce bout de code compile, et marche sans problème, mais intellisense considère qu'il y a une error sur la ligne d'appel de "exec", ligne 8 et 10
même si ça compile et si ça s'execute bien, VS2019 voit ça comme un bug (souligné rouge), quelqu'un sait comment faire pour que ce ne soit plus le cas ? j'ai essayé en incluant #include <typeinfo>, en changeant class en typename, en renseignant les exemples d'argument de modèle pour intellisense... c'est plus précisément une E0304, dans la liste d'erreur elle est associé a intellisence.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 template<class... Args> void exec(std::function<void(Args...)>lambda, Args... args) { lambda(std::forward<Args>(args)...); } void exec_test() { exec<const std::string&>([](const std::string& s) { //error C++ aucune instance de modèle de fonction ne correspond à la liste d'arguments les types d'arguments sont*: (lambda []void (const std::string &s)->void, const char [6]) std::cout << "hello " << s << "!\n"; }, "world"); exec<int>([](int i) {std::cout << "The Answer: " << i << "!\n"; }, 42); //same error }
PI je passe des lambda en paramètre de certaine fonction pour stocker des demandes sous forme de commande, que je peux executer en différé ou avec des déclencheurs
Partager