• # Niveau expert à définir

    Posté par (site web personnel) . En réponse au journal S'acheter son logement avec le salaire d'un expert C++ (ou autre techno). Évalué à 5.

    Pour le C++ en 10 minutes tu as mis un livre sur le SQL. Il faut que je vérifie mais il me semble que ce n'est pas tout à fait pareil :)

    Je ne connaissais pas Learn C++ in {n} minutes mais en parcourant un peu au hasard je trouve des trucs surprenants :

    // Containers with object keys of non-primitive values (custom classes) require
    // compare function in the object itself or as a function pointer.
    // [...]
    struct compareFunction {
     bool operator()(const Foo& a, const Foo& b) const {
     return a.j < b.j;
     }
    };
    // this isn't allowed (although it can vary depending on compiler)
    // std::map<Foo, int> fooMap;
    std::map<Foo, int, compareFunction> fooMap;
    

    Le comparator de std::map n'est pas restreint aux pointeurs sur fonctions. N'importe quel type pour lequel bool operator()(T, T) est défini convient.

    // Beware of possible circular references!!!
    // There will be always a reference, so it will be never destroyed!
    std::shared_ptr<Dog> doggo_one(new Dog());
    std::shared_ptr<Dog> doggo_two(new Dog());
    doggo_one = doggo_two; // p1 references p2
    doggo_two = doggo_one; // p2 references p1
    

    Il n'y a pas de références circulaires ici. Le premier Dog est détruit lors de la première affectation. La seconde affectation est alors équivalente à doggo_two = doggo_two. Le deuxième Dog a deux pointeurs vers lui et il est détruit quand doggo_one et doggo_two sortent du scope.

    Je suis un peu déçu par ce site :/

    Et sinon, qu'est-ce qu'un salaire d'expert pour toi ?