• [^] # Re: Je tiendrai jusqu'à demain

    Posté par (site web personnel) . En réponse au journal Mono pour Android en version 1.0. Évalué à 1.

    Oui, et ensuite ? Merci, t'as mis en avant tout ce qu'apporte le brevet.

    il te faut écrire :

    c.Print(boost::bind(&Exemple::add, this, _1, _2));
    

    là où moi j'écris simplement :

    c.Print(add).
    

    Différences :

    • tu passes un pointeur de fonction en paramètre : un pointeur foireux et tu exploses méthode print.

    • tu es obligé de passer des trucs sans intérêts que le compilateur C# déduit automatiquement : l'objet cible (this dans ton exemple) et les paramètres (on s'en cogne s'est l'appelé qui les remplis.

    • t'as variante inline est beaucoup trop récente pour servir de prior-art ;)

    • en l'occurence boost::bind n'apporte rien par rapport au simple typedef en C pour déclarer une signature de méthode : même inconvénients, une syntaxe toujours aussi lourde pour l'appelant et toujours aussi peut type-safe.