/ 最近 .rdf 追記 編集 設定 本棚

脳log[20170203]



2017年02月03日 (金) [C++] 全然知らないことばっかりだけど、最初に目にとまったのがこれ。「C++1z タプルを展開して関数呼び出しするapply関数」(C++1zの言語拡張まとめ - Faith and Brave - C++で遊ぼう)■つまり、引数リストがオブジェクトになり、プログラムから操作可能な対象になるということ。ごく最近のことだけどこれ(BugReport/211 正規表現キーワードで dll がエラーを返すと落ちる)に関連してソースを見たときに、BMatchという APIと BMatchExという拡張された APIが目に入って、引数がひとつだけ追加されているという違いがあるんだけど、それがために2つの APIを呼び分けるためにはソースコード上で if や条件演算子を使って、ベタに呼び出しコードを書いて並べなければいけなかったりする。そういう分岐を、局所化してまとめたり外部に追い出したりできるのが嬉しい。■もうひとつしょうもないことに目がとまった。「非推奨だったbool型に対するインクリメント演算子を削除」未初期化の bool変数をインクリメントすると必ず trueになるっていうの、2か月前(20161214)にパッチを読むにあたって(パッチの内容とは関係ないけど)初めて知ったんだけど、使えなくなるのか。使わないけど。■タプルと applyに戻る。「C++14で追加されたコンパイル時整数シーケンスを使用した最初の標準ライブラリ実装になります」 コンパイル時? 整数? やっぱり bindしかないの?■整数型と対比されるものがなんなのかわかっていない。だって例では std::stringを含むタプルを渡してるもの。