Redian新闻
>
请教一个关于std::function的问题
avatar
请教一个关于std::function的问题# Programming - 葵花宝典
g*s
1
应该是都面试完了。系主任要speak with me,有点紧张,不知道该聊什么?
我是不是要把startup的东西都准备好,该提的条件都提?还是说火候还没到?
没多少时间准备了,赶紧上来问问大家,谢谢。
avatar
j*n
2
每天我开车路过一段高速, 有时喜欢象小时候骑自行车一样双手脱离方向盘, 高速的路
不是笔直的, 所以如果要转向, 我就身体向左或者向右歪一下, 它自己就能跑出弧度,
今天我还想这技术应该可以更安全地实现
回来发现google果然推出可以用身体的动作发email了, 他们的新技术可以根据你的动
作写email, 包括google Docs都可以做到
avatar
y*n
3
请大牛们帮忙看看这段代码,在编译的时候会有如下error message 请问如何能编译通
过啊?跪谢!
当然这只是个虚构的例子,主要是想在template存在的情况下,传递一个member
function的指针给另一个member function.
test1.cpp: In member function 'void Foo::testInt()':
test1.cpp:30:61: error: no matching function for call to 'Foo::processVector
(std::vector&, std::_Bind_helperstd::_Placeholder<1>&>::type)'
processVector(arr, std::bind(&Foo::print, this, _1));
^
test1.cpp:21:8: note: candidate: template void Foo::processVector(
const std::vector&, std::function)
void processVector(const vector& vec, function fun) {
^
test1.cpp:21:8: note: template argument deduction/substitution failed:
test1.cpp:30:61: note: 'std::_Bind(Foo*,
std::_Placeholder<1>)>' is not derived from 'std::function'
processVector(arr, std::bind(&Foo::print, this, _1));
------------------------------------
class Foo {
public:
template
void print(T val) {
cout << val << endl;
}
template
void processVector(const vector& vec, function fun) {
for (auto it=vec.begin(); it != vec.end(); ++it) {
fun(*it);
}
}
void testInt() {
int samples[] = {1,2,3};
vector arr(samples, samples+3);
processVector(arr, std::bind(&Foo::print, this, _1));
}
void testDouble() {
double samples[] = {0.1, 0.2, 0.3};
vector arr(samples, samples+3);
processVector(arr, std::bind(&Foo::print, this, _1));
}
};
avatar
N*A
4
恭喜恭喜
应该就是salary,statup和第一学期、年的reduce teaching loading
你是onsite结束后多久收到的电话通知呀
avatar
l*r
5
我这个帖子是用脚后跟发出来的
avatar
p*o
6
不用写那么具体, 这样就好。
template
void processVector(const V &vec, F fun) {
}

processVector
const

【在 y****n 的大作中提到】
: 请大牛们帮忙看看这段代码,在编译的时候会有如下error message 请问如何能编译通
: 过啊?跪谢!
: 当然这只是个虚构的例子,主要是想在template存在的情况下,传递一个member
: function的指针给另一个member function.
: test1.cpp: In member function 'void Foo::testInt()':
: test1.cpp:30:61: error: no matching function for call to 'Foo::processVector
: (std::vector&, std::_Bind_helper: std::_Placeholder<1>&>::type)'
: processVector(arr, std::bind(&Foo::print, this, _1));
: ^

avatar
j*g
7
恭喜。尽量准备充分些。如果系主任很喜欢你,气氛较好,尽量多提一些,如果超过了
,他会说的。通常,一个位子大多已有一框定的条件,除非你特牛,可能会超过一点这
框框。

【在 g***s 的大作中提到】
: 应该是都面试完了。系主任要speak with me,有点紧张,不知道该聊什么?
: 我是不是要把startup的东西都准备好,该提的条件都提?还是说火候还没到?
: 没多少时间准备了,赶紧上来问问大家,谢谢。

avatar
p*e
8
赞,风教授的话大家一定要听。

,

【在 j******n 的大作中提到】
: 每天我开车路过一段高速, 有时喜欢象小时候骑自行车一样双手脱离方向盘, 高速的路
: 不是笔直的, 所以如果要转向, 我就身体向左或者向右歪一下, 它自己就能跑出弧度,
: 今天我还想这技术应该可以更安全地实现
: 回来发现google果然推出可以用身体的动作发email了, 他们的新技术可以根据你的动
: 作写email, 包括google Docs都可以做到

avatar
d*l
9
根据编译的错误信息,processVector()的第二个变量被定义为std::function>,而在调用时传入的是std::_Bind_helperconst std::_Placeholder<1>&>::type),编译器无法确定这二者是同一类型,因此报
错。你可以定义一个std::function变量然后把bind赋值给它(implicit
cast)之后在调用processVector时传入这个变量,或者直接static_cast (the
following code uses static_cast and works fine on my machine with gcc-4.8.0):
...
void testint()
{
...
processVector(arr, static_cast>(std::bind(&Foo::
print, this, _1)));
}
...
另外,二楼建议的写法更简洁一些.
avatar
l*u
10
bless...
avatar
p*e
11
可不是嘛,我回帖都是用以太按键完成的。

【在 l*r 的大作中提到】
: 我这个帖子是用脚后跟发出来的
avatar
S*3
12
恭喜
avatar
m*e
13
lolol

每天我开车路过一段高速, 有时喜欢象小时候骑自行车一样双手脱离方向盘, 高速的路
不是笔直的, 所以如果要转向, 我就身体向左或者向右歪一下, 它自己就能跑出弧度,
今天我还想这技术应该可以更安全地实现
回来发现google果然推出可以用身体的动作发email了, 他们的新技术可以根据你的动
作写email, 包括google Docs都可以做到

【在 j******n 的大作中提到】
: 每天我开车路过一段高速, 有时喜欢象小时候骑自行车一样双手脱离方向盘, 高速的路
: 不是笔直的, 所以如果要转向, 我就身体向左或者向右歪一下, 它自己就能跑出弧度,
: 今天我还想这技术应该可以更安全地实现
: 回来发现google果然推出可以用身体的动作发email了, 他们的新技术可以根据你的动
: 作写email, 包括google Docs都可以做到

avatar
g*s
14
谢谢。我onsite有小一个月了,不是最后一个面的。估计系里花了两个星期左右做决定。

【在 N**A 的大作中提到】
: 恭喜恭喜
: 应该就是salary,statup和第一学期、年的reduce teaching loading
: 你是onsite结束后多久收到的电话通知呀

avatar
w*r
15
hao

,

【在 j******n 的大作中提到】
: 每天我开车路过一段高速, 有时喜欢象小时候骑自行车一样双手脱离方向盘, 高速的路
: 不是笔直的, 所以如果要转向, 我就身体向左或者向右歪一下, 它自己就能跑出弧度,
: 今天我还想这技术应该可以更安全地实现
: 回来发现google果然推出可以用身体的动作发email了, 他们的新技术可以根据你的动
: 作写email, 包括google Docs都可以做到

avatar
g*s
16
谢谢。既然已经有一个框框,能不能就不提条件了?给啥要啥,大家都高兴。
这是个公立大学,各样东西的标准好像都有套路,面试的时候系主任也都介绍过,我觉
得多了可能要不了,少了呢,还不如不要,留个好印象。大家说呢?

【在 j*****g 的大作中提到】
: 恭喜。尽量准备充分些。如果系主任很喜欢你,气氛较好,尽量多提一些,如果超过了
: ,他会说的。通常,一个位子大多已有一框定的条件,除非你特牛,可能会超过一点这
: 框框。

avatar
F*t
17
lol
相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。