Considering Maintainability

    They do not provide any additional meaning while reading the code. You can either create a separate function that has a more meaningful name, or pass an enumeration that makes the meaning more clear.

    Know and understand the existing C++ standard algorithms and put them to use. See for more details.

    1. // Bad Idea
    2. // Better Idea
    3. assert(success);

    So while the second version is uglier, the first version is simply not correct.