• [^] # Re: Comportement attendu

    Posté par . En réponse au journal Compilateur trop intelligent. Évalué à 4.

    Do étant une variable globale, elle est déjà (implicitement) initialisée à zéro. Testez

    static Function Do = nullptr;

    Vous verrez que le comportement est le même.

    D'après moi, il faudrait:
    - Soit indiquer dans son type que ce pointeur ne dois jamais être null, ce qui forcerait l'utilisateur à donner une valeur par défaut. Mais ce n'est pas possible en C++..
    - Soit utiliser un type optionnel (du genre std::optional) qui force l'utilisateur à traiter le cas où le pointeur est vide explicitement

    Sinon, il faudrait déconseiller l'utilisation de pointeurs de fonction en C++. Au lieu de ça, on peut utiliser std::function.