[C++][](){} および []{}()

勉強していたら、例でラムダ式が 2 つ使われているのを突然見かけ、この使い方戸惑いを感じたのです[](){}、確認したところ、前者は標準的なラムダ式の使い方で、後者はlambda + call の短縮版で、つまり、省略された () はパラメータの受け渡しに使用され、匿名関数の構築後に直接それ自体を呼び出します例えば:[]{}()
[]{}()
[](){}
[]{}()

int c = [](int n){
    
    
	return [n](int x){
    
     
		return n + x;
	}(1);
};
a = c(2);

int c = [](int n){
    
    
	return [n]{
    
     
		return 1;
	}();
}(2);

おすすめ

転載: blog.csdn.net/qq_43557907/article/details/125667737