Разрешение перегрузки с ref-определителями
Работая с перегрузками функций с квалификацией, яя получаю разные результаты отGCC (4.8.1) а такжеЛязг (2,9 и багажник), Рассмотрим следующий код:
#include
#include
struct foo
{
int& bar() &
{
std::cout < "non-const lvalue" < std::endl;
return _bar;
}
//~ int&& bar() &&
//~ {
//~ std::cout < "non-const rvalue" < std::endl;
//~ return std::move(_bar);
//~ }
int const& bar() const &
{
std::cout < "const lvalue" < std::endl;
return _bar;
}
int const&& bar() const &&
{
std::cout < "const rvalue" < std::endl;
return std::move(_bar);
}
int _bar;
};
int main(int argc, char** argv)
{
foo().bar();
}