Effective Modern C++読書会 vol.3¶
- 場所:フェンリル株式会社
- 日時:2016/01/18 19:30~21:00
- http://cpp-osaka.connpass.com/event/25468/
項目3¶
- pp.22~23にかけて、「()」以外に他にはまり方は存在する?
decltype(auto)ではまる可能性があるのは()を使った場合のみ。
- decltype(auto)に「&,*」をつけられない
つけたければautoを使う。
項目4¶
typeid(x).name()が出力する文字列の決まりは規格書にはない
deplicatedでwarningを出せば人間に読める形で型が出力される。(printfデバッグ的な)
- ラムダ式の型はコンパイラにしかわからない。
ラムダ式をtypid()に入れると訳の分からない文字列が返ってくる。
- typeidに寿命はない
- functionとautoは同じではない。
functionの方がメモリ的にオーバーヘッドが生じる
- []なにもキャプチャしないラムダ式は関数ポインタに代入できる。
Cのコールバックをラムダで書くこともできる。
項目5¶
- autoで宣言した変数は必ず初期化される
初期化したくない場合はautoは使えない
お悩み雑談室¶
- ASSERTに副作用のある関数が含まれていることを検知する方法はある?
→難しい
- pure attributeが提案中
- 副作用のあることをやっていたら怒り出す。でも引数に副作用がある場合は検知できない…