59

<=>C++20 には新しい比較演算子があります。ただし、ほとんどの場合、単純な減算がうまく機能すると思います。

int my_strcmp(const char *a, const char *b) {
    while (*a == *b && *a != 0 && *b != 0) {
        a++, b++;
    }
    // Version 1
    return *a - *b;
    // Version 2
    return *a <=> *b;
    // Version 3
    return ((*a > *b) - (*a < *b));
}

それらは同じ効果があります。違いがよくわかりません。

4

3 に答える 3