1:31:18, на самом деле, если нас смущает "инвазивность" if constexpr и мы всё ещё хотим 2 функции, мы, кажется, можем добиться нужного поведения, если перегрузим функции по одному из аргументов, например, взяв int и elipsis и передадим туда 42. Более усовершенстованная техника - priority_tag, который позволяет довольно гибко явно управлять приоритетностью тех или иных перегрузок. Кажется, это всё ещё должно работать правильно с концептами, прошу поправить меня, если я не прав. Я (теперь уже) ) заглянул в будущие лекции, вижу там Ranges, так, что возможно даже, что ещё услышу об этом)
@tilir4 жыл бұрын
Да, тут к сожалению есть не до конца решённые проблемы. Собственно Саттон признавал что идея плохая, что он перебрал несколько и что пока непонятно какая хорошая. Лепить перегрузку по семантически ненужному параметру это тоже плохо. А уж создавать какие-нибудь теги...
@sibedir17 күн бұрын
Я не очень понял, что значит рекурсивные концепты 1:09:10. Это как? `template concept myconcept = ...` что мне тут остаётся писать, кроме `true`? Короче, я не понял. Но не суть. Суть вопроса/уточнения, что для рекурсии же можно воспользоваться классами.
@vanyakhodor33872 жыл бұрын
На 19м слайде у вас bool стоит до requires. На 33м слайде в функциях только тип Т, но в параметрах ещё и U. (настолько хорошо, что пересматриваю)
@tilir2 жыл бұрын
Всё хочу записать новую версию этой лекции и там поправить все проблемы.
@vanyakhodor33872 жыл бұрын
На 43м слайде у вас остался concept bool. 1:09:45.
@tilir2 жыл бұрын
Да действительно. Досадно. Я надеюсь эту лекцию переснять с видео и на новом уровне, поправил на слайдах.
@elkadaf2 жыл бұрын
Хотел спросить, затащили ли в итоговом варианте концептов прувер? Ибо в принятом 20-м стандарте отношение subsumes определяется иначе