きままにブログ

プログラミングを主とした私のメモ帳です。寂しいのでコメントください笑

使い捨てラムダ

ラムダはどんどん使い捨てていくのがいいと思うお。

int x = 0, y = 0, z = 0;
const int n = 10;

[&]() -> int& {
	if(n % 2 == 0) {
		return x;
	}
	else if(n % 3 == 0) {
		return y;
	}
	else if(n % 5 == 0) {
		return z;
	}
}() = n;

printf("%d, %d, %d\n", x, y, z); // 10, 0, 0

不思議な構造体

ラムダを保存する型があったとしても……そのラムダに上書きできないんじゃ全く意味ないよね;

auto t = std::make_tuple(
	[](int x) { return x * 2; },
	10
);

struct S {
	decltype(t) t;
};

S s;
s.t; // 何も出来ない