Я хочу знать, почему возникла ошибка в следующем коде. Для компиляции я использую clang-17. Компиляция этого кода с использованием gcc11.4.0 также приведет к появлению сообщения об ошибке.
Думаю, это должно быть связано с оператором преобразования типов, но я не могу точно определить причину.
Код: Выделить всё
class A
{
public:
template
explicit operator _Ty() const noexcept
{
return c;
}
std::string c = "sdafasd";
};
int main()
{
A a;
const std::string &str = static_cast(std::move(a));
}
Код: Выделить всё
class A
{
public:
template
explicit operator _Ty&() const noexcept
{
return c;
}
std::string c = "sdafasd";
};
Источник: https://stackoverflow.com/questions/781 ... ated-to-th