C++里错误程序不一定跑起来会挂。准确地说这是UB,编译器有可能因为某些行为没有触发错误。
leetcode你知道吗?你可以把这段代码放到它家的playground上去跑一下,错误很清楚。
你既然跑了,那两行cout看了没?
你“引用”了一个"bind"对象,那请问这个对象本体在哪呢?
【 在 xunery (寻) 的大作中提到: 】
: 标 题: Re: 关于c++的右值引用的一个问题
: 发信站: 水木社区 (Fri Dec 18 15:34:22 2020), 站内
:
: 先感谢你打了这么多字
: 我跑了下你的代码
:
: x->f(); // Error
:
: 跑了下这行也没用错误。
:
: make_bad函数接受右值参数,
: auto x = make_bad(std::bind(foo, 3));
: 这行传入的就是右值参数,我理解这样写没啥问题
:
: 为何说这个是错的?
: 跑起来x,y都没错
: 【 在 here080 的大作中提到: 】
: : \_(ツ)_/
: : 小朋友,你要问问题,就该是你把问题的实质提取出来。
: : 你贴了一段代码,但问题的实质根本不在这段代码之中,还要逼人去github上读小作坊ThreadPool的实现。
: : ...................
:
: --
:
: ※ 来源:·水木社区
http://www.newsmth.net·[FROM: 115.171.170.*]
--
FROM 76.126.252.*