IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Visual C++ Discussion :

bug intellisense VS 2019 ? (variadic template)


Sujet :

Visual C++

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 113
    Points : 99
    Points
    99
    Par défaut bug intellisense VS 2019 ? (variadic template)
    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
    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
    }
    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.

    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

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 113
    Points : 99
    Points
    99
    Par défaut
    J'ai simplifié en déplaçant std::function plus loin dans la bibliothèque, plus de pb !!!
    c'est surement un souci avec std:function...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    template<typename F, typename ... Args>
    void exec(F lambda, const Args& ...args)
    {
    	lambda(args...);
    }
    exec([](std::string first, std::string last, int i, float r) { //compile et run ok, sans erreur E0304
    	std::cout << "Hello " << first << ' ' << last << " n:" << i << "->" << r << " !\n"; },
    		"Harry", "Potter", 42, 3.14f);

  3. #3
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 195
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 195
    Points : 17 162
    Points
    17 162
    Par défaut
    Tu peux quand même laisser le std::forward<Args...>, et éventuellement ajouter un static_assert(std::is_invocable_v(F, Args...));.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2019] Un étrange bug . . .
    Par SQLpro dans le forum Développement
    Réponses: 6
    Dernier message: 14/09/2020, 10h56
  2. [AC-2019] Bug suite à une Mise à jour Office 2019 - 64 bits
    Par jmareal dans le forum Access
    Réponses: 4
    Dernier message: 26/02/2020, 10h01
  3. [XL-2010] Bug Fonction Datepart Semaine 53-2019
    Par MFM31 dans le forum Excel
    Réponses: 13
    Dernier message: 31/03/2019, 19h15
  4. bug lnk 2019
    Par stanrousseau dans le forum Débuter
    Réponses: 3
    Dernier message: 21/06/2013, 01h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo