Немного странного C++.
Уважаемый читатель моего канала @MSerhiy обнаружил забавную вещь: для структур и для примитивных типов вот в этом примере действуют разные правила перегрузки: https://godbolt.org/z/YT9bo7ore
Я довольно быстро раскопал ответ в стандарте.
C++20, [expr.type] "If a prvalue initially has the type “cv T”, where T is a cv-unqualified non-class, non-array type, the type of the expression is adjusted to T prior to any further analysis"
Но я что-то задумался в процессе. Вот чисто гипотетически: а зачем так было сделано? Чему и когда это поможет? У меня нет идей.
Предлагаю в этой ветке поспекулировать насчёт источника этого правила.
#questions
Уважаемый читатель моего канала @MSerhiy обнаружил забавную вещь: для структур и для примитивных типов вот в этом примере действуют разные правила перегрузки: https://godbolt.org/z/YT9bo7ore
Я довольно быстро раскопал ответ в стандарте.
C++20, [expr.type] "If a prvalue initially has the type “cv T”, where T is a cv-unqualified non-class, non-array type, the type of the expression is adjusted to T prior to any further analysis"
Но я что-то задумался в процессе. Вот чисто гипотетически: а зачем так было сделано? Чему и когда это поможет? У меня нет идей.
Предлагаю в этой ветке поспекулировать насчёт источника этого правила.
#questions