Сообщение Re[29]: Carbon от 22.04.2024 10:03
Изменено 22.04.2024 10:50 vdimas
Re[29]: Carbon
Здравствуйте, Sinclair, Вы писали:
V>>Здравствуйте, Sinclair, Вы писали:
V>>Почему конкретнос в span<> использутся знаковые индексы — потому что это смещения, для которых как раз знаковые и пригодны, о чём я сразу же и сказал, а ты побежал спорить от "недостаточной компетенции" (С) Синклер.
S>Напомню, что в статье речь не только об индексах, но и о size(), который ну никак-никак отрицательным быть не может.
Это ты просто не видишь всю эту ползучую контрреволюцию целиком. ))
Подсказка — а Timespan может быть отрицательным? А Datetime? Но они прекрасно складываются и вычитаются.
(впрочем, об этом было сказано сразу же, таких примеров полно, где совместная арифметика знаковых и беззнаковых логична и обоснована)
В общем, всю эту хрень уже обсуждали как-то по всему интернету несколько лет назад, и однозначного согласия как не было, так и не будет никогда.
Стандарт не принимается одним человеком, и там приняли вот так:
https://en.cppreference.com/w/cpp/container/span
https://en.cppreference.com/w/cpp/container/span/subspan
Потому что Страуструп предлагает лечение костылей коньками.
Т.е. предлагает решение другой задачи вместо целевой.
А если решать целевую задачу...
Учитывая легковесность оберток в С++, не факт, что решение целевой задачи должно означать введение специальных встроенных типов для индексов в язык, дабы иметь над ними соотв. математику знаковых/беззнаковых.
V>>Здравствуйте, Sinclair, Вы писали:
V>>Почему конкретнос в span<> использутся знаковые индексы — потому что это смещения, для которых как раз знаковые и пригодны, о чём я сразу же и сказал, а ты побежал спорить от "недостаточной компетенции" (С) Синклер.
S>Напомню, что в статье речь не только об индексах, но и о size(), который ну никак-никак отрицательным быть не может.
Это ты просто не видишь всю эту ползучую контрреволюцию целиком. ))
Подсказка — а Timespan может быть отрицательным? А Datetime? Но они прекрасно складываются и вычитаются.
(впрочем, об этом было сказано сразу же, таких примеров полно, где совместная арифметика знаковых и беззнаковых логична и обоснована)
В общем, всю эту хрень уже обсуждали как-то по всему интернету несколько лет назад, и однозначного согласия как не было, так и не будет никогда.
Стандарт не принимается одним человеком, и там приняли вот так:
https://en.cppreference.com/w/cpp/container/span
https://en.cppreference.com/w/cpp/container/span/subspan
Потому что Страуструп предлагает лечение костылей коньками.
Т.е. предлагает решение другой задачи вместо целевой.
А если решать целевую задачу...
Учитывая легковесность оберток в С++, не факт, что решение целевой задачи должно означать введение специальных встроенных типов для индексов в язык, дабы иметь над ними соотв. математику знаковых/беззнаковых.
Re[29]: Carbon
Здравствуйте, Sinclair, Вы писали:
V>>Здравствуйте, Sinclair, Вы писали:
V>>Почему конкретнос в span<> использутся знаковые индексы — потому что это смещения, для которых как раз знаковые и пригодны, о чём я сразу же и сказал, а ты побежал спорить от "недостаточной компетенции" (С) Синклер.
S>Напомню, что в статье речь не только об индексах, но и о size(), который ну никак-никак отрицательным быть не может.
Это ты просто не видишь всю эту ползучую контрреволюцию целиком. ))
Подсказка — а Timespan может быть отрицательным? А Datetime? Но они прекрасно складываются и вычитаются.
(впрочем, об этом было сказано сразу же, таких примеров полно, где совместная арифметика знаковых и беззнаковых логична и обоснована)
В общем, всю эту хрень уже обсуждали как-то по всему интернету несколько лет назад, и однозначного согласия как не было, так и не будет никогда.
Стандарт не принимается одним человеком, и там приняли вот так:
https://en.cppreference.com/w/cpp/container/span
https://en.cppreference.com/w/cpp/container/span/subspan
Потому что Страуструп предлагает лечение костылей коньками.
Т.е. предлагает решение другой задачи вместо целевой.
А если решать целевую задачу...
Учитывая легковесность оберток в С++, не факт, что решение целевой задачи должно означать введение специальных встроенных типов для индексов в язык, дабы иметь над ними соотв. математику знаковых/беззнаковых.
Вдогонку.
Тем более, что в язык ввели user-defined литералы:
V>>Здравствуйте, Sinclair, Вы писали:
V>>Почему конкретнос в span<> использутся знаковые индексы — потому что это смещения, для которых как раз знаковые и пригодны, о чём я сразу же и сказал, а ты побежал спорить от "недостаточной компетенции" (С) Синклер.
S>Напомню, что в статье речь не только об индексах, но и о size(), который ну никак-никак отрицательным быть не может.
Это ты просто не видишь всю эту ползучую контрреволюцию целиком. ))
Подсказка — а Timespan может быть отрицательным? А Datetime? Но они прекрасно складываются и вычитаются.
(впрочем, об этом было сказано сразу же, таких примеров полно, где совместная арифметика знаковых и беззнаковых логична и обоснована)
В общем, всю эту хрень уже обсуждали как-то по всему интернету несколько лет назад, и однозначного согласия как не было, так и не будет никогда.
Стандарт не принимается одним человеком, и там приняли вот так:
https://en.cppreference.com/w/cpp/container/span
https://en.cppreference.com/w/cpp/container/span/subspan
Потому что Страуструп предлагает лечение костылей коньками.
Т.е. предлагает решение другой задачи вместо целевой.
А если решать целевую задачу...
Учитывая легковесность оберток в С++, не факт, что решение целевой задачи должно означать введение специальных встроенных типов для индексов в язык, дабы иметь над ними соотв. математику знаковых/беззнаковых.
Вдогонку.
Тем более, что в язык ввели user-defined литералы:
struct Index {
unsigned long long i_;
explicit constexpr Index(const auto i) : i_(i) {}
};
Index operator ""_i(unsigned long long i) {
return Index(i);
}
auto i = 1_i;