14/08/17 23:26:46.65 3BRjkNZj
charと竹中直人は兄弟だと思っていた1977年の春。
294:デフォルトの名無しさん
14/08/18 17:23:56.00 ENGcdXzN
std::regexが思っていたより遅いんですが、より速い正規表現での検索を利用したい場合には何を使うといいですか?
grepソフトの検索はすごく速いので、正規表現のコストがこんなに高いとは思ってなかった
295:デフォルトの名無しさん
14/08/18 17:26:46.65 BFPWuSMs
最適化入れてないとかデバッグモードで実行してるとかそういう話じゃないの
296:デフォルトの名無しさん
14/08/18 17:42:45.77 0GH1txVb
何百回も呼ぶような場合はキャッシュというかコンパイルすべきかも
regcomp()
297:デフォルトの名無しさん
14/08/18 18:16:45.57 ENGcdXzN
Releaseモードにしたら劇的に速くなった
コンパイルもやってみます
298:デフォルトの名無しさん
14/08/18 21:02:44.92 0GH1txVb
いや、解決したならやらんでいい
299:デフォルトの名無しさん
14/08/18 22:01:41.52 uDUM2zni
>regcomp()
んなもんは無い。
>コンパイルすべきかも
コンパイルするのが>>294に書かれてるstd::regexじゃねーの
300:デフォルトの名無しさん
14/08/19 07:36:05.01 tg7i16ue
>>299
> >regcomp()
> んなもんは無い。
ググレカス
301:デフォルトの名無しさん
14/08/19 12:02:47.11 F3IU7kyP
>>294の質問をしたものだけど標準ライブラリのisupperが遅かったので、
代わりにwchar_tをintにキャストして、0x41~0x5Aの範囲にあるかを調べる関数を作ったらだいぶ速くなりました
これだけで大文字アルファベットを漏れなく拾えるかな?
isupperが遅い理由はファセットがどーたらとあったけど、要するにすべての文字コードに対応する作業で遅い?
302:デフォルトの名無しさん
14/08/19 12:32:08.96 qv1p14qX
正規表現の話で無くなってる。
あと文字コードによっては、英文字と2バイト長以上の文字に重複部分あるかもしれない。
303:デフォルトの名無しさん
14/08/19 12:37:35.60 F3IU7kyP
文字列でなく1文字の判定をする部分があって、そこにまで正規表現を使うことはないだろうとisupperも試してみた結果です
日本でUnicode使う分には大丈夫そうかな
304:デフォルトの名無しさん
14/08/19 20:41:30.24 Mliou7o7
>>301
ctype.hのisupper()の実装は、配列を引いてand演算するぐらいだから速いと思うけど
305:デフォルトの名無しさん
14/08/19 21:33:22.76 APzI7Yv4
>>304
?
306:デフォルトの名無しさん
14/08/20 16:13:47.13 vZ4195p+
列挙体にマイナスの値は許されていますか?
307:デフォルトの名無しさん
14/08/20 16:24:48.87 lf2AdZUe
>>306
許されてます。
308:デフォルトの名無しさん
14/08/20 17:06:17.01 cYiGvIKn
enum EnumDayo : unsigned long {
AAAA,
BBBB,
CCCC,
};
もおk
309:デフォルトの名無しさん
14/08/20 19:26:51.17 YTuxoJAp
staticなメンバ関数内(TimerProcとか)でthisポインタを使うためにSetWindowLongPtr使うってあるけど
thisポインタを保持するstaticなメンバ関数(例えばSaveThis())をTimerProcで呼んでThisポインタ取得でもok?
310:デフォルトの名無しさん
14/08/20 19:44:36.47 lf2AdZUe
>>309
そこまでするならシンクルトンにしなよ
311:デフォルトの名無しさん
14/08/20 20:24:01.41 YTuxoJAp
調べてみたらそのまんまだったありがとう
312:デフォルトの名無しさん
14/08/20 21:28:31.99 TfPzovZL
いい加減なやり方を教えるなよ
スレッドなりタイマーなり
thisを渡せるように設計されてるだろ
313:デフォルトの名無しさん
14/08/20 21:49:29.16 G+JA3SG/
windows の話だとして スレッドなら this を渡す機構あり
タイマーは window proc/dialog proc の一部分でしかなく、そのインターフェース上には無い
が、渡ってくる window handle や dialog param に this を持ち越す機構がある