Size: a a a

2020 August 03

AZ

Alex Zhukovsky in rust_offtopic
Kai Ren
Переслано от Roman na
в С++ столько проблема, но всё эти проблемы сложные и фундаментальные. Поэтому никто не хочет делать "С++ без проблем" - сложно. Вот и рождаются на помойках каждую неделю новая скриптуха
ну то есть он не понимает что темплейты это не мета-мета-типы а просто макрос который раскрывается по месту
источник

AZ

Alex Zhukovsky in rust_offtopic
по месту появляются конкретные типы и все збс
источник

AZ

Alex Zhukovsky in rust_offtopic
но как только нужно что-то больше чем вызвать функу, например, сохранить в переменную или в зависимости от рантайм значений чо-то поделать, то всё обсирается
источник

Ct

Casual tears in rust_offtopic
Kai Ren
Переслано от Roman na
показать полиморфизм итераторов
Я показывал, что раст тоже может в перформанс\зирокост и random access итераторы, если захотеть. Царь просто обгадился когда оказалось что мой код на расте быстрее плюсов работает и придумывает какие-то маняполиморфизмы.
источник

KR

Kai Ren in rust_offtopic
Alex Zhukovsky
но как только нужно что-то больше чем вызвать функу, например, сохранить в переменную или в зависимости от рантайм значений чо-то поделать, то всё обсирается
ща...
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
да не, всё просто. https://godbolt.org/z/c7WfE6 - вот здесь allow_types
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
рантайм
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
все вычисления в рантайме происходят
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
просто все рантайм-преобразования отражаются на уровне типа. Потому это и работает, и можно даже рантайм-значения использовать для типизации
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
т.е. там вставка в мапу меняет тип. И сам тип мапы знает, что в ней лежит. Какие типы
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
в данном случае в set, ну это так же как в таплом. Мы же знаем что там лежит, даже если значения в компилтайме существуют
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
а по поводу самих концептов. https://godbolt.org/z/Yo8En8 - там я просил дошколят написать это на расте. Но как пример пойдёт. Там есть показанные мною выше паттерны
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
мне нужна была функция которая конвертирует значение в тапл и обратно
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
а работает constexpr-магия следующим образом.
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
т.е. даже с рантайм-данных мы можем получить некие свойства. В основном из их типов.
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
допустим, там используются литералы не вида 123, а 123_c и прочее. В С++ параметры функций(даже constexpr) рантайм и мы не можем из них ничего получить
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
поэтому 123_c порождает пустой рантайм тип, в который 123 записывается в тип
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
а далее для него переопределены операции. Которые в рантайме ничего не делают - они пусты. Но в компилтайме чиселки скаладываются и кладутся в тип
источник

KR

Kai Ren in rust_offtopic
Переслано от Roman na
int<123> + int<123> -> int<123 + 123> - как-то так
источник