Информация об изменениях

Сообщение Re[4]: Хитрый оператор преобразования типа от 29.06.2022 13:56

Изменено 29.06.2022 14:00 σ

Re[4]: Хитрый оператор преобразования типа
R>А я вот заморочился и поискал. И вот, что нашел:
R>Выходит, что работать должен и твой вариант, и даже без "A::", а просто: "return operator type_t()".

Только вот это справедливо если ищется operator X, где X это конкретный тип.
Т.к. operator T(), даже с зависимым T, это не dependent name, то ищется, как я понимаю, литералли `operator T` в template definition context. (https://cplusplus.github.io/CWG/issues/1500.html, https://godbolt.org/z/vjj3fGhzG)

Это было пофикшено в https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1787r6.html#temp.res
Re[4]: Хитрый оператор преобразования типа
R>А я вот заморочился и поискал. И вот, что нашел:
R>Выходит, что работать должен и твой вариант, и даже без "A::", а просто: "return operator type_t()".

Только вот это справедливо если ищется operator X, где X это конкретный тип.
Т.к. в `operator T()`, даже с зависимым T, `operator T` это не dependent name, то ищется, как я понимаю, литералли `operator T` в template definition context. (https://cplusplus.github.io/CWG/issues/1500.html, https://godbolt.org/z/vjj3fGhzG)

Это было пофикшено в https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2020/p1787r6.html#temp.res