【C++】成员函数后加&的作用
成员函数后加&的作用
#include <iostream>
#include <utility>
struct Arg
{
int i = 1;
int aget() &&
{
std::cout << "in aget &&\n";
return i;
}
int& aget() &
{
std::cout << "in aget &\n";
return i;
}
};
int main(int argc, const char* argv[])
{
Arg g1{ 5 };
g1.aget(); // 调用 lvalue 版本
std::move(g1).aget(); // 调用 rvalue 版本
return 0;
}
输出:
g++ -std=c++17 test.cpp -O2 -Wall -Wextra
in aget &
in aget &&

浙公网安备 33010602011771号