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

Сообщение Re[6]: Комплексные числа от 02.02.2022 19:31

Изменено 02.02.2022 22:25 vdimas

Re[6]: Комплексные числа
Здравствуйте, T4r4sB, Вы писали:

TB>Задание: напиши проверку (index >= 0 && index < size) для знакового типа так, чтоб оно скомпилировалось в один бранч


Здесь UB:
int32_t i = get_some_value();
int64_t n = i; // (int64_t)i; int64_t(i)



TB>Вот я хочу перебрать элементы с конца

TB>
TB>for (auto i = vec.size() - 1; i >=0; --i)
TB>

TB>Ну я вот записал цикл самым естественным образом. И подорвался на мине.

Чтобы не подорваться:
for (auto const& e : ranges::view::reverse(vec))



TB>А ещё я хочу перебрать все элементы, кроме последнего


ranges::subrange
https://en.cppreference.com/w/cpp/ranges/subrange

Для общих случаев используются встроенные адаптеры диапазонов:
https://en.cppreference.com/w/cpp/ranges#Range_adaptor_objects

или пишутся свои для "красоты" или удобства повторного их использования.
(обрати внимание на синтаксис адаптеров в примерах)


TB>Ой, что-то ерунда получается.


Есть такое, но это в прошлом же.

Сейчас хелперы навроде std::ssize(vec) служат для гладкого сопряжения с адаптерами из ranges:
https://en.cppreference.com/w/cpp/iterator/size
(для перехода в мир знаковых индексов)
Re[6]: Комплексные числа
Здравствуйте, T4r4sB, Вы писали:

TB>Задание: напиши проверку (index >= 0 && index < size) для знакового типа так, чтоб оно скомпилировалось в один бранч


Здесь UB:
int32_t i = get_some_value();
uint64_t n = i; // (uint64_t)i; uint64_t(i)



TB>Вот я хочу перебрать элементы с конца

TB>
TB>for (auto i = vec.size() - 1; i >=0; --i)
TB>

TB>Ну я вот записал цикл самым естественным образом. И подорвался на мине.

Чтобы не подорваться:
for (auto const& e : ranges::view::reverse(vec))



TB>А ещё я хочу перебрать все элементы, кроме последнего


ranges::subrange
https://en.cppreference.com/w/cpp/ranges/subrange

Для общих случаев используются встроенные адаптеры диапазонов:
https://en.cppreference.com/w/cpp/ranges#Range_adaptor_objects

или пишутся свои для "красоты" или удобства повторного их использования.
(обрати внимание на синтаксис адаптеров в примерах)


TB>Ой, что-то ерунда получается.


Есть такое, но это в прошлом же.

Сейчас хелперы навроде std::ssize(vec) служат для гладкого сопряжения с адаптерами из ranges:
https://en.cppreference.com/w/cpp/iterator/size
(для перехода в мир знаковых индексов)