• # C'est vrai que c'est plus verbeux en c++

    Posté par . En réponse au journal Sortie de GHC 8.0.2 et une petite histoire de typage statique. Évalué à 3.

    J'ai essayé d'implémenter le dernier exemple en c++, c'est plus verbeux, notamment à cause du fait qu'il faut commencer par créer les classes qui servent de tags.

    #include <iostream>
    using namespace std;
    struct Fixed { const int _n; };
    struct Max {};
    struct NoMultithread {};
    class Test {
    public:
     Test(Fixed f) : _nb_thread{f._n} {}
     Test(Max) : _nb_thread{255} {}
     Test(NoMultithread) : _nb_thread{1} {}
     friend ostream& operator<<(ostream& os, const Test& t) {
     return os << t._nb_thread;
     }
    private:
     int _nb_thread; // number of thread between 1 to 255
    };
    int main()
    {
     Test t1 = Fixed{10};
     Test t2 = Max{};
     Test t3 = NoMultithread{};
     Test t4 = Fixed{-10};
     // les exemples suivant ne compilent pas
     // Test t5 = Test(5);
     // Test t6 = Test{6};
     // Test t7{7};
     cout << t1 << endl;
     cout << t2 << endl;
     cout << t3 << endl;
     cout << t4 << endl;
     return 0;
    }

    bépo powered