Size: a a a

2020 September 08

CD

Constantine Drozdov in pro.cxx
Stanislav Ershov
мне кажется надо ковырять пропозалы для С++11 иначе мы тут погрязнем в очередном бессмысленном холиваре
вообще, идея очень нетривиальная, я не уверен, что мы её найдем
источник

A

Alex in pro.cxx
Stanislav Ershov
вот там прям такой же вопрос по поводу count_if и типа
и такой же сомнительный ответ про сферический длинный тип в вакууме
источник

CD

Constantine Drozdov in pro.cxx
Stanislav Ershov
мне кажется надо ковырять пропозалы для С++11 иначе мы тут погрязнем в очередном бессмысленном холиваре
между прочим, ложится очень клево
источник

CD

Constantine Drozdov in pro.cxx
std::advance будет принимать size_t для  std::input_iterator_tag
источник

CD

Constantine Drozdov in pro.cxx
@antoshkka тут есть забавное мнение, что надо убрать ограничение signed на iterator_­traits<X> :: difference_­type
потому что это на самом деле distance_type, и для input_iterator он беззнаковый (он становится знаковым только на bidirectional, и требование signed должно быть указано для bidirectional)
источник

N

Neargye in pro.cxx
Constantine Drozdov
@antoshkka тут есть забавное мнение, что надо убрать ограничение signed на iterator_­traits<X> :: difference_­type
потому что это на самом деле distance_type, и для input_iterator он беззнаковый (он становится знаковым только на bidirectional, и требование signed должно быть указано для bidirectional)
difference_­type  
Preconditions: there exists a value n of type difference_­type such that
a + n == b.
b == a + (b - a).
источник

N2

N 2 in pro.cxx
Какой аутяга позволил сделать в плюсах такую фигню constexpr int long static long signed const a = 0, и это комилится!!! И как это вообще распарсить ?
источник

SE

Stanislav Ershov in pro.cxx
Constantine Drozdov
@antoshkka тут есть забавное мнение, что надо убрать ограничение signed на iterator_­traits<X> :: difference_­type
потому что это на самом деле distance_type, и для input_iterator он беззнаковый (он становится знаковым только на bidirectional, и требование signed должно быть указано для bidirectional)
но его надо убрать для count_if только
источник

SE

Stanislav Ershov in pro.cxx
по вашему мнению
источник

SE

Stanislav Ershov in pro.cxx
иначе дистанс он сломает
источник

N

Neargye in pro.cxx
Neargye
difference_­type  
Preconditions: there exists a value n of type difference_­type such that
a + n == b.
b == a + (b - a).
b == a + (b - a) будет выполняться если он ансигнед?
источник

CD

Constantine Drozdov in pro.cxx
Stanislav Ershov
но его надо убрать для count_if только
везде. std::advance принимает беззнак. std::distance возвращает беззнак.
источник

OZ

Olzhas Zhumabek in pro.cxx
Stanislav Ershov
иначе дистанс он сломает
назад на нем идти нельзя, так что undefined behavior все равно вроде
источник

SE

Stanislav Ershov in pro.cxx
Constantine Drozdov
везде. std::advance принимает беззнак. std::distance возвращает беззнак.
и что делать когда ты делаешь distance(end, begin) ?
источник

CD

Constantine Drozdov in pro.cxx
Stanislav Ershov
и что делать когда ты делаешь distance(end, begin) ?
для input iterator это очевидно конец программы
источник

SE

Stanislav Ershov in pro.cxx
Constantine Drozdov
для input iterator это очевидно конец программы
схуяли
источник

SE

Stanislav Ershov in pro.cxx
это random_access
источник

CD

Constantine Drozdov in pro.cxx
Stanislav Ershov
схуяли
ну посмотри, как это сработает
источник

N

Neargye in pro.cxx
Stanislav Ershov
и что делать когда ты делаешь distance(end, begin) ?
описано вот так
The value may be negative if random-access iterators are used and first is reachable from last
источник

CD

Constantine Drozdov in pro.cxx
Stanislav Ershov
это random_access
для input_iterator он беззнаковый
для bidirectional_iterator он знаковый
источник