水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
1/1
|
转到
主题:这样用法行吗
楼主
|
speedboy2998
|
2021-11-03 18:19:46
|
只看此ID
std::deque<object> queue; object o = std::move(queue.front()); queue.pop_front();
--
FROM 218.76.62.*
1楼
|
ArchLinux
|
2021-11-03 19:48:28
|
只看此ID
试着跑了一下,没什么问题。
std::move 只是把 queue.front() 设成了另一个值,只要 move 构造函数实现正确,它在被 pop_front() 之后还是可以析构的。
【 在 speedboy2998 (极品飞车) 的大作中提到: 】
: [code=c]
: std::deque<object> queue;
: object o = std::move(queue.front());
: ...................
--
FROM 59.109.217.*
2楼
|
z16166
|
2021-11-03 21:54:11
|
只看此ID
先检查一下deque是否为空,为空则不要做这个reference操作。
--
FROM 114.240.244.*
3楼
|
speedboy2998
|
2021-11-04 11:20:26
|
只看此ID
谢谢,是的,确保了不为空。
【 在 z16166 的大作中提到: 】
: 先检查一下deque是否为空,为空则不要做这个reference操作。
--
FROM 218.76.62.*
4楼
|
allegro
|
2021-11-04 16:02:54
|
只看此ID
这难道不是标准用法。。
【 在 speedboy2998 的大作中提到: 】
: [code=c]
: std::deque<object> queue;
: object o = std::move(queue.front());
: ...................
--
FROM 158.140.1.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版