ФлеймФорумПрограммирование

Насыпьте сложных вопросов по C++ (4 стр)

Страницы: 13 4 5 610 Следующая »
#45
18:12, 20 мар 2024

Aroch
> for (int pos{}; const auto& value : chunk)
эт чё за синтаксис такой? это в 20 добавили? или в 17 тоже можно?

#46
18:13, 20 мар 2024

pahaa
> эт чё за синтаксис такой? это в 20 добавили? или в 17 тоже можно?
если ты про pos{} то это инициализации нулем, не помню уже в каком добавили я на 23 пересел и не хочу возвращаться :)

судя по https://en.cppreference.com/w/cpp/language/zero_initialization с 11 стандарта ещё.

#47
18:18, 20 мар 2024

pahaa
> чё вдруг-то?
> uint - uint -> uint
Переменная n объявлена как int

#48
18:18, 20 мар 2024

Aroch
> если ты про pos{} то это инициализации нулем
ты в 11 стандарте перед ренж фор не можешь точку с запятой поставить
даже в ифах её можно ставить только с 17

init-statement  -  (since C++20) either   
  an alias declaration (since C++23)

Оу май! Я прям хочу 23 )))
Его уже где-то реально используют?

#49
18:20, 20 мар 2024

Всё выражение vec.size() - 5 будет uint т.к. это наиболее близкий общий тип.
https://godbolt.org/z/d149Y9sGd
А каст беззнакового к знаковому с переполнением - это UB тащемта.

#50
18:20, 20 мар 2024

pahaa
> Его уже где-то реально используют?
в компиляторах многое уже реализовано, так что да, почему нет?

#51
18:22, 20 мар 2024

totoro
> А каст беззнакового к знаковому с переполнением - это UB тащемта.
Разве? Компилятор типа оптимизирует, предполагая что программа так не делает?

#52
18:24, 20 мар 2024

1 frag / 2 deaths
Можно присвоить без UB только если значение операнда справа находится в допустимых границах диапазона операнда слева, иначе UB.

#53
18:28, 20 мар 2024

totoro
> Можно присвоить без UB только если значение операнда справа находится в допустимых границах диапазона операнда слева, иначе UB.
неа, это IB

#54
18:30, 20 мар 2024

1 frag / 2 deaths
> Компилятор типа оптимизирует, предполагая что программа так не делает?
Судя по всему, на практике нигде не оптимизирует. Но по стандарту - UB.

#55
18:33, 20 мар 2024

UB если переполнение происходит в вычислениях. При конвертации это IB.

#56
18:34, 20 мар 2024

Sbtrn. Devil обработку хвоста забыл.

По идее должно быть что-то типа такого, не?

std::println("{}", vec
  | std::views::drop(2)
  | std::views::reverse
  | std::views::drop(5)
  | std::views::reverse
  | std::views::filter([](auto v){ return v&1; })
  | std::views::chunk(4)
);

Но в clang у меня не работает chunk, а gcc не умеет печатать vector
https://godbolt.org/z/ah6oTPohz

#57
18:37, 20 мар 2024

entryway
> | std::views::reverse
drop_last ждем :)

сколько всего еще предстоит добавить.
https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2214r2.html

#58
18:41, 20 мар 2024

Aroch
> еа, это IB
Раз ты за самые новые плюсы то ты должен знать это: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n2218.htm

#59
18:42, 20 мар 2024

pahaa
> Но по стандарту - UB.
А это где-то написано? Не про арифметику а именно про приведение

Страницы: 13 4 5 610 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.