求助关于 C++ function 的问题
  • 板块学术版
  • 楼主hxhhxh
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/12/26 22:30
  • 上次更新2023/12/27 15:26:22
查看原帖
求助关于 C++ function 的问题
429147
hxhhxh楼主2023/12/26 22:30

rt,下面的代码

#include<bits/stdc++.h>
#define pii pair<int,int> 
using namespace std;
function<pii(pii)>rdc(double tx,double ty){
	return [&](pair<int,int>x)->pii{return make_pair((int)(x.first*tx),(int)(x.second*ty));};
}
int main(){
	cout<<rdc(0.81,0.81)({20,15}).first<<endl;
	cout<<[&](pii x)->pii{return make_pair(x.first*0.81,x.second*0.81);}({20,15}).first<<endl;
}

会输出 0 16。它甚至没有任何的 Warning。

这两个东西看起来很等价的样子,但是硬调可以发现上面返回的 lambda 中的 tx(在我的电脑上)变成了 3.18299e-313。为什么会这样?

2023/12/26 22:30
加载中...