謎's キッチン

謎のひとりごと。Amazon欲しい物リストはこちら: https://www.amazon.co.jp/hz/wishlist/ls/CCPOV7C6JTD2

連載

多段replaceの文字列mixinを使った高速化(3)

次に、実装していきます。まずは、引数の制限を追加します。 string multiReplace(repstrs...)(string s){ /*static */assert(~repstrs.length & 1, "invalid repstrs.length"); mixin(genMultiReplaceCode(s.stringof, [repstrs])); } バグでstatic assert…

多段replaceの文字列mixinを使った高速化(2)

まず雛形とテストケースを作ります。名前はreplace.dとします。コンパイル及び実行はrdmd -unittest replace.dで行います。ちなみにこのテストケースはまだ抜けが多いということを覚えておいてください。 module replace; import std.stdio; /* * multiRepla…

多段replaceの文字列mixinを使った高速化(1)

.replace("",">")がうまく最適化される世の中なんて無い。最適化を研究してけばできるのだろうけど、個人的にどのコンパイラも文字列まわりの最適化の実装は遅れてる印象がある。というかあまり聞いたこと無い。ということで黒魔術っぽいmixinで解決しましょ…