gpt4 book ai didi

c++ - 为什么我们不能同时实现 `getAB() &&` 和 `getAB()` 这两种方法?

转载 作者:可可西里 更新时间:2023-11-01 18:29:07 25 4
gpt4 key购买 nike

<分区>

为什么我们不能实现 getAB() &&getAB() 这两种方法,但可以实现其中任何一种?

  1. 作品:http://ideone.com/4EgObJ

代码:

struct Beta {
Beta_ab ab;
Beta_ab && getAB() && { cout << "1"; return move(ab); }
};

int main() {
Beta_ab ab = Beta().getAB();

return 0;
}

  1. 作品:http://ideone.com/m9d0Tz

代码:

struct Beta {
Beta_ab ab;
Beta_ab && getAB() { cout << "2"; return move(ab); }
};

int main() {
Beta b;
Beta_ab ab = b.getAB();

return 0;
}

  1. 有效:http://ideone.com/QIQtZ5

代码:

struct Beta {
Beta_ab ab;
Beta_ab && getAB() && { cout << "1"; return move(ab); }
Beta_ab && getAB() { cout << "2"; return move(ab); }
};

int main() {
Beta b;
Beta_ab ab1 = b.getAB();

Beta_ab ab2 = Beta().getAB();

return 0;
}

为什么前两个例子代码可以,最后一个例子不行?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com