しらいとブログ

ネットで検索してもなかなか出てこないIT情報を独自にまとめています

【C++11/14】値か関数を受け取り評価する関数

事の始まりはC++で遅延評価の必要性に駆られたことでした。

// 時間のかかる処理
int n = sum(list);

// testの中でnが使われなければ処理が無駄になる
test(n);

そこで値の代わりに関数を渡し、必要になったときに評価してもらう方法を取りました。

auto f = [&] { return sum(list); };
test(f);

このやり方だと遅延評価は実現できますが、代償として値を直接渡すことができなくなりました。

test(100); // Error
test([] { return 100; }); // OK

そこで値と関数の両方を受け取れる関数を作ることを考えました。

続きを読む

「WinMouse+」開発記録 Part1

以前からマウスの操作に違和感を感じていたので、Windowsのマウスカーソル移動処理をフックして独自の移動処理に置き換えるソフトを開発することにしました。

先に言っておくと、マウス処理のフックは非常に簡単です。
「マウス フック」で検索すればやり方もサンプルも出てきます。

問題は「マウスのセンサーに問題がある場合にどうすれば快適に使えるのか」になります。

続きを読む