Pull to refresh
7
0,1
Rating
3
Subscribers
Send message

Потому что в ином случае все выражение не имеет никакого смысла, оно невалидно, ерунда, чушь, как ещё объяснить - я не знаю.

Уверенность в том, что X не равен нулю нам даёт тот факт, что X находится в знаменателе. Иначе все выражение не имеет смысла.

Математическая ошибка в рассуждении компилятора

В алгебре существует фундаментальное правило:

Сокращение x в числителе и знаменателе допустимо тогда и только тогда, когда явно оговорено, что x ≠ 0.

Что? Если в знаменателе стоит x то он не может быть нулем, следовательно мы всегда можем сокращать на x. Иначе, все выражение не имеет смысла.

Я глубоко в ваш код не копал, но выглядит так, что можно из строкового выражения сделать диапозон с input_iterator (генерировать значения на лету для случая преобразователей чисел в строки или ленивых генераторов). Так получится полная совместимость с C++20 ranges и всеми её плюшками. Ну и то что я озвучил выше, на этой основе можно реализовать.

Ещё можно развить идею и не конкатенировать строковое выражение в одну строку а, например, записывать выражение в файл, или дать возможность итерации по такой "строке".

Поясните, как смещение не будет инвалидировано если удалить элемент расположенный в середине плоского контейнера?

Нет, не перепутаны. Автор пишет про 20 кратное замедление на пустых тасках. Замечание, впрочем, было не про это. Я же говорю про то, что автор заявляет одно, а собирает метрики про совсем другое. Да, измерить производительность тоже интересно, но куда более важно получить метрики про то, для чего это все затевалось.

Вы написали, что преимущество вашего решения это гарантия времени выполнения и предсказуемость, а измерили пропускную способность где полностью проиграли более общему решению.

Вы правы, названия - не мой конёк, но мой репозиторий - это скорее полигон для испытаний, а не что-то готовое. Кроме каналов там еще всего.

Information

Rating
5,165-th
Registered
Activity