Информация об изменениях

Сообщение Re[4]: ranges ? от 21.02.2020 9:55

Изменено 21.02.2020 10:07 rg45

Re[4]: ranges ?
Здравствуйте, andyp, Вы писали:

A>Порадовало, что это компилятор до return 1 смог оптимизировать.


Вот так почестнее будет:

https://godbolt.org/z/irQRU9

int main() {
    int x {};
    std::cin >> x;
    if( ranges::contains(std::array{1,2,3,4,5,6}, x) ) {
        return 0;
    }
    return 1;
}

Re[4]: ranges ?
Здравствуйте, andyp, Вы писали:

A>Порадовало, что это компилятор до return 1 смог оптимизировать.


Вот так почестнее будет:

https://godbolt.org/z/irQRU9

int main() {
    int x {};
    std::cin >> x;
    if( ranges::contains(std::array{1,2,3,4,5,6}, x) ) {
        return 0;
    }
    return 1;
}



P.S. Ну и для сравнения:

https://godbolt.org/z/2nTHxD

template <typename T, typename...U>
bool in_list(T&& t, U&&...u) {
    return ((t == u) || ...);
}

int main() {
    int x {};
    std::cin >> x;
    if( in_list(x,1,2,3,4,5,6) ) {
        return 0;
    }
    return 1;
}