hsimyu's diary

ゲームなどをします。

4/20-22 機嫌悪し

4/20 (土)

体が動かなくて昼まで寝たり起きたり。

昼飯はマクドナルド。ギガビッグマック、失敗だった。

夜は豆腐ハンバーグを作る。タネがでかすぎて割れた。

RICOH Handy Printer

プリンター

ヨドバシ.com - リコー RICOH RICOH Handy Printer White [モノクロハンディープリンター ホワイト] 通販【全品無料配達】

これめっちゃほしいな!と思ってたけど、5万円か〜〜〜。家庭用で考えると、ちょっと手が出ないな……。

ごはん

朝: オールブラン

昼: ギガビッグマック

夜: 豆腐ハンバーグトマトソース煮込み

4/21 (日)

めっちゃ月曜日感を感じながら起きたので、間違えて出社しかけた。

電車に乗ってベビザらスへお出かけ。だいぶ機嫌がよくて、寝てる間にドーナツ屋さんでお昼食べたりした。あとは妻がユザワヤで買い物してるのを待ってたり。帰りの電車ではだいぶ泣いたが、降りたらケロッとしていた。

参照渡し (call by reference) と共有渡し (call by sharing)

参照渡し: 仮引数が実引数の参照となる。参照は一つだけ生成される。

共有渡し: 実引数の参照をコピーして仮引数の参照とする。参照は二つ生成される。参照の値渡し(call by value where value is the reference copy)とも。

https://qiita.com/makotoo2/items/50c6ee98c18f35688b17

https://qiita.com/raccy/items/d4c5e7995a8fc90109ee

最近ずっと C++ 書いてる視点から JavaScript の関数定義見ると、この言語でもう絶対に大きなアプリケーション書きたくね〜〜〜と思う。次に Web アプリ書く時は TypeScript にしよう。

ごはん

朝: オールブラン

昼: ドーナツ

夜: カツ丼

4/22 (月)

本当の月曜日。月曜日だぜ〜という気持ちで仕事をした。

娘は風呂後だいぶグズグズ。2.5 時間くらいで寝てくれた。おなかパンパンだったし、母乳飲みすぎて気持ち悪かったのかもしれない。

ラムダと ownership と unique_ptr とライムタイム

std::unique_ptr<int> a = std::make_unique<int>(1);

auto f = [b = std::move(a)]() {};
// b は f のライフタイムが切れる時、同時に破棄される。

ここから Rust になるわけですね。

ジェネリックラムダはパラメーターパックも書ける

auto f = [](auto... args){};

知らんかった。可変長テンプレート関数書き放題じゃん。

std::shared_mutex

「複数ユーザーによる読み取りと、単一ユーザーによる書き込み」ができる共有ミューテックス(Readers-Writer Lock というらしい)。

lock() / unlock() : 書き込み用ロックを取得/解放する

lock_shared() / unlock_shared(): 読み込み用ロックを取得/解放する

この mutex クラスは自身のロック状態を認識してデストラクタで自動的にロック解放という機能をもっておらず、下記の lock 用クラスを使ってロックをハンドリングする。

排他(書き込み用)ロック: std::unique_lock, std::lock_guard

共有(読み込み用)ロック: std::shared_lock

std::lock_guard は非常に機能がシンプル (RAII でロック取得/解放する) で、オーバーヘッドがほぼゼロ。高度なミューテックス操作が必要な時は std::unique_lock を使う。

ごはん

朝: オールブラン、ドーナツ

昼: つけ麺

夜: とりチーズ焼き、混ぜご飯