Size: a a a

Конференция C++ Russia

2021 March 06

LA

Liber Azerate in Конференция C++ Russia
Pavel Zhigulin
Просто  если закомментировать одну из функций "f" будет ошибка компиляции. Что говорит о том, что lvalue float&& нельзя скастить в rvalue float&& )
Да, это я тоже пробовал. Что удивительно...
источник

V

Vlad in Конференция C++ Russia
Vlad
А че не так с "MIN_INT / -1"?
Переполнение будет (не влезет в MAX_INT)?
источник

V

Vlad in Конференция C++ Russia
Vlad
Переполнение будет (не влезет в MAX_INT)?
C "-(MIN_INT)" - та же фигня?
источник

LA

Liber Azerate in Конференция C++ Russia
Pavel Zhigulin
Просто  если закомментировать одну из функций "f" будет ошибка компиляции. Что говорит о том, что lvalue float&& нельзя скастить в rvalue float&& )
Я пока прошёлся:
https://eel.is/c++draft/over.match#general-2.8
Не нашёл ни одной причины, почему не должна вызваться перегрузка с более коротким implicit conversion sequence. Выглядит как баг
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
Liber Azerate
Я пока прошёлся:
https://eel.is/c++draft/over.match#general-2.8
Не нашёл ни одной причины, почему не должна вызваться перегрузка с более коротким implicit conversion sequence. Выглядит как баг
Я думаю)))
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
Весь корень зла в том, что вот это вызывать нельзя:

float f = 3;
float&& rf = f;

а вот это можно

float f = 3;
int&& ri = f;
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
Чудеса, неправда ли? :)
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
источник

LA

Liber Azerate in Конференция C++ Russia
Pavel Zhigulin
Весь корень зла в том, что вот это вызывать нельзя:

float f = 3;
float&& rf = f;

а вот это можно

float f = 3;
int&& ri = f;
Честно сказать, я искренне хочу, чтобы это было всего лишь багом.
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
Невозможность первых двух строк заложена еще в C++11 намеренно.
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
Истина где-то тут:
https://eel.is/c++draft/dcl.init.ref#5.3

Но я не могу увидеть)
источник

LA

Liber Azerate in Конференция C++ Russia
Pavel Zhigulin
Истина где-то тут:
https://eel.is/c++draft/dcl.init.ref#5.3

Но я не могу увидеть)
Я тоже внимательно читаю эти пункты. Пока только начал
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
Чем заняться в 4 утра еще, конечно же....
источник

LA

Liber Azerate in Конференция C++ Russia
А, ну, собственно: http://eel.is/c++draft/dcl.init.ref#5.4.4
источник

LA

Liber Azerate in Конференция C++ Russia
Просто заифано. Поздравляем
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
Ну, это не оправдывает вообще

float f = 3;
int&& rri = f;     //каста нет, а это компилируется в GCC
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
Кстати, MSVC ведет себя по человячи
https://godbolt.org/z/bezveq
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
Выглядит как баг в GCC
источник

PZ

Pavel Zhigulin in Конференция C++ Russia
2 часа просрано зря)
источник

LA

Liber Azerate in Конференция C++ Russia
Pavel Zhigulin
Выглядит как баг в GCC
Хочу, чтобы это было корректным поведением...
источник