Сообщение Re[4]: Хитрый оператор преобразования типа от 29.06.2022 13:21
Изменено 29.06.2022 13:22 Videoman
Re[4]: Хитрый оператор преобразования типа
Здравствуйте, rg45, Вы писали:
R>...
R>Выходит, что работать должен и твой вариант, и даже без "A::", а просто: "return operator type_t()". Похоже, msvc просто не может разрулить между conversion function и conversion function template.
Похоже ты прав и gcc и clang с тобой согласны.
Сейчас просто активно начал портировать код, что бы он работал одновременно и на Linux и на Windows, при том, что изначально код писался под Windows. Периодически наступаю на такие косяки, то с одной, то с другой стороны. Что интересно, MS в большинстве случаев работает в более расслабленном стиле, сам до всего догадывается и многое прощает, но видимо от этого и глючит в неопределённых, с точки зрения стандарта, случаях.
R>...
R>Выходит, что работать должен и твой вариант, и даже без "A::", а просто: "return operator type_t()". Похоже, msvc просто не может разрулить между conversion function и conversion function template.
Похоже ты прав и gcc и clang с тобой согласны.
Сейчас просто активно начал портировать код, что бы он работал одновременно и на Linux и на Windows, при том, что изначально код писался под Windows. Периодически наступаю на такие косяки, то с одной, то с другой стороны. Что интересно, MS в большинстве случаев работает в более расслабленном стиле, сам до всего догадывается и многое прощает, но видимо от этого и глючит в неопределённых, с точки зрения стандарта, случаях.
Re[4]: Хитрый оператор преобразования типа
Здравствуйте, rg45, Вы писали:
R>...
R>Выходит, что работать должен и твой вариант, и даже без "A::", а просто: "return operator type_t()". Похоже, msvc просто не может разрулить между conversion function и conversion function template.
Похоже ты прав и gcc и clang с тобой согласны.
Сейчас просто активно начал портировать код, что бы он работал одновременно и на Linux и на Windows, при том, что изначально код писался под Windows. Периодически наступаю на такие косяки, то с одной, то с другой стороны. Что интересно, MS в большинстве случаев работает в более расслабленном стиле, сам до всего догадывается и многое прощает, но видимо от этого и глючит в противоречивых, с точки зрения стандарта, случаях.
R>...
R>Выходит, что работать должен и твой вариант, и даже без "A::", а просто: "return operator type_t()". Похоже, msvc просто не может разрулить между conversion function и conversion function template.
Похоже ты прав и gcc и clang с тобой согласны.
Сейчас просто активно начал портировать код, что бы он работал одновременно и на Linux и на Windows, при том, что изначально код писался под Windows. Периодически наступаю на такие косяки, то с одной, то с другой стороны. Что интересно, MS в большинстве случаев работает в более расслабленном стиле, сам до всего догадывается и многое прощает, но видимо от этого и глючит в противоречивых, с точки зрения стандарта, случаях.