C++ C++;和咖喱
我有密码:C++ C++;和咖喱,c++,design-patterns,c++11,currying,C++,Design Patterns,C++11,Currying,我有密码: #include <iostream> using namespace std; auto fn = ([](int x){ return [x](int y) { return x * y; }; }); int main() { int i = fn(2)(4); // 8 cout << i << endl; return 0; } 有没有办法在以后调用最后
#include <iostream>
using namespace std;
auto fn = ([](int x){
return [x](int y) {
return x * y;
};
});
int main() {
int i = fn(2)(4); // 8
cout << i << endl;
return 0;
}
有没有办法在以后调用最后一个函数,然后与第一个调用绑定?这对我很有用:
int main() {
auto i = fn(2);
cout << i(4) << endl; // prints 8
return 0;
}
intmain(){
自动i=fn(2);
这对我来说很有效:
int main() {
auto i = fn(2);
cout << i(4) << endl; // prints 8
return 0;
}
intmain(){
自动i=fn(2);
coutfn
的结果不是整数,因此不能将fn(2)
赋值给整数(甚至不知道编译的原因)
您应该能够执行auto i=fn(2);
fn
的结果不是整数,因此您无法将fn(2)
赋值给整数(甚至不知道编译的原因)
您应该能够按预期执行以下操作
#include <iostream>
using namespace std;
auto fn = [](int x){
return [x](int y) {
return x * y;
};
};
int main() {
auto i = fn(2)(4); // 8
cout << i << endl;
auto j = fn(2);
cout << j(4) << endl;
return 0;
}
#包括
使用名称空间std;
自动fn=[](整数x){
返回[x](整数y){
返回x*y;
};
};
int main(){
自动i=fn(2)(4);//8
下面的工作是否如预期的那样有效
#include <iostream>
using namespace std;
auto fn = [](int x){
return [x](int y) {
return x * y;
};
};
int main() {
auto i = fn(2)(4); // 8
cout << i << endl;
auto j = fn(2);
cout << j(4) << endl;
return 0;
}
#包括
使用名称空间std;
自动fn=[](整数x){
返回[x](整数y){
返回x*y;
};
};
int main(){
自动i=fn(2)(4);//8
你是指自动i=fn(2)吗?你是指自动i=fn(2)吗?事实上,它是不可编译的。至少在g++中,我的意思当然是int i=fn(2);
不可编译,auto i=fn(2)
可以;我使用的是g++4.5,但奇怪的是4.7编译时没有警告int i=fn(2)
,因为fn(2)
它没有初始化,也没有编译。至少在g++中,我的意思是当然inti=fn(2);
没有编译,auto I=fn(2)
有;我使用的是g++4.5,但奇怪的是4.7编译时没有警告inti=fn(2)
,因为fn(2)
它不是int