Почему шаблон «вывод этого» дает разные результаты, чем перегрузка по rvalue/lvalue?C++

Программы на C++. Форум разработчиков
Anonymous
 Почему шаблон «вывод этого» дает разные результаты, чем перегрузка по rvalue/lvalue?

Сообщение Anonymous »

Я написал этот простой тест для перегрузки в зависимости от того, является ли это rvalue или lvalue. В исходной версии были дополнительные случаи, но я сократил их до одного, который меня озадачил.

Код: Выделить всё

#include 

struct A {
int pp=0;
A(int p) : pp(p) {}
A &prop(int nn) & {pp=nn; return *this;}
A &&prop(int nn) && {pp=nn; return std::move(*this);}
};

struct B {
B(const A &aa) {std::cout 

Подробнее здесь: [url]https://stackoverflow.com/questions/79016187/why-does-a-deducing-this-template-give-different-results-than-overloading-by-r[/url]

Вернуться в «C++»