Size: a a a

2020 June 12

c

codingteam@cjr in codingteam
Minoru
@insert_reference_here: поправка: тело и «голова» считаются одним блоком
источник

c

codingteam@cjr in codingteam
Minoru
т.е. int x; for (char x; x != 'x'; x++) {} ок
источник

c

codingteam@cjr in codingteam
Minoru
но int x; for (char x; x != 'x'; x++) { float x; } не ок
источник

А⚙

Антон ⚙️ in codingteam
💮
Если обобщить, то когда самое частоиспользуемое значение (ноль) является граничным для переполнения — это норм повод для багов.
У меня есть решение, но, опять-таки, на расте
источник

💮

💮 in codingteam
Антон ⚙️
У меня есть решение, но, опять-таки, на расте
Какое?
источник

А⚙

Антон ⚙️ in codingteam
💮
Какое?
Первое:
for i in (2..size).map(|i| i - 1) {
    // ...
}

Второе:
let mut range = 1..size;
range.next_back();
for i in range {
   // ...
}
источник

А⚙

Антон ⚙️ in codingteam
Собственно, первый вариант применим и в C++, но там придётся новое имя для счётчика придумывать
источник

А⚙

Антон ⚙️ in codingteam
И ничто не мешает использовать i из заголовка, а перекрыть нельзя :(
источник

💮

💮 in codingteam
Антон ⚙️
Первое:
for i in (2..size).map(|i| i - 1) {
    // ...
}

Второе:
let mut range = 1..size;
range.next_back();
for i in range {
   // ...
}
А если, например, надо проверить что одна строка не длиннее другой не более чем на n символов?
источник

А⚙

Антон ⚙️ in codingteam
💮
А если, например, надо проверить что одна строка не длиннее другой не более чем на n символов?
Симметрично?
источник

💮

💮 in codingteam
Антон ⚙️
Симметрично?
Не обязательно.
источник

А⚙

Антон ⚙️ in codingteam
И да, что ты подразумеваешь под символами?
источник

c

codingteam@cjr in codingteam
Minoru
max(a.length(), b.length()) - min(a.length(), b.length())
источник

А⚙

Антон ⚙️ in codingteam
codingteam@cjr
Minoru
max(a.length(), b.length()) - min(a.length(), b.length())
О, норм
источник

💮

💮 in codingteam
Антон ⚙️
И да, что ты подразумеваешь под символами?
Байты, например.
источник

А⚙

Антон ⚙️ in codingteam
💮
Байты, например.
longer.len() <= shorter.len() + n
источник

💮

💮 in codingteam
Антон ⚙️
longer.len() <= shorter.len() + n
Ну написать-то можно аккуратно, только трабла в том что очевидный вариант будет работать только на не-граничных случаях.
источник

c

codingteam@cjr in codingteam
Minoru
@pink_snow: «очевидная корректность» это не про плюсы
источник

💮

💮 in codingteam
Т.е. если ты заранее чуешь подвох, ты напишешь надёжно, но менее очевидно. А если не чуешь, то будет баг.
for i in (2..size).map(|i| i - 1) { — к этому тоже оносится, это менее очевидно.
источник

А⚙

Антон ⚙️ in codingteam
💮
Т.е. если ты заранее чуешь подвох, ты напишешь надёжно, но менее очевидно. А если не чуешь, то будет баг.
for i in (2..size).map(|i| i - 1) { — к этому тоже оносится, это менее очевидно.
Я выше показал, как выбрать из массива кусок без концевых элементов
источник