- 主题:unique_ptr 和auto &&
#include <memory>
#include <iostream>
int main(int argc,char*argv[]) {
auto p = std::make_unique<int>(7);
auto&& q=p;
std::cout <<*p; //这句不crash,why
std::cout <<*q;
return 0;
}
--
FROM 124.127.212.*
嗯,我也是觉得,这个类型&&& 实际decay 为&
【 在 ziqin 的大作中提到: 】
: q 应该是个std::unique_ptr<int>&
--
FROM 120.244.162.*
o,
这个auto,我很多地方容易费解。正常这个&&只能用于 右值,但auto&&却用于了左值
还有类似的
int *p=new int(1);
const auto &q=p; // int * const q=p
【 在 here080 的大作中提到: 】
: 这里不是decay
: auto&&就是完美forward
: 接受的是什么它就是什么。
: ...................
--
FROM 124.127.212.*