2014-06-01から1ヶ月間の記事一覧

ドワンゴC++勉強会 #1

ドワンゴC++勉強会 #1 に参加しました。 メインセッション、LTセッション共に面白い話が聞けて非常に良かったです。 自分もconstexpr idiomsという題でLTさせて頂きました。 index_tuple、パラメータパックの分割、分割統治、型のmapなどこれまでここに書い…

ここ最近おもしろかったもの

面白いアイデア、優れた実装がタイムラインに刹那的に埋没していくのは勿体無いこと。 新しいtype_traits案。とりあえずremove実装 [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ http://t.co/KLZ6TBnw6L— プププランドのプリンス RiSK (@sscrisk) June 14, 2014 [Wandbox]…

overloaded_functionの再帰深度を抑えた

高さ1のN分木の形ではなく、高さO(logN)の二分木の形に多重継承することで、usingがパック展開で書けない問題を回避しつつ、再帰深度をO(logN)に抑えました。関数の引数ではなく多重継承に適用しただけで、発想としては前回記事と同じです。type_tupleの要素…

C++11 constexprでマージソート

constexprでのN引数関数の実装の改良( http://fimbul.hateblo.jp/entry/2014/06/03/194207 )にてパラメータパックを二分割し、分割統治法を適用する実装を見出し、C++11 constexprでマージソートが現実味を帯びてきたため早速実装に挑戦した。 結果、gcc, cl…

constexprでのN引数関数の実装の改良

愚直に線形再帰して1つずつ処理していくとやはり再帰深度が問題になる。 分割統治法を用いることで実装を改良することが出来る。 tuple_elementでN番目の型を対数オーダーで取り出す際に用いた考え方の応用でN/2までのindex_tupleを上手に使うと引数のパック…