C++相談室 part137
: デフォルトの名無しさん [sage] 2018/07/14(土) 17:53:02.14:FOAGvAbs 次スレを立てる時は本文の1行目に以下を追加して下さい。 !extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part135 ttps://mevius.5ch.net/test/read.cgi/tech/1522495206/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.102【環境依存OK】 ttp://mevius.5ch.net/test/read.cgi/tech/1509780815/ ■長いソースを貼るときはここへ。■ ttp://codepad.org/ ttps://ideone.com/ [C++ FAQ] ttps://isocpp.org/wiki/faq/ ttp://www.bohyoh.com/CandCPP/FAQ/ (日本語) ----- テンプレ ここまで ----- VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured : デフォルトの名無しさん [sage] 2018/07/14(土) 17:55:20.65:FOAGvAbs スレ作ってみましたが、これ設定間違ってますか? ワッチョイほにゃららが出てきてない。 : デフォルトの名無しさん [sage] 2018/07/14(土) 18:42:45.47:p9pW3bxe 乙 スレの立て方は一番上に書いてある。 前スレや関連スレへのリンクも間違ってるぞ。 : デフォルトの名無しさん [sage] 2018/07/14(土) 18:59:13.88:tzAF1ivs ヘタクソかよ : デフォルトの名無しさん [sage] 2018/07/14(土) 20:33:07.04 スレ立て苦手か? : デフォルトの名無しさん [sage] 2018/07/14(土) 20:48:45.99:6fifTYMf 乙 ume : デフォルトの名無しさん [sage] 2018/07/14(土) 21:34:02.24:xV7EJA5w 前スレの 1N2GRIlb0 ディスクキャッシュに入ってるってずいぶん前からわかってたのに 何でムダな作業をやらせたの? : デフォルトの名無しさん [] 2018/07/14(土) 21:38:31.07:1N2GRIlb このスレの知恵遅れたちが どんだけ頭悪いのかよおく分かっただろ 同じ計算機で2秒で終わるような読みこみ処理で 数十秒かかるとかいってたワケだからな 相当オツムが弱い このスレは知恵遅れしかいない : デフォルトの名無しさん [] 2018/07/14(土) 21:41:09.27:1N2GRIlb いまになって 分かってたとかいいだしてるしな ディスク読む時間に知ったかぶって調子こいてた知恵遅れは どこいったの? : デフォルトの名無しさん [sage] 2018/07/14(土) 21:42:37.85:xV7EJA5w ん? 何度も指摘してたけど : デフォルトの名無しさん [] 2018/07/14(土) 21:43:13.23:1N2GRIlb 嘘コケ ハゲ 知恵遅れは前のスレ読んで出直してこいや : デフォルトの名無しさん [] 2018/07/14(土) 21:45:09.81:1N2GRIlb ハードディスクの内側読みこんで読みこみ時間がどうとかいってた バカいる? : デフォルトの名無しさん [sage] 2018/07/14(土) 21:45:30.57:xV7EJA5w 測らせるならキャッシュに無い状態にしないとアホだろ : デフォルトの名無しさん [sage] 2018/07/14(土) 21:46:18.02:xV7EJA5w はじめはキャッシュに入って無いんだから : デフォルトの名無しさん [] 2018/07/14(土) 21:46:29.73:1N2GRIlb むしろなバカが指南した方法やコードでは キャッシュのっかても数十秒かかってたってことだぞ : デフォルトの名無しさん [] 2018/07/14(土) 21:48:09.38:1N2GRIlb このスレで教えを乞うてるヤツは 何度もデバッグで走らせてるハズのに 知恵遅れの方法やコード数十秒かかるってことだ オレのは2秒かからない 知恵遅れは息してる? : デフォルトの名無しさん [sage] 2018/07/14(土) 21:48:37.29:xV7EJA5w 測定した結果は fgetsの17秒とreadの1〜2秒しか無い 普通に読むだけで数十秒なんて測定結果は無い : デフォルトの名無しさん [] 2018/07/14(土) 21:49:17.53:1N2GRIlb 読み方次第で差は歴然と出る オレの方法は最適な方法だからな : デフォルトの名無しさん [sage] 2018/07/14(土) 21:50:16.06:xV7EJA5w fgetsは速いとか言ってなかった? 今遅いことが証明されてるのはfgetsだけ : デフォルトの名無しさん [] 2018/07/14(土) 21:50:39.19:1N2GRIlb やっぱり知恵遅れはなにも分かってないわ まず自分が呼んでる関数がどんな動作してるか分かってないからな : デフォルトの名無しさん [sage] 2018/07/14(土) 21:51:14.96:xV7EJA5w 何の工夫もないただのreadで2秒なら、 他の方法も読むだけなら2秒 : デフォルトの名無しさん [] 2018/07/14(土) 21:51:37.65:1N2GRIlb やっぱりこのスレは 相当な知恵遅れしかいない CもC++も何も分かってない それ以前の問題 : デフォルトの名無しさん [] 2018/07/14(土) 21:53:57.67:1N2GRIlb 測定結果ででてるからな 相当な速度で速く読みこみたいのに標準関数のファイルポインタ使う知恵遅れなんか まずいない ファイルポインタ使う標準関数は このスレにいる知恵遅れにでも簡単に使えるように openやread使って使いやすく作ってあるだけだからな : デフォルトの名無しさん [sage] 2018/07/14(土) 21:54:36.27:xV7EJA5w fgetsが速いとか言ってたアホが readとfreadの差を強調する オーバーヘッドのオーダーは1 読み込みバッファが常識的なサイズであれば無視できる fgetsのオーバーヘッドのオーダーはn バッファサイズによらずオーバーヘッドは無視できない : デフォルトの名無しさん [] 2018/07/14(土) 21:55:42.62:1N2GRIlb まずfreadもバッファもってるのすら分かってないからな : デフォルトの名無しさん [sage] 2018/07/14(土) 21:56:36.36:xV7EJA5w freadで測定させれば証明出来るが で、 もともと測りたかったディスクアクセスの時間は? まさかキャッシュに入った状態が普通と考えてるわけではあるまい : デフォルトの名無しさん [] 2018/07/14(土) 21:56:51.40:1N2GRIlb ファイルポインタがもってるバッファから いちいちこっちのバッファにコピーしてんのに まずその程度のことすら分かってない : デフォルトの名無しさん [] 2018/07/14(土) 21:57:27.49:1N2GRIlb 相当頭が悪いのが 知ったかぶってるのは分かる : デフォルトの名無しさん [sage] 2018/07/14(土) 21:58:58.41:xV7EJA5w 測って見ればわかるって で肝心の解析コードはどうした? 糞遅いコードを自信満々にあげてたけど : デフォルトの名無しさん [] 2018/07/14(土) 22:00:01.80:1N2GRIlb クソ遅い? オレのコードを動かして速度測定したの? オレより10倍以上低速に作る才能がある知恵遅れのくせに : デフォルトの名無しさん [sage] 2018/07/14(土) 22:03:31.04:xV7EJA5w 糞遅い 間違い無い お前の環境で15GBのテキストを作って解析時間を測ってみな : デフォルトの名無しさん [] 2018/07/14(土) 22:10:21.76:1N2GRIlb とりあえず 知恵遅れはほっといて テストデータをジェネレートするコードを 前スレの内容読んでテキトーに作った ttps://ideone.com/cPZvWL baka_genでコンパイルすれば大量のテストデータを作ってくれる優れものだ ※ 指定ギガバイト数越えたら、1つのセクション書ききったら停止する 使い方 Usage:baka_gen <fileparh> <GB size> 出力されてる形式に問題がないかみといてくれ 形式が分からないと解析処理を作りようがない 明日からこのテストデータを解析する処理を作る : デフォルトの名無しさん [] 2018/07/14(土) 22:11:40.89:1N2GRIlb まず知恵億れはなにと比較して遅いとか書かないからな オレは知恵遅れが書いたコードより少なくとも10倍以上速い処理を書いてる : ◆QZaw55cn4c [sage] 2018/07/14(土) 22:17:02.80:CBXc6tpD なんか error がいっぱい出ているようだが… : デフォルトの名無しさん [sage] 2018/07/14(土) 22:17:16.55:xV7EJA5w 15GBのテキストの解析で8.6秒 これを越えればいい : デフォルトの名無しさん [] 2018/07/14(土) 22:17:46.97:1N2GRIlb なんのエラー書けよ エラーとかいわれても分かるワケがないだろ ヴォケ : デフォルトの名無しさん [] 2018/07/14(土) 22:18:22.90:1N2GRIlb で、そのコードはったのかオマエは : デフォルトの名無しさん [sage] 2018/07/14(土) 22:19:29.69:xV7EJA5w fgets 17秒 これは俺じゃない キャッシュに入ったデータの読み込み時間 と ディスクからの読み込み時間 とを比べて10倍とか言ってるの? : ◆QZaw55cn4c [sage] 2018/07/14(土) 22:19:38.05:CBXc6tpD ttps://ideone.com/cPZvWL の下の方にいっぱい書いてあるぞ?本当にコンパイルの通るコードなのか? : デフォルトの名無しさん [] 2018/07/14(土) 22:20:14.44:1N2GRIlb 8.6秒とかテキトーなことなら なんとでもいえるからな どんなファイル読んで どんなソース作ったわけ? ファイル形式ちゃんとわかってんの : デフォルトの名無しさん [] 2018/07/14(土) 22:22:08.48:1N2GRIlb 適切なインクルードファイルを上に書けば 間違いなく通る ココで教えを乞うているバカですら それぐらいのことやってる オマエはそれ未満だ : デフォルトの名無しさん [sage] 2018/07/14(土) 22:26:38.36:xV7EJA5w テキストのほとんどが数値の行 10%の割合でx, yの行 セクションは全部で100個くらい 数値は乱数で作成した 実際の分布を考えて、 桁数によって出現率を変えてある 異常データでも不正アクセスしない 文字コードはS-JIS 改行はLFのみ : ◆QZaw55cn4c [sage] 2018/07/14(土) 22:27:16.82:CBXc6tpD 「unknown type name ‘size_t’」がインクルードファイルで直る問題なのか? ideone に怒られないコードが書けないのか? : デフォルトの名無しさん [sage] 2018/07/14(土) 22:29:41.45:xV7EJA5w 数値は符号付き32bitに収まる値で printf("%d", n); で出力される文字列と同じ書式 : デフォルトの名無しさん [] 2018/07/14(土) 22:31:59.85:1N2GRIlb ttps://ideone.com/hi8bYd ヘッダファイルを適切にインクルードしたら 普通にエラーメッセージ消えたぞ バカはなにをいってるのか意味が分からないワケ : デフォルトの名無しさん [] 2018/07/14(土) 22:33:55.81:1N2GRIlb なんか知恵遅れがバカみたいなレスをブツブツ書いてるし ごちゃごちゃいってないでコードあげたらどうだ : デフォルトの名無しさん [sage] 2018/07/14(土) 22:35:19.66:xV7EJA5w シングルスレッド、順番に全文字スキャンの処理で 処理時間は1文字平均約2クロック (Haswell) 最適化的にはこれが出発点 さらに高速化する価値がある処理であれば マルチスレッド,GPU, AVX ... まだまだ高速化の余地はある : デフォルトの名無しさん [] 2018/07/14(土) 22:36:12.81:1N2GRIlb また知恵遅れがテキトーなこといってるしな : デフォルトの名無しさん [sage] 2018/07/14(土) 23:49:17.06:5xFWH4XP 残念ながらクソシンタックスが増えれば増えるほどアホでもテクニカルターム使って アホと思われない活動が可能になって行くんだよ。 : デフォルトの名無しさん [sage] 2018/07/15(日) 00:49:14.70:p2p9fdhp ,45 サンプルデータ作成コードありがとうございます。 実行してみましたが面白いですねこれ。 完成したら数十ギガのデータ作って遊んでみたい。 サンプルデータができて説明しやすくなったので色々補足させていただきます。 ちょっと細かい内容になるので、今あるサンプルデータ作成コードを 使用されても問題ありません。 文字コードはutf8 or euc-jpの両方を想定しています。 ファイルの1行目に下記行が一度だけ出てきます。 // タイトル、倍率(mag)。(この係数を使ってCの数値から割る、正の整数。unsigned int) ::fprintf(fp, "%s %d\x0a", "TITLE_NAME", 2000); 具体的には ttps://ideone.com/hi8bYd の64行目に上記が入ります。 Aのセクション集計値は個数が0のときがある。その時はテキスト行だけで終わり。 0 0 1 Jul〜 TEXT TEXT TEXT TEXT Bのテキスト行は日本語(2byte)が来ることがある。 >つづく : デフォルトの名無しさん [sage] 2018/07/15(日) 00:54:03.20:p2p9fdhp QQ行の説明 QQ subname -1 0 0 1 -21000000 600000 2 →この行が無いファイルもある。 →7,8カラムは1行目の倍率数字で割る(数値行と同じ計算) →3〜6カラムは -1, 0, 1, のいずれか。この4つの組み合わせであとで計算に使うことがある。 1 0 0 1 →TYPE_A 0 1 -1 0 →TYPE_B -1 0 0 -1 →TYPE_C 0 -1 1 0 →TYPE_D -1 0 0 1 →TYPE_E 0 -1 -1 0 →TYPE_F 1 0 0 -1 →TYPE_G 0 1 1 0 →TYPE_H →9カラム目は正の整数。(unsigned int) →下記6つのバリエーションがあります。 QQ subname QQ subname c QQ subname -1 0 0 1 -21000000 600000 QQ subname -1 0 0 1 -21000000 600000 2 QQ subname c -1 0 0 1 -21000000 600000 QQ subname c -1 0 0 1 -21000000 600000 2 ※cはcという文字列固定 ※1つのファイルに存在するのはいずれか1つのフォーマット そして少し複雑なのが、上記QQ行は先頭のQQがなくなってx, y行に存在することがあります。 1つのファイル内でQQ行とx, yの後ろにくるパターンの両方は存在せず、片方が出てきたらもう片方は出てきません。 x, yと同じ行にくる場合のフォーマットもQQ行の規則と同じです。 x 1 234 subname -1 0 0 1 -21000000 600000 2 y 2 234 subname -1 0 0 1 -21000000 600000 2 >つづく : デフォルトの名無しさん [sage] 2018/07/15(日) 00:58:25.78:p2p9fdhp 最後にRR行があります。 これもQQ同様x, yの次の行にあったりなかったりします。 QQとRRが一緒に出てくることは無いと思います。 フォーマットは「RR 正の整数」でQQのようにx,yの後ろに来ることはありません。 x 1 2 RR 3 11 11 11 11 11 11 11 11 ↓QQ、RRが一緒に出てくることは無い。 x 1 2 QQ subname c -1 0 0 1 -21000000 600000 RR 3 ↓これも無い x 1 2 RR 3 >つづく : デフォルトの名無しさん [sage] 2018/07/15(日) 01:02:10.59:p2p9fdhp 参考として、ファイルを読み込んだら下記のt_all_dbのような構造体にすべて保管しようと考えています。 型や名前は最適なものに変更されて問題ありませんし、他に最適な 格納方法があればそれでも問題ありません。 typedef struct __tag_rr_db { unsigned int rr_num; } t_rr_db; typedef struct __tag_qq_db { char qq_name; //subname bool is_c; //cがあるかないか QQ_TYPE qq_type; float numbers; // 2つの数字のリスト(vector?) unsigned int count; //最後尾の数字 } t_qq_db; typedef struct __tag_elem_db { ELEM_TYPE elem_type; // x or y unsigned int no; // x or yの番号 unsigned int num_line_count; t_qq_db qq_db; t_rr_db rr_db; numbers; //数値行のリスト(vector?) } t_elem_db; typedef struct __tag_section_db { unsigned char name; unsigned int num_1; unsigned int num_2; unsigned int text_line_count; texts; //テキスト行(vector?) t_elem_db elem_dbs; //elem_dbのリスト } t_section_db; typedef struct __tag_all_db { title_name; mag; section_dbs; //section_dbのリスト } t_all_db; : デフォルトの名無しさん [sage] 2018/07/15(日) 01:59:33.70:lbsq5rUe そろそろ「ぼくちんのログ解析ソフトを名無しどもに作らせるスレ」でも立ててそっちでやってくれないか : デフォルトの名無しさん [sage] 2018/07/15(日) 02:07:19.29:eimWnm2X いい加減にしろよお前 土方コーダに発注する気分でてめえのクソログの仕様ドヤ顔で書いてんじゃねえよ ありったけスレ私物化して相談しまくったんだからそろそろ自分の手と頭を動かしたらどうだ : デフォルトの名無しさん [sage] 2018/07/15(日) 02:58:06.76:F1eG7opL ID:p2p9fdhp さん、別のスレに移動を願います。 : デフォルトの名無しさん [sage] 2018/07/15(日) 04:38:00.97:deogSIs/ ume進行だと思えば悪くない 続けて ていうか徹底的にやれ ていうかディスクキャッシュのサイズと読込サイズの理想的な関係は微妙なもんじゃわ; HDD周りのキャッシュには次の3階層ある (1) 1トラック内のランダムアクセスではHDDだと平均的に1/2回転分の時間待たされるから、 HDD側であらかじめ1トラック分はキャッシュする (2) シークでは今日日のCPUの速度からみて地質年代レヴェルの遅延が生じるから、 OSにとって都合の良いサイズ(ページサイズとか)を単位とする単位でキャッシュされる (3) で、その上に標準入出力のバッファがある(setvbuf()で調整できるのはこれ SSDだと(1)が書き換え回数最適化絡みのキャッシュに置き換わるが、(2)や(3)は同じ 高速化には(3)のバッファリングやアプリ側の処理というものと、(2)と(1)のキャッシングをいかに並行動作させるかがキモすぐる fgets()とfread()の速度差は、単一ファイルをシーケンシャルアクセスするときは言うほど開きはない(上のしくみから導ける 一方、複数ファイルを交互にアクセスしたりHDDのまちまちな場所をランダムアクセスしだすとたちまち顕在化する(これも上のしくみから導ける 単一ファイルの読込であっても、アプリがファイルの一部を読み込んで考え込む、の繰り返しなパターンならば アプリ側のマルチスレッド化が有効な「こともある」 今回は該当しないと思うが、、 : デフォルトの名無しさん [sage] 2018/07/15(日) 05:01:06.13:EFpmUWpC てな議論はベアメタルでやるならともかく 依存処理系では特定OSの話になるし 抽象化されたハードウエアじゃ特性を仮定すること自体ナンセンス : デフォルトの名無しさん [sage] 2018/07/15(日) 06:33:31.92:F1eG7opL 申し訳ありませんが、C++と関係がない話は、他のスレでやってください。よろしくお願いします。 お気を悪くなされませんよう。 : デフォルトの名無しさん [] 2018/07/15(日) 11:31:30.36:Y0/Ay92k unsigned int l = -1; cout << l << endl; cout << (signed int)l << endl; ⇒ 4294967295 -1 int m = 4294967295; cout << m << endl; unsigned int n = 4294967295; cout << n << endl; ⇒ -1 4294967295 : デフォルトの名無しさん [] 2018/07/15(日) 11:32:24.73:Y0/Ay92k unsigned int l = -1; int m = 4294967295; がエラーにならないのはなぜでしょうか? : デフォルトの名無しさん [] 2018/07/15(日) 11:45:15.02:Y0/Ay92k ttp://codepad.org/4odTQaly ↑は、ロベールの本に載っているコードです。 friend class ValueFactory; //friend Value* ValueFactory::New(int n) const; ↑これを friend class ValueFactory; //friend Value* ValueFactory::New(int n) const; と変更するとなぜコンパイルエラーになってしまうのでしょうか? ロベールの本には、「不完全型」というのを利用する必要があると書いてあります。 friend class ValueFactory; ↑これはなぜ「不完全型」を使わなくてもOKなのでしょうか? : デフォルトの名無しさん [sage] 2018/07/15(日) 11:51:25.65:kDEFN2k+ 解釈が間違ってる ValueFactoryの実体を作って返すためにはすでに定義が分かってないといけない(完全型でないといけない 対してfriend宣言は名前だけ分かってればいい(定義がまだ無い(=不完全型)でいい というだけの話 : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/07/15(日) 11:59:00.99:HERu1+Fl 暗黙のキャストのせい。 整数リテラルに型を表す接尾辞がつかない場合は原則として int として解釈されるけど、 int の範囲より大きい場合はそれを表せる最低限の整数型として解釈されるんだったはず。 整数型の初期化 (代入) の右辺に現れた値が左辺の型で表せるときはそのままの値であることが保証されるが、 そうでないときは一定の規則に従って縮小される。 縮小の仕方は、 左辺が unsigned のときは、左辺の型が表せる最大値に 1 足した数で右辺の modulo を取った値が左辺に入る。 左辺が signed のときは未定義。 なので、 (int が 32 ビットの大きさをもつとき) unsigned int l = -1; が 4294967295 になるのは規格通りだが、 int m = 4294967295; が -1 になるのは保証されない。 規格を確認せずに記憶で書いてるので、 もし間違ってたら誰か指摘よろー。 : デフォルトの名無しさん [sage] 2018/07/15(日) 12:01:48.69:WB6myqsz c++で文字列のバイナリ読み書きで質問があります vector<string> moji = {"aaaaaa", "bbbbbb", "ccccccccc"}; ofstream ofs2("mojibin.bin", std::ios_base::out | std::ios_base::binary); for (int i = 0; i <= 2; i++) { ofs2.write(moji[i].c_str(), strlen(moji[i].c_str())); } 書き込みは、エラー無くできるのですが ifstream ifs2("mojibin.bin", std::ios_base::out | std::ios_base::binary); for (int i = 0; i <= 2; i++) { ifs2.read((char*)&moji[i], strlen(moji[i].c_str())); cout << "(" << i << ")" << moji[i] << " "; } 読み込みは、読み込んで表示も出ますが 何かエラーが出ます どうしてでしょうか : デフォルトの名無しさん [sage] 2018/07/15(日) 12:06:41.50:lbsq5rUe 書き込んだものに区切り入れてないけどそれでいいの? : デフォルトの名無しさん [] 2018/07/15(日) 12:11:00.69:Y0/Ay92k ありがとうございます。 ソースコード全体をコンパイラがみれば定義も分かるのに、なぜコンパイルエラーにするのでしょうか? ありがとうございました。 : デフォルトの名無しさん [sage] 2018/07/15(日) 12:12:20.49:Y0/Ay92k 例えば、 Python では、相互に参照していてもOKです。 : デフォルトの名無しさん [] 2018/07/15(日) 12:15:07.36:Y0/Ay92k コンパイラーについての知識がないと理解しにくい部分でしょうか? : デフォルトの名無しさん [sage] 2018/07/15(日) 12:15:22.56:WB6myqsz なにか、ヌル文字を読み込もうとしてるエラーのようで なるほど、区切り文字というのを入れて getlineとかを使用して読み込んでいくべきなのかな・・・・ : デフォルトの名無しさん [sage] 2018/07/15(日) 12:50:13.08:WB6myqsz とりあえず、区切り入れてgetlineで一行ずつ読み込めました vector<string> moji = {"aaaaaa", "bbbbbb", "ccccccccc"}; ofstream ofs2("mojibin.bin", std::ios_base::out | std::ios_base::binary); for (int i = 0; i <= 2; i++) { moji[i] += "\n"; ofs2.write(moji[i].c_str(), strlen(moji[i].c_str())); } ifstream ifs2("mojibin.bin", std::ios_base::out | std::ios_base::binary); string temp; int i = 0; while (getline(ifs2, temp, '\n')) { cout << "(" << i << ")" << temp << " "; i++; } これでまたvector<string>に入れたらいいか c++はHSPとかと違って難しいですね : デフォルトの名無しさん [sage] 2018/07/15(日) 13:00:44.43:oGr67yTf &moji[i]はstringインスタンスの格納先アドレスであって、中に格納されている文字列データの先頭ではないよ。 無理やりやるなら ifs2.read(const_cast<char*>(&moji[i].data()), moji[i].length()); とかすれば動くと思うけど 文字列以外も書き込みだしたら\nと競合するけどいいの? getline使うならbinaryモードは使うべきでないと思うし、そもそも文字列しか書き込まないならbinayモードにする必要ある? : デフォルトの名無しさん [sage] 2018/07/15(日) 13:02:49.96:oGr67yTf あとエラー出力は正確に書いてくれないと、コード全部読まないといけないからしんどいです… : デフォルトの名無しさん [sage] 2018/07/15(日) 13:18:02.66:lbsq5rUe C++はそういうコンパイルの仕方しないから cppごとにオブジェクトファイル(クラスのインスタンスとしてのオブジェクトとかとは別の意味)というのを作ってから オブジェクトファイル同士のリンクという作業をして目的の実行バイナリを作る オブジェクトファイルは自分自身で完結してないといけないので、 「ValueFactoryとかいうクラスのポインタ」「ValueFactoryとかいうクラスがfriendだという情報」は持つことが出来るけど (別のファイルがValueFactoryの実体を持ってると期待して) ValueFactoryの実体作れとか実体使ってなんかやれ(そういう実行コードを保持しろ)と言われたら困ってしまうってこと : デフォルトの名無しさん [sage] 2018/07/15(日) 13:19:42.19:WB6myqsz 数字の配列はバイナリでエラー無いので やはり、文字列はテキストに出力したほうがいいんかな 今度からはそうします すみませんでした : デフォルトの名無しさん [sage] 2018/07/15(日) 13:42:15.67:oGr67yTf もちろんバイナリ形式でもいいのだけど、その場合は文字列を固定長にするとか、tlv形式で作ってみては? ttps://en.m.wikipedia.org/wiki/Type-length-value : デフォルトの名無しさん [sage] 2018/07/15(日) 14:56:48.40:p2p9fdhp 大規模ファイルの読み込みについて相談しているものです。 以下調査結果です。 ファイルは上記で13GBのファイル生成したものを使用 ttps://ideone.com/hi8bYd @下記コードの結果 ttps://ideone.com/e9iA5m 512,15 →15秒 1024,7 →7秒 2048,5 →5秒 4096,3 →3秒 8192,2 →2秒 >つづく : デフォルトの名無しさん [sage] 2018/07/15(日) 14:58:34.48:p2p9fdhp A作成した下記コードでテスト。 →約2秒 ttps://ideone.com/1YhaLR (整理できておらず、かなりぐちゃぐちゃなコードですが。。) 内容:freadのみ B上記Aで、「#define READ_MODE 1」で実行 →約25秒 内容:改行単位にするため、前スレ962の下記Cを対応したつもりのもの A. 1行全体が連続してバッファに存在しなくてもいい作りにする B. リングバッファ C. fseekでファイルポインタを戻してから読み込む D. あまりをmemcpyでバッファの先頭にコピーしてから読み込む E. ほか C上記Aで、「#define READ_MODE 2」で実行 →約60秒 内容:上記B+解析 Dfgetsのみ →約15秒 if((fp=fopen(file_path, "r"))==NULL){ printf("ファイルを開けません。%s",file_path); return 0; } char tdata[10000]; char* data = tdata; while( fgets(data,10000,fp) != NULL ){ data; } 上記Aが約2秒なのにBの改行単位のケアで25秒に増加しているので、 まずここの作りがおかしいんだろうなとは思いますが、 何がおかしいのかが、まだわかっていません。 : デフォルトの名無しさん [] 2018/07/15(日) 16:27:56.77:Y0/Ay92k ありがとうございました。 : デフォルトの名無しさん [] 2018/07/15(日) 17:27:08.76:1ys/w/8R fseekをつかうのなんか絶対ダメだ fseekされることで標準関数がFILEポインタでもってるバッファも めんどいことになってるのが容易に想像がつく そしてさらにlseekもシステムコールも呼ばれる 標準関数の実装のされかたにもよるが 大きな性能劣化は避けられない Dの方法でひたすら シ リ ア ル に読まないと遅くなるのは当然 そんな標準関数でやってるようなことを、 こっち側でやるならそもそも標準関数使う意味がない 普通にopen、readでこっちが渡したメモリにそのまま読みこむほうがいい まずFILEポインタ使ってfreadしか使わないなら、はっきりいってfread使うメリットは まったくない 関係ないようで関係ある話だが キャッシュがきいてない状態ではposix_fadviceを呼んでおくと シ リ ア ル に大きなファイルを読み込むときには、計算機の状態によっては 劇的に改善することがある : デフォルトの名無しさん [] 2018/07/15(日) 17:36:56.10:1ys/w/8R ちなみにファイルはUNIXでは ブロックデバイスだからな そのブロックデバイスをセクタ単位で 効率的に読み込むためにはどうすればいいか あとはもう分かるな このスレにいるサル並の知能しかないようなヤツラ以外なら わかるハズだからな : デフォルトの名無しさん [] 2018/07/15(日) 18:02:19.58:1ys/w/8R まずストレージというハードウェアが OSでどうやって抽象化されてるか わかってないからな こんな頭悪いヤツラが抽象化とかなんとかいってるワケ きっとな前スレのソースの注釈で書いたwindowsで、キャッシュなしでReadFile呼ぶ時は セクタの倍数単位でないと使えないという意味も分かってない ともかくこのスレに居ついてるヤツラは頭悪い 基本的なことが分かってないからな まずなバカはこのスレで相談することが バカな行為であることに気付かないといけない バカななに聞いてもムダ 的外れなコタエしか返ってこない : デフォルトの名無しさん [sage] 2018/07/15(日) 18:16:38.79:F1eG7opL > FILEポインタ使ってfreadしか使わないなら、はっきりいってfread使うメリットはまったくない メリットはあるでしょ。システムコールのreadやReadFile()と違い、 FILE*を使ったfread()はアラインメントを無視した小さいバッファサイズで読み込んでも全体としての速度低下が起きにくい恩恵がある。 : デフォルトの名無しさん [sage] 2018/07/15(日) 19:07:48.62:lbsq5rUe 13Gログ解析野郎と半角野郎が毎度毎度必ずコンビで出てくるのは何なんだろうなー おっかしいなー 「ぼくちんのログ解析ソフトをぼくちんが考えた最強の名無しが作るスレ」でやってどうぞ : デフォルトの名無しさん [] 2018/07/15(日) 20:22:05.00:1ys/w/8R 低学歴で知能低いのが答えられる質問の範囲なんかたかがしれてる 知恵遅れでも回答できる質問に限定される こういうヤツラはYahoo知恵遅れがお似合い もうね2ちゃんねるのクオリティーも著しく低下したもんだわ 著しくレベルの低い質問なら回答できるワケだからな 情報として保存される価値すらない ゴミ質問とゴミ回答 : デフォルトの名無しさん [] 2018/07/15(日) 20:27:33.82:1ys/w/8R 昔ならググレカスでおわるような質問を どやがおで低学歴知恵遅れが回答するスレがココだからな 低学歴知恵遅れが活躍できる場所はココしかない オレのナワバリを荒らすなと低学歴知恵遅れが 主張している : デフォルトの名無しさん [sage] 2018/07/15(日) 20:39:19.46:oGr67yTf あぼーん設定推奨 [ヲ-゚] : デフォルトの名無しさん [] 2018/07/15(日) 22:46:04.59:GtfCPRC1 POSIXの制限に起因するパフォーマンス低下を回避するためのドライバをさっき見たばかりだな。 ハイパフォーマンスの世界にはそういうのもあるんだな。 : デフォルトの名無しさん [sage] 2018/07/15(日) 23:08:51.14:ugn7dRUi 解析のコード書けたの? お前が全部作ってアップすればそれで終わる : デフォルトの名無しさん [] 2018/07/16(月) 01:21:00.28:6luw5g3K とりあえずファイルすべての字句解析と 最低限のデータ取得できるとこまではできた ※ あとはデータを格納するだけ テストデータのジェネレータを修正した ttps://ideone.com/NWdMmL で、とりあえず作ってみた解析のコードが↓コレ ttps://ideone.com/E6QH2r プリプロセッサにDEBUG_WRITEの定義を追加してやれば データ取得できてることがダンプして確認できる ※ ダンプする場合は、ファイルにリダイレクトするにしても ※ 物凄い時間かかるし、物凄いディスク容量をとるから小さいテストデータでやるほうが ※ とりあえず無難 ものすごい単純なコードプロトタイプになってるから バカでもチョンでも簡単に整理や作りかえができるようにはなってる ※ 処理内容はコードみたまんまのハズだ ※ 同じような処理がひたすら書かれてる ※ QQがなくなればめっちゃコード減るハズ ※ コードのほとんどはQQのムダ処理 : デフォルトの名無しさん [sage] 2018/07/16(月) 01:37:37.27:RYaEyvne うわっ 汚いコード : デフォルトの名無しさん [sage] 2018/07/16(月) 10:44:37.38:526Z5Rhh 15GBのテキスト解析8.6秒のマシンで の時間を計ったら54秒でした。 ファイルアクセスの時間は除いた純粋な解析処理です。 これがプロとアマチュアの差ですか。 まあ54秒でも使えるレベルではあると思うんで これで良いんじゃないですかね? : デフォルトの名無しさん [sage] 2018/07/16(月) 11:29:13.12:80hpbb9v OS のAPI を、直接呼んではいけない。 例えば、1バイト読み込みを千回やれば、千回API が呼ばれる。 ユーザーモードからカーネルモードへの、コンテキストスイッチが千回 一方、バッファリングしている、C のライブラリを使えば、 千バイト1回の読み込みで済む ライブラリが抽象化している。 buffering stream ユーザー → (ライブラリ) → API : デフォルトの名無しさん [sage] 2018/07/16(月) 11:39:40.02:774eW9FT 今回相談しているものです。 ありがとうございます。 まず でAが2秒、Bが25秒の違いを調べました。 のBで実行するため昨日アップした ttps://ideone.com/1YhaLR に 「#define READ_MODE 1」を設定し25秒かかることを確認。 ここから後ろの処理からコメントアウトしていくと、下記行の前後で 25秒から2秒に変わりました。 88行目: data = real_data; real_data(char型)のポインタをdata(char型のポインタ)に代入したつもりだったのですが、 もしかして実体がコピーされているのでしょうか? >つづく : デフォルトの名無しさん [sage] 2018/07/16(月) 11:41:24.00:774eW9FT 続けて のコードを実行してみました。 データ生成の方は、 の最後に説明している、 「1つのファイル内でQQ行とx, yの後ろにくるパターンの両方は存在せず、片方が出てきたらもう片方は出てきません。」 というところで、1つのファイルに両方のフォーマットが生成されていましたが、 両方が読めれていれば特に問題はないと思います。 読み込み用のコードは自分の環境では %"PRIu64" → %" PRIu64 " とスペースを開けないとなぜかエラーになりました。 あとargv[2]がよくわかりませんでしたが実行できたのでとりあえずそのままにしています。 以下結果 ## 1GB time ./a.out aaa_1gb strat... ./a.out aaa_1gb (null) done... ./a.out aaa_1gb (null) 4./a.out aaa_1gb 3.69s user 0.14s system 99% cpu 3.839 total ## 5GB time ./a.out aaa_5gb strat... ./a.out aaa_5gb (null) done... ./a.out aaa_5gb (null) 18./a.out aaa_5gb 17.40s user 0.78s system 99% cpu 18.216 total ## 13GB time ./a.out aaa_13gb strat... ./a.out aaa_13gb (null) done... ./a.out aaa_13gb (null) 47./a.out aaa_13gb 44.99s user 1.73s system 99% cpu 46.781 total みなさんキャッシュの話をされていて、その辺がまだあまり理解できていないのですが、 文字列解析時にはキャッシュから取り出して参照するため時間は増えるということですかね。 : デフォルトの名無しさん [sage] 2018/07/16(月) 11:50:33.56:774eW9FT あと、freadだけで2秒のものに、freadの後にからなず fseek(fp, -10000, SEEK_CUR) を実行してみましたが、 処理時間は2秒で変わりはありませんでした。 これらのことから で書いている 88行目: data = real_data; のせいで2秒から25秒に増加しているようです。 : デフォルトの名無しさん [sage] 2018/07/16(月) 15:13:00.28:774eW9FT 今 のコードを と同じ環境で、readをfreadに変えて実行してみたところ下記になりました。 readとfreadで速度に変わりはなさそうです。 ## 1GB(fread版) ./a.out aaa_1gb strat... ./a.out aaa_1gb (null) done... ./a.out aaa_1gb (null) 4 ## 5GB(fread版) ./a.out aaa_5gb strat... ./a.out aaa_5gb (null) done... ./a.out aaa_5gb (null) 18 ## 13GB(fread版) ./a.out aaa_13gb strat... ./a.out aaa_13gb (null) done... ./a.out aaa_13gb (null) 48 : デフォルトの名無しさん [] 2018/07/16(月) 15:37:46.05:6luw5g3K かわりがないとか んなわけがないからな 先にいっておくが ちなみにオレのコードより おなじところまで解析できる処理を 速い速度で作れるヤツはまずいないからな 作れるもんなら作ってみればいいわ : デフォルトの名無しさん [] 2018/07/16(月) 15:40:29.53:6luw5g3K ちなみにDEBUG_WRITEを定義に追加したら死ぬほど遅いからな ちゃんとDEBUG_WRITEをとって計測してるのかすら怪しい バカが書いたコードより間違いないなく速いハズだからな : デフォルトの名無しさん [sage] 2018/07/16(月) 15:48:01.58:80hpbb9v 同じデータで、2回テストしても、 1回目は、HDD からメモリへ読み込むけど、 2回目は、既にメモリ上にデータが存在するから、HDDから読み込まない。 メモリキャッシュから読むから、HDDの読み込み速度とは違う だから、2回目のテストの前に、 メモリキャッシュをすべて破棄しておいてから、テストをしないといけない : デフォルトの名無しさん [] 2018/07/16(月) 15:49:56.51:6luw5g3K コレで他のより遅いというなら オレはもうバカの相談には二度とのらないし コレ以上のコードは書かない ほぼ限界まで速度が出るようにチューニングしてるハズだからな 評価のしかたが分かってない : デフォルトの名無しさん [sage] 2018/07/16(月) 15:51:18.48:fNWu8+xr : デフォルトの名無しさん [] 2018/07/16(月) 15:51:33.68:6luw5g3K だからコードあげろよ : デフォルトの名無しさん [sage] 2018/07/16(月) 15:52:15.83:fNWu8+xr ザコ : デフォルトの名無しさん [] 2018/07/16(月) 15:52:15.93:6luw5g3K シロウトは口だけだからな クソニートのシロウトが口をはさむ余地なんかない : デフォルトの名無しさん [] 2018/07/16(月) 15:53:09.83:6luw5g3K ザコはオマエだろ クソニートのザコはコードあげずに 何秒とかいってるだけだからな : デフォルトの名無しさん [sage] 2018/07/16(月) 15:55:20.94:fNWu8+xr 数値への変換、何で標準ライブラリ使うのやめたの? 速いんでしょ? www : デフォルトの名無しさん [sage] 2018/07/16(月) 15:55:41.81:fNWu8+xr fgetsも何で使うのやめたの? 速いんでしょ? : デフォルトの名無しさん [] 2018/07/16(月) 15:57:13.10:6luw5g3K 読み込み速度で問題 そしてポインタをひたすらインクリメントだけして ひたすら最小限の参照するだけの処理より速い処理なんか 逆立ちしてもかけるワケがないからな : デフォルトの名無しさん [] 2018/07/16(月) 15:58:16.80:6luw5g3K fgetsはシロウトが使っても概ね良好な結果が約束されてる : デフォルトの名無しさん [sage] 2018/07/16(月) 16:01:19.01:fNWu8+xr だからお前はザコ : デフォルトの名無しさん [] 2018/07/16(月) 16:03:00.33:6luw5g3K クソニートがいきがってるしな オレが書いたコードを超える速度がでるコードを まずあげてみろよ 話はそこからだからな : デフォルトの名無しさん [] 2018/07/16(月) 16:03:52.50:6luw5g3K クソニートはテキトーなことばっかりいって 口だけだからな : デフォルトの名無しさん [sage] 2018/07/16(月) 16:03:56.64:fNWu8+xr 糞コードがなぜ糞か どこで時間がかかるのか それくらい自分で調べよう : デフォルトの名無しさん [] 2018/07/16(月) 16:04:43.29:6luw5g3K だからクソニートはコードあげろよ オレのコードにムダは一切ない : デフォルトの名無しさん [sage] 2018/07/16(月) 16:05:18.19:fNWu8+xr 8.6秒のコードも まだまだ改善の余地があるから : デフォルトの名無しさん [] 2018/07/16(月) 16:05:51.54:6luw5g3K だからクソニートは口だけ8.6秒のコードをあげろよ : デフォルトの名無しさん [sage] 2018/07/16(月) 16:06:30.96:fNWu8+xr まあせいぜい頑張ってね ザコ : デフォルトの名無しさん [] 2018/07/16(月) 16:07:20.43:6luw5g3K オマエはクソニートだからな クソニートはコードの速度の心配をするまえに 自分の心配をしたほうがいい : デフォルトの名無しさん [] 2018/07/16(月) 16:22:48.03:6luw5g3K ttps://ideone.com/e9iA5m g++ -o baka_test $file_name echo 512,`./baka_test $input 512` > baka_result.txt echo 1024,`./baka_test $input 1024` >> baka_result.txt 〜 上記を13GBのファイルで試したら下記結果が出ました。 512,13 1024,7 2048,5 4096,3 8192,2 16384,2 32768,2 65536,2 131072,1 262144,3 524288,2 1048576,2 2097152,2 4194304,2 8388608,2 16777216,3 33554432,2 67108864,3 134217728,3 268435456,3 536870912,3 1073741824,3 バカが試験してシステムコール呼びだしのオーバヘッドの評価なんかすでに評価済 (システムコール呼びだしのオーバヘッドの評価なんか、バッファサイズを変更による推移をみれば簡単に評価できる) : デフォルトの名無しさん [sage] 2018/07/16(月) 16:28:07.89:fNWu8+xr まだキャッシュに入ってる前提でテストしてるの? アホなの? : デフォルトの名無しさん [] 2018/07/16(月) 16:30:26.25:6luw5g3K また低学歴知恵遅れのクソニートがテキトーなこといってるからな キャッシュにのってるなら オレのエレガントなコードを除いたすべてのクソコードも同じキャッシュがのった条件で 試験されてるわ : デフォルトの名無しさん [] 2018/07/16(月) 16:31:48.69:6luw5g3K 低学歴知恵遅れのクソニートってテキトーなこといって なんかいった気になる 社会参加しないクソニートが2ちゃんねるで政治の話をするのと似てる : デフォルトの名無しさん [sage] 2018/07/16(月) 16:31:59.31:fNWu8+xr まず54秒をどうにかしろよ : デフォルトの名無しさん [sage] 2018/07/16(月) 16:33:40.35:fNWu8+xr 1秒〜2秒なんてどうでもいい キャッシュに無い時の読み込み時間 解析時間 これをどうにかしろよ 意味の無い所に時間をかける典型的なアホ : デフォルトの名無しさん [sage] 2018/07/16(月) 16:34:35.04:fNWu8+xr 木を見て森を見ず : デフォルトの名無しさん [sage] 2018/07/16(月) 16:44:07.58:774eW9FT 今 の解析コード見てますがseekを使わずreadで連続して読み込むところがとても参考になります。 こうやって読み込むんですね。 : デフォルトの名無しさん [sage] 2018/07/16(月) 16:54:07.55:fNWu8+xr いろいろとパクってるね : デフォルトの名無しさん [] 2018/07/16(月) 18:00:25.42:6luw5g3K オマエはまずオレのエレガントなコードを参考するまえにな この愚かなコードをどうにかしたほうがいい unsigned char real_data[BUF_SIZE+1]; size = fread( &real_data, sizeof(real_data[0]), BUF_SIZE, fp); data = real_data; 遅いどころかそもそもちゃんと動作すらするワケがない マジでな、オマエは今までなにをやってたわけ? 小一時間問い詰めたいわ はっきりいうわ オマエ、才能ない : デフォルトの名無しさん [] 2018/07/16(月) 18:05:36.68:6luw5g3K オレが引用したオマエのコードが なんでお話にならないくらいダメなのか 理由が分からないならオマエはCをさわらないほうがいい コレはいいきれる 速く動作させたいとか以前の問題だからな : デフォルトの名無しさん [sage] 2018/07/16(月) 18:29:34.88:fNWu8+xr エレガントなコードwww 糞汚くて激遅なコード お前は偉そうに語れるレベルじゃない : デフォルトの名無しさん [sage] 2018/07/16(月) 18:30:40.10:fNWu8+xr ザコはザコらしくしてろ : デフォルトの名無しさん [sage] 2018/07/16(月) 18:34:38.20:fNWu8+xr テキトーに作った1作目 前スレのの24.3秒 の倍以上の時間で もうネタ切れのザコ : デフォルトの名無しさん [] 2018/07/16(月) 18:58:39.51:6luw5g3K ごちゃごちゃいってないでな クソニートはオレより速くできるコードをあげたらどうだ クソニートが邪魔でしょうがない : デフォルトの名無しさん [sage] 2018/07/16(月) 19:00:10.74:r07bWXyg 何の邪魔? 5chで名を上げようとでも思ってるの?w : デフォルトの名無しさん [] 2018/07/16(月) 19:02:42.71:6luw5g3K どうでもいいが クソニートは邪魔しかしないからな オレのエレガントなコードに嫉妬してるワケ まちがいなくオレのコードより速いコードなんかかけるワケがないからな : デフォルトの名無しさん [] 2018/07/16(月) 19:04:00.40:6luw5g3K クソニートはこうやって社会と接点ももったつもりになってるワケ 分かりやすい ニューススレなんかに湧いてくる社会参加してないクソニートとそっくりといっていい : デフォルトの名無しさん [] 2018/07/16(月) 19:05:41.08:6luw5g3K ココは相談スレだからな まちがいなくクソニートは相談スレの邪魔をしてる : デフォルトの名無しさん [sage] 2018/07/16(月) 19:12:14.13:r07bWXyg 自己紹介乙 : デフォルトの名無しさん [] 2018/07/16(月) 19:13:02.52:6luw5g3K もうね図星つかれて 顔真っ赤だからな ホントな分かりやすいわ 分かってしまうのが怖いわ : デフォルトの名無しさん [] 2018/07/16(月) 19:15:40.86:6luw5g3K だいたい分かる 登校拒否児のまま高齢ニートになったようなのが このスレにはウジャウジャいる 低学歴なまま精神的に大人になってないような知恵遅れの典型的なレスパターンだからな いわゆるヒキコモリというヤツだ : デフォルトの名無しさん [sage] 2018/07/16(月) 19:20:00.33:r07bWXyg ID真っ赤なのは唯一人 : デフォルトの名無しさん [] 2018/07/16(月) 19:29:45.75:6luw5g3K クソニートは相談スレに参加できるレベルに達してないからな いままで参加できてると錯覚してたワケ 参加できないからIDが赤くなるまでレスもできない ホンモノのプロフェッショナルなオレがくればこうなる 知恵遅れがオレスゲーできない 唯一の自分が社会と接点をもててると錯覚してる唯一の場所が オレに乗っ取られたワケ くやしいの? : デフォルトの名無しさん [sage] 2018/07/16(月) 19:32:29.15:r07bWXyg ホンモノのプロフェッショナルなオレ ホンモノのプロフェッショナルなオレ ホンモノのプロフェッショナルなオレ ホンモノのプロフェッショナルなオレ ホンモノのプロフェッショナルなオレ 👀 Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b) : デフォルトの名無しさん [sage] 2018/07/16(月) 22:04:34.63:KaFNK61g 最近バーチャルYouTuberは4,000人を越えています。 そこで今どのVtuberが人気なのか調べてみようと思います。 第二回バーチャルYouTuber人気投票ですが、Vtuber界隈の変化が激しい為、投票受付期間中であれば、 一度投票した内容を変更できるようにしました。 今回は一人三票です。今回からモンスト、鈴木ヒナ、ポン子、アイドル部など強力な新人さんも入っておりますので、 投票をよろしくお願いいたします。 現在830票 あなたの好きなVtuberは? ttps://goo.gl/forms/wHUyA3Phxj6y2nu73 ・2018/6/5時点でチャンネル登録数10,000人以上のVtuberを対象としています。 ・一つのチャンネルでVtuberが複数人いる場合は、それぞれ分けています。 ・一人三票です。 ・このグーグルフォームに投票するにはグーグルアカウントでログインする必要があります。 ・並び順は前回の得票数の高い順と新人は登録者数の多い順に並んでいます。 ・今回も1,000人の方が投票するまで継続します。 ・受付期間中は何度でも投票内容を変更できます。 第一回バーチャルYouTuber人気投票結果(2018年5月7日〜5月30日、全投票数1,000票)(スプレッドシート) ttps://docs.google.com/spreadsheets/d/e/2PACX-1vTpmFxf3MHjezIdvmte2CD6kWk4so-gtI8a9XJVjS_O0aMZhekYnSCj-n4DCLfHGXhke7HZYbJM1TEa/pubhtml?gid=0&single=true : デフォルトの名無しさん [] 2018/07/16(月) 22:56:02.09:6luw5g3K とりあえず、バカでも使えて修正できる パーザーのクラスのサンプルでも気が向いたら作っといてやるわ こんなもんデータを全部格納できるワケがないからな 今の解析コードのサンプルでも位置とサイズの情報はガッチリとってるから いくらでも改良できる オレみたいなプロフェッショナルになると、こんなことハナから予見できてるワケ : デフォルトの名無しさん [sage] 2018/07/16(月) 23:55:04.74:k7Gq2lBS 「ぼくちんのログ解析ソフトを半角さんが作ってくれるスレ」を立ててそっちでやってくれないか : デフォルトの名無しさん [sage] 2018/07/17(火) 04:14:16.72:eLk9EV06 パーザーw : デフォルトの名無しさん [sage] 2018/07/17(火) 12:14:32.32:laha5pLP 頭がパーザー : デフォルトの名無しさん [] 2018/07/17(火) 14:06:01.71:I4a/6mEU 今のサーバはメモリに多少余裕があるから全部メモリに格納しようと 思ってましたが、よく考えると数人同時に使ったり他の低スペックサーバを 使うことを想定すると確かに名称、テキスト、数値の番号と位置など 最低限の情報だけ拾ってその都度ファイルにアクセスした方が 他の人に迷惑がかからず良さそうです。 気が向いたらよろしくお願いします。 自分でも検討してみます。 相談しっぱなしは悪いと思い、色々調べた結果を出してしまいました、すみません。 : デフォルトの名無しさん [sage] 2018/07/17(火) 17:51:00.62:rBemJlfB 悪いと思って無いだろ : デフォルトの名無しさん [sage] 2018/07/17(火) 18:31:14.54:0lwIt+yt 消えろ : デフォルトの名無しさん [] 2018/07/18(水) 18:38:21.90:zAL/THKp ハイ、謝罪と賠償の要求いただきました! みんなー、謝罪と賠償の要求出たぞー! : デフォルトの名無しさん [sage] 2018/07/18(水) 19:24:54.30:xHEVxC3Y ごめんなさい 100円 : さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2018/07/18(水) 19:48:18.30:IL3iPWys パーサーもパーザーも間違いではない。 : デフォルトの名無しさん [sage] 2018/07/18(水) 19:51:38.49:xHEVxC3Y はいはいwww : デフォルトの名無しさん [] 2018/07/18(水) 22:02:52.32:L914sbje int a; if( hoge ){ const a = 1; } else{ const a = 2; } とすると不安定な動きをするのですが、 このコードは許されないのでしょうか。 : デフォルトの名無しさん [sage] 2018/07/18(水) 22:17:00.15:WhjAyW4L 許される : デフォルトの名無しさん [sage] 2018/07/18(水) 22:28:45.28:4KYHyXSz const a = 1; ってなんぞ??と一瞬思ったがintが省略されてるのか それブロック内ローカル変数だから、外のint a;には関係しないよ >157に書かれてるところは許されるけど、 書かれてないところでint a;を使ってたらそりゃ不安定だろうね : デフォルトの名無しさん [sage] 2018/07/20(金) 17:29:54.53:j7YVAWUD 不安定な動きはしないと思うが ルールがわかってないだけで : デフォルトの名無しさん [sage] 2018/07/20(金) 18:06:32.94:TP/FZeZJ 外側のaを初期化してないから不安定になる可能性はある。 : デフォルトの名無しさん [sage] 2018/07/20(金) 18:38:08.70:obfOsgMS aを不定なまま使えば不安定になるかも知れないが のコードだけならなにも問題ない の回答としては 「許される」が正解 : デフォルトの名無しさん [sage] 2018/07/20(金) 21:07:42.21:0P/bZCls 許すのは誰なのかというところから(ry : デフォルトの名無しさん [sage] 2018/07/20(金) 21:08:02.97:j7YVAWUD コンパイラ様 : デフォルトの名無しさん [sage] 2018/07/20(金) 21:15:25.57:MVqkCRqy int a; // 未初期化 if (hoge) { const a = 1; // if の中だけで使える変数aを新たに宣言 const int b = 1; // こう書いてbを使うのと同じ } else { const a = 1; // else の中だけで使える変数aを新たに宣言 const int c = 1; // こう書いてcを使うのと同じ } int i = a; // 未初期化のままaを使おうとして「不安定な動きをする」 : デフォルトの名無しさん [sage] 2018/07/21(土) 03:52:30.13:ZZ4YytrN コンパイラ様は、代金を支払うお客様より偉いのか。 : デフォルトの名無しさん [sage] 2018/07/21(土) 07:09:59.33:CT2MO4Nk 機械は偉さで動いてはいない : デフォルトの名無しさん [sage] 2018/07/21(土) 07:12:46.06:d0oYLoM2 そのうち褒める褒めないで動作が変わるようなAIコンパイラが出てくる : デフォルトの名無しさん [sage] 2018/07/21(土) 07:16:56.35:ZZ4YytrN もうしわけない。金毘羅様に言及すべきだったのにそうしなかったのが情けない。 : デフォルトの名無しさん [sage] 2018/07/21(土) 11:56:28.78:KXd0ss1Q 警告オプション有効にして助言をもらおう > warning: variable 'a' is uninitialized when used here [-Wuninitialized] : デフォルトの名無しさん [sage] 2018/07/21(土) 12:20:29.40:RLP8Sp1U C++勉強するたびに嫌いになってきて草 : デフォルトの名無しさん [sage] 2018/07/21(土) 12:23:02.98:L4ZstKjT そんなのは道楽でC++やってるあまちゃんのたわごとだ 俺なんかは最初からC++以外に用意されてなかった : デフォルトの名無しさん [sage] 2018/07/21(土) 12:34:14.56:Zy/M/93a c++はできるだけの範囲で出来るだけのことをやればいい 意欲があればさらに進めばいい むりして難しいことをやらなくてもいい c関数での文字列の処理が嫌ならstring使えばいい 楽なところは楽でいい : デフォルトの名無しさん [sage] 2018/07/21(土) 13:42:42.85:V/L9XjgX template <typename TypeA, typename TypeB> void TempSet(TypeA* Obj, void (TypeB::*Method)()) { *Obj->*Method; } これがエラーでコンパイルできないんですが、 TypeBのメンバ関数呼び出すのはどうやればいいんでしょうか? TypeAはインスタンスのオブジェクトポインタです : デフォルトの名無しさん [] 2018/07/21(土) 13:44:42.66:gIfo2zic でも++が一番ストレスなく組めると思う。 : デフォルトの名無しさん [sage] 2018/07/21(土) 13:53:05.91:0t9tN8g5 TypeA はTypeBの間違いで、 Obj->Method(); でないの? : デフォルトの名無しさん [sage] 2018/07/21(土) 14:00:56.99:0t9tN8g5 おっとこうか (Obj->*Method)(); : デフォルトの名無しさん [sage] 2018/07/21(土) 16:20:10.80:FasZjosd なるほどそれですね、ありがとうございます。 : デフォルトの名無しさん [] 2018/07/21(土) 18:50:32.76:yF+tsqCG VMWare使ってLinux入れてみた 貧弱なPCでめちゃくちゃ重すぎるがコレで普通にコンパイルはできる いままで黙ってたがMSのコンパイラでコンパイルしてたからな やっとオレの芸術的なパーザをコピペで作る準備が整った : デフォルトの名無しさん [sage] 2018/07/21(土) 19:53:50.78:IjOYQkhe やっぱワッチョイ必要だな これ : デフォルトの名無しさん [sage] 2018/07/21(土) 19:54:08.06:4OwLAQG2 コンパイルするためだけにVMWarewwwwwwwwwwwwwwwww : デフォルトの名無しさん [sage] 2018/07/21(土) 20:17:49.81:Y8T9UzT7 DELLのPC安いから買うといいよ : デフォルトの名無しさん [sage] 2018/07/21(土) 20:18:57.06:ZZ4YytrN ubuntu on windows は、ウィルス対策ソフトのウィルス・バスターがubuntu上のプロセスを監視対象として認識しないらしく、きびきびと起動・実行できる。 それがいいことか悪いことかは、さておき。 : デフォルトの名無しさん [sage] 2018/07/21(土) 21:04:13.24:CT2MO4Nk 何かおかしいか? : デフォルトの名無しさん [sage] 2018/07/21(土) 21:05:35.42:o4R9sYuw botに反応するなよ : デフォルトの名無しさん [sage] 2018/07/21(土) 21:08:08.82:CT2MO4Nk botがそんな反応するか そういうことにしたいのなら 見逃してやるが : デフォルトの名無しさん [sage] 2018/07/21(土) 21:18:01.24:gFGCO6jl 見逃してもらえないとどうなっちゃうの? : デフォルトの名無しさん [sage] 2018/07/21(土) 21:23:00.95:CT2MO4Nk 何がおかしいのか聞こうか : デフォルトの名無しさん [] 2018/07/21(土) 22:50:00.50:yF+tsqCG 32bitのlinuxしか入らんから それでもいちいちめんどくさいことは分かった : デフォルトの名無しさん [sage] 2018/07/21(土) 23:13:14.47:NpMyvs3y macならdockerでlinux環境作るのもありかなと思ったが、 winだとまだdockerインストールめんどくさげだね。 : デフォルトの名無しさん [sage] 2018/07/22(日) 12:08:37.73:LuRYHz2h 自分もvmwareでlinux入れてましたが、メモリ4GB(有効なのは約3GB)の初代i3ノートPCで、vmware割当メモリ700MBくらいで使ってましたが かなり重かったけど立ち上がったらそこそこスムーズに使えてました。 メモリ8GBくらいあればvmwareに1GB〜2GBくらい割り当てれば、そこそこストレスなく使えそうな気がします。 ちなみにすでに知ってるかもしれませんが、win10だとubuntu?っぽいのを直接インストールできます。 windows内にゴミがたくさんできそうだから個人的には躊躇しますが。 ttp://www.atmarkit.co.jp/ait/articles/1608/08/news039.html : デフォルトの名無しさん [sage] 2018/07/22(日) 14:07:01.86:ST9MozRw それは入れないほうがいいよ 互換性問題があるしかなり機能を絞られてる 使ってみてわかる誰得機能 容量も十数G必要 VirtualBoxを普通にいれたほうが使い勝手がいい : デフォルトの名無しさん [sage] 2018/07/22(日) 20:18:52.55:mbi94QjP > 容量も十数G必要 いや1GBも要らんよ、どこ確認したんだw WSL丸ごと%LocalAppData%\Packages\CanonicalGroupLimited.*.ならんちゃらに突っ込まれる形式だから ホストOSにゴミが残るってのも杞憂 最近はDocker Engineがそれなりに動く程度には互換性も高まってきてるみたいね エクスプローラのアドレスバーからbashで窓側をカレントディレクトリにして起動できるのが良い : デフォルトの名無しさん [sage] 2018/07/22(日) 20:20:13.96:Nia5Zbws > 互換性問題があるしかなり機能を絞られてる WSL(Windows Subsystem for Linux)は、C++やLinuxシステムコールを使ったGNUプログラミング環境としては必要十分だと思うけど、具体的にどんな問題あるの? : デフォルトの名無しさん [] 2018/07/22(日) 20:26:16.94:tfHLB3F/ サービス書くときかな。 他はWSLが楽だと思う。 : デフォルトの名無しさん [] 2018/07/22(日) 20:28:26.39:tfHLB3F/ Linuxを使う意図はサーバーか組み込みなので、WSLで足りない場合もあると思うんだけど、ひな形があれば済む話かもしれんね。 : デフォルトの名無しさん [sage] 2018/07/22(日) 20:31:49.81:ST9MozRw サーバ系がサポートされてない 使うならVM使ったほうがいいよ ファイルシステムもwindowsのものの上に作られてるのであれこれ問題が出る 1Gというのが笑えるw コンパイルしないのかw : デフォルトの名無しさん [] 2018/07/22(日) 20:34:24.26:tfHLB3F/ VMは大げさすぎるかな。 使えるときはWSLを積極的に使っていきましょうよ。 とてもいいものですから。 : デフォルトの名無しさん [] 2018/07/22(日) 20:41:37.63:tfHLB3F/ VMは一つのパソコンで複数のOSを動かすのでOSの数だけメモリーを食うんですよね。 その点、WSLはWindowsがLinuxのようにふるまうだけなのでWindows分のメモリーしか食いません。 そんなわけなので、お財布にやさしいんです。 それでいてサービスの開発以外では全く遜色在りませんし、そもそもサービス開発だって、大詰めを迎えるまではdaemonとして起動することはないでしょう。 : デフォルトの名無しさん [sage] 2018/07/22(日) 20:42:00.95:ST9MozRw bash使うだけならわかるけどコンパイルも含めて何か使おうとするなら 既知の問題や互換性に問題もあるものを選ぶのはクレバーだと思わない : デフォルトの名無しさん [sage] 2018/07/22(日) 20:44:34.92:ST9MozRw WSL上のバッドノウハウをひたすら集めたいとか 縛りのある環境のほうが燃えるというなら止めはしない ただわからない人に勧めるものじゃないなって思う 不具合があった場合それがどこ由来なのか特定できない人間には特にすすめちゃダメ : デフォルトの名無しさん [] 2018/07/22(日) 20:45:31.78:tfHLB3F/ ディストリビューターが開発する本物のディストリビューションですからまったく問題ありませんね。 Canonicalが開発した本物のUbuntuがWindowsで動くのです。 もちろんDebianであっても同じことです。 : デフォルトの名無しさん [sage] 2018/07/22(日) 20:50:22.91:ST9MozRw ディストリビューターが提供しようが WSLはlinuxでもないwindowsでもない不思議な物 両方の制限の積 windows ∩ linuxでありわざわざ苦労することはないよ windows上の疑似linuxであってかなりニッチな物 どこかおかしくても不思議じゃない : デフォルトの名無しさん [] 2018/07/22(日) 20:56:04.07:tfHLB3F/ WSL、CMake、VCPKGがお勧めキーワードです。 C++ユーザーにはUbuntuをお勧めします。 gcc-7を導入してC++-17をご利用ください。 : デフォルトの名無しさん [sage] 2018/07/22(日) 20:56:30.30:sWlXYLBw どこかおかしくても不思議じゃない(どこがおかしいのかは知らない) : デフォルトの名無しさん [sage] 2018/07/22(日) 20:57:52.61:Nia5Zbws 今のWSLはLinuxのdaemonもサポートしてるから問題ないと思うんだけど、具体的にどんな問題起きたの? : デフォルトの名無しさん [] 2018/07/22(日) 20:58:04.83:tfHLB3F/ Visual Studio 2017にはLinux DebugとLinux Releaseというターゲットがあり、標準でLinuxをサポートしていますよ。 : デフォルトの名無しさん [sage] 2018/07/22(日) 20:58:48.25:ST9MozRw c++使うような厳格さを求める人間がWSL使ってるとは思わなかった WSLで動いたとして他の環境で動くとは保障されないのに どこがおかしいのか推定もできない仕組みの上で何故ごみを作るんだ : デフォルトの名無しさん [] 2018/07/22(日) 21:01:33.45:tfHLB3F/ init機構がWSL用だから。 それを言い出すと、RedhatとUbuntuだって違うじゃないかということになるけど、Redhatに配備するものはRedhatで開発してたのが今までのスタイルなので、VMのほうが良いという人はその点を指摘してるんじゃないのかな。 それ以外にWSLを使わない理由がないので。 : デフォルトの名無しさん [] 2018/07/22(日) 21:04:40.18:tfHLB3F/ まあ逆に言うと、WSLで動かないのであれば、Linuxディストリビューション間でも可搬性が無いよね。 : デフォルトの名無しさん [] 2018/07/22(日) 21:05:04.20:Nia5Zbws 実機Linuxならどこがおかしいか推定できるという根拠はないでしょ。 むしろ、WSLのような抽象化された環境でさえ動かない稚拙なものを実機に持っていく気なの?と言い返すことさえできるのだけど。 : デフォルトの名無しさん [sage] 2018/07/22(日) 21:07:21.30:ST9MozRw 違う違う 普通のlinuxで動くコード書いててもWSL上では動かせない場合があるのが問題だろ : デフォルトの名無しさん [] 2018/07/22(日) 21:09:42.72:tfHLB3F/ そういうものがあるのかどうか知らないけど、あるならなおさらWSLで開発したほうが可搬性を担保できてよいのでは。 : デフォルトの名無しさん [sage] 2018/07/22(日) 21:10:55.12:ST9MozRw 根拠とかそんなんじゃない 考慮すべきことが多すぎる 自分のコードがおかしいのか linuxのそもそもの仕組みがおかしいのか MSのWSLがおかしいのか ディストリビューターの提供してるイメージがおかしいのか それぞれが組み合わさっておかしくなってるのか考慮する条件が増えすぎる : デフォルトの名無しさん [sage] 2018/07/22(日) 21:11:03.95:Nia5Zbws 問題なんてほぼないでしょ。 VM上で動いて喜べるレベルならWSLでも同じだから。 あなた、WSLで動作確認したことあるの?もしや憶測で書いてない? : デフォルトの名無しさん [] 2018/07/22(日) 21:11:34.45:tfHLB3F/ clはかなり寛容なコンパイラなので、gccでコンパイルできるかチェックしとくとより良いコードが書けますよ。 そんな用途でもWSLは素晴らしいと思います。 : デフォルトの名無しさん [] 2018/07/22(日) 21:13:06.02:tfHLB3F/ それたぶん、自分のコードが悪いと思いますよ。 Linuxは十分安定してるので、Linuxの問題を真っ先に疑うのは、自信ありすぎだろって感じます。 : デフォルトの名無しさん [sage] 2018/07/22(日) 21:14:34.32:ST9MozRw 最初のころはめちゃくちゃだったのでもう入れてない ハードリンクの仕組みもおかしいし タイムスタンプもおかしいし TCPなど制限も山盛りあった すでにあるコードも何故か動かないことが多かった : デフォルトの名無しさん [] 2018/07/22(日) 21:16:43.51:tfHLB3F/ 開発環境はWSLがいいんじゃないですかね。 : デフォルトの名無しさん [sage] 2018/07/22(日) 21:19:27.33:Nia5Zbws 抽象化されていると問題特定が容易と考えるのが一般的だと思っていたのだけど、 抽象化された環境は問題特定が難しくなるという考え方は画期的ですね。 : デフォルトの名無しさん [sage] 2018/07/22(日) 21:21:02.02:ST9MozRw linuxが安定ってジョークか linuxカーネルは常にバグがボコボコ出てるよ : デフォルトの名無しさん [] 2018/07/22(日) 21:22:41.34:tfHLB3F/ クロスプラットフォームを標榜するなら、開発環境としてWindowsを選択するとよいです。 Visual StudioはWindowsとMacで使えます。 WSLによってVisual StudioからLinuxバイナリを構築できます。 MSBuildとCMakeは悩みどころですが、MSBuildはサポートが手厚く、CMakeはVisual Studioが無くても構築できます。 そこらへんで選択するとよいのではないでしょうか。 : デフォルトの名無しさん [] 2018/07/22(日) 21:28:34.40:tfHLB3F/ まあ僕はVisual Studio、WSL、VCPKG、CMakeプロジェクトを使っているので、わかることはお答えしますよ。 : デフォルトの名無しさん [] 2018/07/22(日) 21:56:04.01:Nia5Zbws 悪いことは言わないので、LinuxプログラムはWSLで動くことを優先して書くことをお勧めする。 他人のために時間を使いたくないのは誰でも同じ。おのずと楽に評価できる環境に流れるのは止められない。 : デフォルトの名無しさん [] 2018/07/22(日) 22:35:05.45:Nia5Zbws イスラームの救貧制度がかえって免罪符の役割を果たしてないか。 イスラームの救貧制度があることで、かえって商業上の強欲が横行していないか。 : デフォルトの名無しさん [sage] 2018/07/22(日) 22:37:37.06:Nia5Zbws 誤爆したけど、謝罪はしない。 イスラム教は野蛮な宗教である ★4 ttps://lavender.5ch.net/test/read.cgi/whis/1525163440/ : デフォルトの名無しさん [] 2018/07/22(日) 23:57:15.36:g7OD+nvH だいたいでけてきたわ コード修正をすることによって効果を簡単に計測できるように修正してる こっちのが結構大変だったわ : デフォルトの名無しさん [] 2018/07/23(月) 01:50:38.00:SStA1pnM というわけでうpした 長い戦いだった ttp://fast-uploader.com/file/7087832585811/ baka_source.zip build.shを実行すると、3つの実行モジュールができる 3つとも少し修正した(解析処理はファイルがものすごい増えたから大きく修正したように見えるハズ) ・テストデータジェネレータ(データの出力個数の出方を少し修正した) ・ストレージ能力計測プログラム(I/OのアドバイスをOSに与えるように修正) ・解析処理(1. 解析の処理方法自体は一切かわってないがコードの構成をバカでも分かるように変更 2. I/OのアドバイスをOSに与えるように修正) : デフォルトの名無しさん [] 2018/07/23(月) 01:56:28.48:SStA1pnM で、パーザーは基本に則った作りになってる クラスに分ける意味があるかどうかはおいといて 一般的な再帰下降パーザーになってる BNFを構文解析する要領と同じといっていい バカでもチョンでも分かるハズ baka_parser_all ┣baka_parser_title ┗baka_parser_sections ┣baka_sub_parser_section ┣baka_parser_section_stat ┣baka_parser_text ┗baka_parser_elem ┣baka_sub_parser_xy ┃┗baka_sub_parser_qq_value ┣baka_parser_numbers_x ┃┣baka_sub_parser_qq ┃┃┗baka_sub_parser_qq_value ┃┣baka_sub_parser_rr ┃┗baka_sub_parser_number_x ┗baka_parser_numbers_x ┣baka_sub_parser_qq ┃┗baka_sub_parser_qq_value ┣baka_sub_parser_rr ┗baka_sub_parser_number_y 詳細な解析処理をする前に 簡易な解析処理をしたい場合(ブロックの位置情報やサイズ情報なんかだけを先に取りたい場合)、 そのクラスにそのレベルの処理を突っ込んどけばいい 解析処理の詳細さの粒度はそこでテキトーにきめればいいと思う : デフォルトの名無しさん [] 2018/07/23(月) 02:11:50.60:SStA1pnM 一応、parserとsub_parserの違いだけ捕捉しておく 結論からいえばデータの形式がくさってるからそういうのを入れた parserクラスは最初に一行読んで、必ず次の行頭(LFの次)でポインタが停止するようになってる sub_parserクラスは行は読まずに、与えられたポインタから行の途中でポインタが停止するようになってる ※ 例外はあるがsub_parserクラスは大体 LF の上(行末)で停止する ※ 停止しない例外は、sub_parserクラスが連続してる箇所が間違いなく該当することになる : デフォルトの名無しさん [] 2018/07/23(月) 20:33:09.90:SStA1pnM コードの記述に一箇所誤りがあった 動作に影響は一切ないが記述ルールに問題があるから 修正しといたほうがいい 削除 baka_sub_parser_section.h (L34) ++c_buf_p_; // skip LF 追加 baka_parser_sections.h (L48)++c_buf_p_; // skip LF ひたすら元のコードをコピペして貼り付けてたから 気付かなかったわ このスレで相談してたバカはちゃんと動作確認してんのか : デフォルトの名無しさん [] 2018/07/23(月) 20:39:12.44:SStA1pnM ちなみにオレのpcのosはvistaだからな まずwslなんか動くワケがない あと、オレのpcは32bitの計算機だから 32bitのlinuxしか動かない pcが32bitだからな 512MBのメモリでvmware動かして slackwareのlinuxで動作確認をした ちなみに64bitのwindowsは一切考慮してない 考慮不要だからな 32bitのlinuxと32bitのwindowsで動作確認はできてる つまり64bitのlinuxでは動作確認はしてないが 一応、64bitのlinuxにも対応できてる想定になってる きっと動く ※ baka_common.hぐらいの考慮で十分なハズ : デフォルトの名無しさん [sage] 2018/07/23(月) 20:41:46.46:i+VNk600 しょぼ : デフォルトの名無しさん [sage] 2018/07/23(月) 20:47:36.06:i+VNk600 実行速度は? : デフォルトの名無しさん [] 2018/07/23(月) 20:53:16.24:SStA1pnM ほとんどストレージの読み込み時間 パーズはばっちり これ以上ないデキだ 解析する量を減らせばもっと速くなる 動かせば分かる 印字されるスループットを どうすれば最大化できるか考えるのはこのスレのバカだ 道具はほぼすべて揃ってる : デフォルトの名無しさん [sage] 2018/07/23(月) 21:36:54.74:rtZ7opge ブーメラン投げてんじゃねえよバカ : デフォルトの名無しさん [sage] 2018/07/23(月) 21:41:33.21:2Wpd7Nw8 パーズ : デフォルトの名無しさん [sage] 2018/07/23(月) 21:56:50.52:owbFvtjn I/Oのアドバイスとか何言ってるのか分からない。日本語でOk : デフォルトの名無しさん [sage] 2018/07/23(月) 22:01:24.41:JOGfItcj ありがとうございます。 なぜか下記修正をしないとコンパイルエラーで怒られました。 gcc-8.1を使っているけどそのせい? baka_common.h PRIu64を有効にするため27行目に行追加:#include <cinttypes> baka_spec.cpp 107, 111, 125行目を修正:%d → %zd build.sh clock_gettimeを有効にするためコンパイルオプションに-lrtを追加 少しコードを見ましたが、クラスのオブジェクト生成時に&があるのが 何を意味しているのかよくわかってなかったり、classのpublic内に関数名だけでなく 関数の中身も直接そのまま記述できるのを初めて知ったりと 色々新しい所があるのでじっくり見て勉強したいと思います。 つづけて実行結果を書きます。↓ : デフォルトの名無しさん [sage] 2018/07/23(月) 22:02:12.57:i+VNk600 他でやれって何度も言われてなかった? : デフォルトの名無しさん [sage] 2018/07/23(月) 22:03:34.73:JOGfItcj 取り急ぎ新しいgenツールで13GBを作り、読み込んでみました。 ※ の修正ままだしてませんが大丈夫ですかね? ## spec(ハード性能チェック?) LINUX% ../baka_spec ./aaa_13GB Mon Jul 23 18:14:22 2018 : starting... 14107393277 bytes read (read block size = 131072 bytes) ./aaa_13GB 〜 Mon Jul 23 18:14:24 2018 : done... 14107393277 bytes read (read block size = 131072 bytes) ./aaa_13GB read_block_size ::= 131072 bytes, file_size ::= 13453.86 MiB, turnaround_time ::= 2.27 sec, throughput ::= 5920.39 MiB/sec ※複数回実行でだいたい5500〜6000 MiB/sec ## parser LINUX% ../baka_par ./aaa_13GB "./aaa_13GB" : size = 14107393277 bytes Mon Jul 23 18:15:19 2018 : starting... ../baka_par ./aaa_13GB Mon Jul 23 18:15:19 2018 : section_count = 1, offset = 144275554 bytes, size = 144275513 bytes, turnaround_time = 0.21 sec, throughput = 646.15 MiB/sec 〜 Mon Jul 23 18:15:39 2018 : section_count = 79, offset = 14107393277 bytes, size = 176862384 bytes, turnaround_time = 0.25 sec, throughput = 662.80 MiB/sec Mon Jul 23 18:15:39 2018 : done... ../baka_par ./aaa_13GB turnaround time : 20(secs) ついでに前回のコードでも試しました。↓つづく : デフォルトの名無しさん [sage] 2018/07/23(月) 22:04:55.29:JOGfItcj ## ついでに ttp://https://ideone.com/E6QH2r "> ttps://ideone.com/E6QH2r で同じファイルを読み込んだ時間 LINUX% time ./a.cpp aaa_13GB strat... ./a.out /mnt/home2/pjupm/dbl/work/kinoshit/rve/cpp/final2/baka_source_kino/temp/aaa_13GB (null) done... ./a.out /mnt/home2/pjupm/dbl/work/kinoshit/rve/cpp/final2/baka_source_kino/temp/aaa_13GB (null) real 0m16.243s user 0m14.024s sys 0m2.199s ↑の実行時間約16秒と : デフォルトの名無しさん [sage] 2018/07/23(月) 22:09:26.85:i+VNk600 読み込み2秒 全部で16秒 ほとんどが読み込み時間? 嘘つき : デフォルトの名無しさん [sage] 2018/07/23(月) 22:18:11.65:SW13TXDW これは のことですか? それぞれは下記のようですが、sys=読み込みのみの時間 となるんですかね。 real プログラムの呼び出しから終了までにかかった実時間(秒) user プログラム自体の処理時間(秒)(ユーザCPU時間) sys プログラムを処理するために、OSが処理をした時間(秒)(システム時間) : デフォルトの名無しさん [sage] 2018/07/23(月) 22:23:23.05:hE7BXV+L 続きは半角とLINEでも交換してやれよ : デフォルトの名無しさん [] 2018/07/23(月) 23:09:13.26:SStA1pnM オレのとこでは baka_parもbaka_specも どっちも30〜32MiB/secだから同じだ つまりほとんど読み込み時間 どっちも8分ぐらいかかる で、そっちのは baka_spec turnaround_time ::= 2.27 sec ← 2秒で読み込めてる! baka_par turnaround time : 20(secs) そっちでは明らかに解析処理が足をひっぱってる つまり初回の解析処理をさぼればもっと速くなるハズ : デフォルトの名無しさん [] 2018/07/23(月) 23:24:47.71:SStA1pnM ttp://man7.org/linux/man-pages/man2/posix_fadvise.2.html posix_fadviseを追加したからな シーケンシャルリードであると ちゃんと日本語になってるわ : デフォルトの名無しさん [sage] 2018/07/24(火) 00:12:21.91:dbjTOx+1 par, specともにほぼ同じですか。 すみません。話についていけてないです。。 初回の解析処理をサボるとはどういうことですか? 自分が書いたら40〜50secだったので20secですでにかなり速いと思ってるんですが、まだ高速化の余地があるんですね。 : デフォルトの名無しさん [] 2018/07/24(火) 01:27:55.10:2rkV2Cvq 普通に考えたらこんなもん全部メモリに格納しようというほうが 普通に考えて狂ってると個人的には思うからな、それ専用の計算機ならともかく ちなみに全部メモリに格納しようとすれば、その格納のオーバーヘッドで さらに時間がかかることになることは予見できてる すべてメモリにのせるDBの発想に近いが、そういうDBMSでも起動時のロードにはものすごい時間がかかる かりにな全部データをメモリに格納しないなら 全部解析する必要はない 過去にセクションは100個ないぐらいといってたと記憶してる 仮定の話になるが、例えば1セクション読みこむのにどれぐらい時間がかかるかということになる いまぐらいの速度がでるなら セクションの位置とサイズだけを先に取得して 後で必要な部分のデータを再度読みこんでオンデマンドで解析しても 十分な速度がでるような気がしないでもない (最初にどこまで解析して取得するかはとりあえず今はおいといて) : デフォルトの名無しさん [] 2018/07/24(火) 01:32:16.00:2rkV2Cvq で、やりたいことは、これまでのレスを読むかぎりでは でっかいファイルの内容を画面に表示するだけだと思う それだけのことなら実機の高い処理能力を考慮すれば トップダウン方式で必要な箇所をオンデマンドでロードして取得する方法で十分な気がする そのほうが計算機にも優しいし、15Gのデータを全部眺めるバカなんかまずいないだろうしな こんな感じのことをやるのかなあとは思ってる Ex. データ取得の要求が3段階でされると仮定してる @セクションの列 AXY with QQ、RRの列(入力:セクションのSEQ) B数値の列(入力:XYのSEQ) A) 画面の初期表示では@で十分 B) セクションを展開して表示するときはAの取得で十分 C) X、Yを展開して表示するときはBの取得で十分 : デフォルトの名無しさん [sage] 2018/07/24(火) 06:39:30.18:0yPjFIBM 解析処理が足を引っ張ってるのは お前の解析処理が遅いから まともに作れば解析自体は8秒で終わる : デフォルトの名無しさん [sage] 2018/07/25(水) 00:09:01.02:rOCCX8po ,250 >すべてメモリにのせるDBの発想に近いが、そういうDBMSでも起動時のロードにはものすごい時間がかかる まさにこの発想で考えていました。 すべて構造体に格納しようかと… > @セクションの列 > AXY with QQ、RRの列(入力:セクションのSEQ) > B数値の列(入力:XYのSEQ) > A) 画面の初期表示では@で十分 > B) セクションを展開して表示するときはAの取得で十分 > C) X、Yを展開して表示するときはBの取得で十分 アドバイスありがとうございます。 1stステップ →上記@のセクション名、次行にあるx/yの個数、その次のテキスト行を取得しGUI表示 2ndステップ →GUIから セクション内の数値全部 or x/yの任意の番号 のどちらかを選択し表示(上記ABをその都度fseekでピンポイントに取得) の2段階で検討してみます。 支配的なのはBの部分なので、そこを分離すれば負荷はかなり減るのではと思います。 8秒ですか。。 そのようなハイレベルな解析は日曜大工レベルの自分には当分作れそうにないです… : デフォルトの名無しさん [sage] 2018/07/25(水) 01:22:39.02:FQQJXzBx 何をする気か知らんし、読み返す気もないが、 > 日曜大工レベル なら他言語使えよ。今のC++は君向けではない。 一通りも出来ないのだから、普通はPerl/Ruby/Pythonのどれかだと思うが。 あとここは「ぼくのさいきょうのそふとうぇあ」のスレではないから、 実際埋め立て状態だし、全く終わる気配もないし、 別スレ立ててやるのがマナーだと思うぞ。 : デフォルトの名無しさん [sage] 2018/07/25(水) 05:58:28.01:5wxx8yDL A.exeがB.exeを立ち上げる A.exeがB.exeの起動時に共有メモリ先を渡すのに その空間を指定するのはどうすれば良いんでしょうか : デフォルトの名無しさん [sage] 2018/07/25(水) 06:13:44.62:aR1SGvNs 共有メモリの名前を渡す : デフォルトの名無しさん [sage] 2018/07/25(水) 07:25:34.67:5wxx8yDL winAPIのmemorymapedfileを調べてみたけど winAPI便利だが触ったことないと敬遠しちゃう : デフォルトの名無しさん [sage] 2018/07/25(水) 13:33:42.64:CBV5hJrX 日曜大工とか書いてるけど、サーバー使ってやるとか言ってたから実務だと思うが あまり初心者を弾くようなことを言うな 速度は実用レベルになりゃそれでとりあえずいいんじゃないの ドヤりたいやつや喧嘩したいやつに惑わされるな 回答は参考にとどめて、自分でやってみてどうしてもわからないところだけ聞きに来い スレを私物化するな : デフォルトの名無しさん [sage] 2018/07/25(水) 17:57:43.34:EWaeEahr プロセス間共有メモリはプラットホーム依存でありC++の範疇ではないので、続きは以下スレでどうぞ。 あなたも。 Win32API質問箱 Build124 ttps://mevius.5ch.net/test/read.cgi/tech/1510395780/ : デフォルトの名無しさん [sage] 2018/07/25(水) 19:13:03.63:v8CmSWWw この程度のことを延々と続けられては、迷惑行為でしかないだろ。 実務なら上司に聞け、でしかないし。 最近アホが大量流入して、このスレは一気にレベルが落ちたよな。 お前らがそれについてどう思っているのかは知らんが。 お前は「プログラミング初心者」をここで飼いたいのか? 「C++初心者」はいいとして、C++は「プログラミング初心者」向けの言語ではない。 そもそも組み方も根本的に間違っている気がするが、 俺はこんな奴に教えてやる気はないし、 他の誰も指摘しないところを見ると、まあそういうことなんだろ。 (俺はソースは見てないが) : デフォルトの名無しさん [sage] 2018/07/25(水) 19:15:56.59:h5CHP+XR 確か上級者スレってあったはず 上級者はそちらに移動し、ここを見ないで : デフォルトの名無しさん [sage] 2018/07/25(水) 19:32:17.67:Iaq9Mrpc 空気読めないド初心者と、ド初心者相手にマウント取ってイキってる半角雑魚オヤジが二人で傷を舐め合ってるだけ その二匹をNGすれば平常運転よ : デフォルトの名無しさん [sage] 2018/07/25(水) 19:38:59.40:v8CmSWWw 乗っ取るのではなく、お前が移動しろよ馬鹿タレ 【初心者歓迎】C/C++室 Ver.103【環境依存OK】 ttps://mevius.5ch.net/test/read.cgi/tech/1530384293/ : デフォルトの名無しさん [sage] 2018/07/25(水) 20:01:29.95:CBV5hJrX いやそもそもは速度が必要なのでC++選んだ(C++については素人なので、何故自分のコードが遅いかわからない)、という話 最初の質問は何もおかしくなかったよ 前スレはもう読めないかもしれんが。 もういい加減自分で進められるだろうからいちいち報告しないでほしいが : デフォルトの名無しさん [sage] 2018/07/25(水) 20:20:05.41:v8CmSWWw STLつかうと一気に実行ファイルサイズが10倍に?! 環境によるだろ。 俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力 ランタイムを使用するようにして使っているが、例えばstd::vectorを 使っても使わない時と比べ10Kほどしか増えない すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。 C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。 とかいうエラーが出るんだけどこれってどうすればいいの? #include <stdafx.h> 後死ね。 言葉が悪いな。それで教えているつもりか。 まぁヒントぐらいにはなったな。 うむごくろう。 いつまでこの糞テンプレ張り続けるんだおい ---- テンプレ ここまで ---- なんだかんだでこのテンプレが馬鹿よけとして素晴らしく機能してたって事だよ。 それを嫌う奴が無理に剥がそうとした結果、このザマだ。 このテンプレはこのスレを極めて的確に表現しているし、C++のノリはこれだよ。 しかし、スレ検索するとC++スレって40もあるのな。正直びびったわ。 適切なスレを探すことも出来ない馬鹿にはC++なんて無理だってことでしかないが。 : デフォルトの名無しさん [sage] 2018/07/25(水) 20:38:35.94:v8CmSWWw これか? (専ブラでは読めないが、今はdat落ちしないので、通常ブラウザなら過去スレは基本読める) > 743デフォルトの名無しさん (アウアウウー Sa0b-sule)2018/07/07(土) 23:53:17.73ID:HbEbhDY0a > LINUXで15GBくらいのテキストファイルを読み込みこんでGUIを作ろうとしています。 > ファイルが大きいため速度が出せる言語で、かつGUI作成は情報量が多いと調べやすいので、まあまあメジャーな無料のGUIライブラリを使用したいと思っています。 > > perl>>python>>>>C++ の順で経験があり、C++はあまり詳しくないですが、速度重視でC++で行こうと検討しています。 > GUIライブラリを調べているのですが、C++のGUIはあまり情報を見つけられず、めぼしいのはQtくらいしか目に付きませんでした。 > 会社のサーバのローカルディレクトリにQtをインストールしてみましたが、必要なライブラリが古かったりで、インストールできませんでした。 > > 他に何かおすすめなGUIライブラリはありますでしょうか? > ttps://mevius.5ch.net/test/read.cgi/tech/1528382412/ ならC++選んでいる時点で間違いだろ。 理由は教えてやらないが、当然そうだからこそ、適切なライブラリがない。 というか、本当に初心者でないのなら、 適切なライブラリがない=みんなやってない=地雷臭を感じとれっての。 C++で書けば何でも速くなると思っている馬鹿、最近増えたよな。何故かは知らんが。 : デフォルトの名無しさん [sage] 2018/07/25(水) 20:52:15.60:MsjPsnRN くだらない選民思想はやめた方がいいよ、C++をベターCとしてしか使えない人でも 素晴らしいソフトを書き上げてる人は腐るほど居る 大体選民思想に走るやつってC++を実用してないやつなんだよなぁ・・・ : デフォルトの名無しさん [sage] 2018/07/25(水) 20:54:27.06:MsjPsnRN 読めるなら読んでから言えよ >適切なライブラリがない。 >みんなやってない=地雷臭を感じとれ 俺ゲーム屋なんだけど、居た会社はどこもみんな自社でライブラリというかフレームワーク作ってる 全部地雷なのか? お前アマチュアだろ? : デフォルトの名無しさん [sage] 2018/07/25(水) 20:55:36.48:VnR4R5Pj ,257 ご意見ありがとうございます。 自分にはもったいないくらいの洗練されたコードまで出して頂いてとても感謝しています。 アドバイスの通り、頂いたコードを元に自分で調べて見ます。 また色々やってわからないことろがありましたらご相談させてください。 あと、このスレはこれからも拝見させていただきたいと思います。 : デフォルトの名無しさん [] 2018/07/25(水) 21:34:44.04:EWaeEahr 共有ポインタがC++に正式採用されたことで、JavaなどGC機能を持った他言語の優位性が薄れたわな。 コンパイル速度も上がったし、開発機のメモリも増えたしで、昔よりC++を使うストレスが軽くなった。 なので皆、C++に回帰してくる。 : デフォルトの名無しさん [sage] 2018/07/25(水) 21:47:04.47:WkyhwwwQ うわっ なんだこの初心者丸出し野郎 > C++をベターCとしてしか使えない人でも 使えない じゃなくて いろいろと判断してそういうコードに意図的にするんだよ そう判断する理由の例としては 互換性 パフォーマンス コードサイズ 開発工数 / 評価工数 等々 : デフォルトの名無しさん [sage] 2018/07/25(水) 21:52:55.17:99/tYlRK 話の内容から読む価値が全くないと分かるから読まないんだよ。 つか、初期はみんなまともな指摘してるじゃねえかよ。 ガン無視して今の有様のようだが。 > お前アマチュアだろ? お前も無駄マウントするのではなくて、実力は投稿で示せよ。 そもそもC++用ゲームエンジンはありまくりだろ。 C++はその用途に向いているからみんな使ってる。だからそういう現実がある。 俺はそういうことを言ってるんだよ。 (日本の会社は何故かプロプライエタリに拘っているのも事実だが) : デフォルトの名無しさん [sage] 2018/07/25(水) 22:11:44.07:MsjPsnRN >お前も無駄マウントするのではなくて、実力は投稿で示せよ。 俺は半角のコードでいんじゃね?と思ったんで何も言わんかったw >C++はその用途に向いているからみんな使ってる あーそういうことか でも構文解析をC++でやるのは決して間違いではないと思うけどな : デフォルトの名無しさん [sage] 2018/07/25(水) 22:18:29.68:WkyhwwwQ 単純な構文解析を大量に行う なんて処理はCやC++がぴったりと思う : デフォルトの名無しさん [sage] 2018/07/25(水) 22:25:44.36:exbGUQmA まあ新しい機能がバンバン入る言語やライブラリってのは選民思想が湧きやすいもんよ。 昔からこの業界のそういうところは変わらん。 そしてそういうものがレガシーコードを量産するという現実も変わらん。 : デフォルトの名無しさん [sage] 2018/07/25(水) 23:04:43.31:99/tYlRK > でも構文解析をC++でやるのは決して間違いではないと思うけどな 大昔:yacc/lex 昔:bison/flex 最近さらに何か出てたと思ったが、使う気がないので忘れた。 そもそも元が15GBあって、それを全部目で見るわけないだろ。 単純には grep -i error とか、複雑ならいちいちperl等で切り出して眺めるもの。 やってることが最初から見当違いなんだよ。 仮に15GBのテキストを開けるテキストエディタを作ったとして、 スクロールバー長が1500pxあったとしても10MB単位でしかなく、 ドラッグアンドドロップでのスクロール操作は使い物にならない。 当然、マウスホイールで数行単位、クリックで1画面単位でスクロールしても埒が明かない。 結果的に行数じか打ちのジャンプしかないんだから、sedでいい。 俺が教えてやらねえ、って言ったのはこの件ではないけど、 「誰もそういうことをやらないからそういうもの(ライブラリ等)がない」ってのはあるから、 初心者なりにちゃんと考えろって事だよ。 上記は初心者でも理解できるだろ。気が付かないのは考えてないだけ。 そんな奴は勝手に死んでよし。 : デフォルトの名無しさん [sage] 2018/07/25(水) 23:18:30.44:MsjPsnRN >単純には grep -i error とか、複雑ならいちいちperl等で切り出して 確かそれはやりたくないって言ってたと思う まぁ、俺もテキストのまま扱うのはどうかとは思ったけども 別に内容書き換えるわけじゃないんだしトータルでもメモリ上に残す情報は 大した量にはならないだろうから全部読めばいいじゃん、テキストは内容を理解したそばから捨てていいんだから (用途が俺もわかってないからどっちがいいか不明だけど、初めて使うウインドウを開いたときに ファイルアクセスと構文解析のラグを許容できるか、それとも立ち上げ時のラグを許容できるかどうか) ってまぁ、さんざん既出なんでこのネタはもうやめようw : デフォルトの名無しさん [] 2018/07/25(水) 23:21:30.63:n4Pkvb3R オレのコードのエレガントさが分かるようならまだ芽はある オレのコードのエレガントさが分かるなら、もう一人でコードが書ける これからも頑張り精進したまえ 低学歴知恵遅れニートのいうことなんかほっとけばいい ← こういう低学歴知恵遅れを見れば分かるとおり 相談してる相手がまずなにがやりたいのか全く理解できてない まず知能に著しい欠陥があるからまずなにごとであれ 要件というもんが理解できないのは間違いない オマエも人に仕事をたのむだけの立場になったらな ← こういうバカには仕事を頼んではダメだ ということもこのスレで学べたハズだ コレもこのスレで得た貴重な体験だ コミュニケーション能力がゼロのニートみたいなヤツだからな こういうヤツは 間違いなくこっちがお願いしたもんとまったく違うもんあげてくる つまりこんなヤツには最初から仕事頼んだり関わらないのが吉 こっちの余計な手間と時間だけがかかるからな このスレは、色々学ぶことができる これからもちゃんとこのスレ読んで精進しなさい : デフォルトの名無しさん [sage] 2018/07/25(水) 23:28:31.94:EWaeEahr sqliteはメモリ上にデータベースを構築できる。 どうせやるならsqliteに勝てるような車輪の再発明を期待したい。 : デフォルトの名無しさん [sage] 2018/07/25(水) 23:31:38.85:EWaeEahr ramdiskで良くね?というのもある。 : デフォルトの名無しさん [sage] 2018/07/26(木) 00:14:32.88:yqOLTJbQ ってかまじな話、正解だと思えるレスも散見されてるぞ。 無視してるんだからどうしようもないが。何がやりたいんだこの馬鹿は? なお、俺的に正解と思えるのは、以下。(見落としあるかも) ---- 773デフォルトの名無しさん (ワッチョイ e7c3-WPlw)2018/07/08(日) 23:16:50.92ID:w/p0hjmq0 テキストのパースなんてそれこそperlやpythonにやらせろよ そんなところが速度にクリティカルに効いててゴリゴリ高速化しなきゃいけないのは作りがおかしい 866デフォルトの名無しさん (ワッチョイ 5fb3-C8Iw)2018/07/09(月) 22:41:30.68ID:Xc+Rjkat0 最低限のパースを実施して各レコードのオフセットを配列に入れて必要になった時に解析して表示すればいいだけかと 873デフォルトの名無しさん (ワッチョイ e7c3-WPlw)2018/07/10(火) 01:34:56.63ID:C7bP6ErJ0 なんかのログなんだろうけど、ログ吐く時に読み込みやすいように出し方考え直した方がいいよ 大本が変えられないならパイプ繋いでフィルタ噛まして、読みやすいように直したファイルを並行して吐くとかさ というかまず単にSECTION_NAMEごとにファイルぶった切っておくだけで良かったりしない?難しく考えすぎてない? 874デフォルトの名無しさん (ワッチョイ e7c3-WPlw)2018/07/10(火) 01:46:08.72ID:C7bP6ErJ0 どういうGUIが必要なのかわからんから的外れかもしれないけど ワイならSECTION_NAMEごとに集計したHTMLファイルかなんかを出力するプログラムをワンパスかけてから 後でそのHTMLをブラウザで見ることを考えたくなるんだけどそれじゃダメなの? 880デフォルトの名無しさん (ワッチョイ 4750-SFkP)2018/07/10(火) 07:31:15.21ID:wSs+8Os00 初めて開くファイルは使いやすいように変換して(キャッシュとして)保存しておいて 次回以降それを使うか 全ファイルバッチ処理で事前に変換しておくか かな ファイルを開く度に分オーダーかかるのは使いづらい どちらが良いかは使い方次第で : デフォルトの名無しさん [sage] 2018/07/26(木) 00:15:01.25:yqOLTJbQ まあ、俺ならperlで15000のファイルにあらかじめパースしてぶった切って、lessで見るね。 テンポラリファイルの有効/無効はタイムスタンプをチェックすればいいだけだし。 初心者は(選択肢を思いつけないから)無駄に難しい選択をしてはまることはよくあるけど、 正解をガン無視しているんだから死ねでしかないね。 これではお前ら的にもどうしようもないわな。 嘘を嘘と(ry は当然だが、 正解を正解と(ry だな今回は。 : デフォルトの名無しさん [] 2018/07/26(木) 00:27:42.26:/19Lz3R7 やっぱりなコレが低学歴底辺の限界 わかるわ 所詮、低学歴底辺のドカタ 低学歴底辺のドカタは自分でログ見るらしいからな すぐに分かるのが恐ろしい このスレにはそんなのしかいないわ : デフォルトの名無しさん [] 2018/07/26(木) 00:30:53.03:/19Lz3R7 クソニートの趣味のぱちょんこん講座の邪魔されて クソニートどもがイライラしてるのはわかるわ クソニートのツールなんかクソニートしか使わないからな クソニートらしい発想といっていい まず自分がどうするありきだからな 自分以外の人間なんか関係ない クソニート臭がプンプンする やっぱりなニオイは隠せないわ : デフォルトの名無しさん [sage] 2018/07/26(木) 05:31:33.95:rsKHES0B 自己紹介乙 : デフォルトの名無しさん [sage] 2018/07/26(木) 07:10:18.33:QCphLLid 前スレからID追うと、このスレ立てたの15Gテキストの質問者で ワッチョイとテンプレを失敗してる いっそワッチョイ付きで立て直して、ここは放棄するのもありじゃないかな… : デフォルトの名無しさん [sage] 2018/07/26(木) 08:02:19.67:wiCSHgxo 失敗してるワケねーんだよなぁ ワザとだろ 俺TUEEするためだけに立てられたクソスレだよw : デフォルトの名無しさん [sage] 2018/07/26(木) 08:03:29.18:wiCSHgxo やってることがTUEEとDANZAI、アホなSS未満のクズだろ だからワッチョイは無いw : デフォルトの名無しさん [] 2018/07/26(木) 15:23:01.83:MiqKt3xH 世の中のパーサーは入力としてストリームを想定する場合が多い。 一方、OSはストリームを想定しなくなってきている。 IOCP、epoll、kqueue等を想定するプログラムにとって、必要なものは、一文字入力すると状態が変わるようなプッシュ型パーサーではないだろうか。 : デフォルトの名無しさん [sage] 2018/07/26(木) 22:05:05.87:SqpdcEmq 文字列変換を質問したい : デフォルトの名無しさん [sage] 2018/07/26(木) 22:11:39.16:SqpdcEmq 途中で送ってしまった... キャラポインタをビーストリングに変換したいです マ ルチバイトトゥーワイドキャラでよい? 今やってるのだけど一切できなくて辛い 環境はウィンドウズです エヌジーワードのためカタカナ混ぜてます : デフォルトの名無しさん [sage] 2018/07/26(木) 22:43:19.63:vMAtbXfy C++的な回答をするなら、BSTRをラップしたCComBSTRクラスを使ったほうが楽だしドキュメントも多くていいと思うよ。 : デフォルトの名無しさん [sage] 2018/07/26(木) 22:54:29.47:ekCvPRG2 そんなのがあるんですね コム使うのは良いのかわからんな... : デフォルトの名無しさん [sage] 2018/07/26(木) 23:22:38.59:vMAtbXfy すでに知らないうちにCOMを使っているはずなので、今更COMを使ってよいか気にしなくていいよ。 : デフォルトの名無しさん [sage] 2018/07/26(木) 23:23:33.36:JU6NqyqF 俺は賛成。STLのテンプレもありでよろしく。 (まあ俺が賛成しても大局に影響はないが…) : ◆QZaw55cn4c [sage] 2018/07/26(木) 23:29:25.64:vjtcTWe7 別にテンプレがあろうとなかろうと、スレに投稿される内容に変わりはしない、と思うのですが? もしかして「おまじない」とかが好きなんですか? 半角氏は連続して投稿する傾向にあり、IDだけで割合に弾けるのでワッチョイは要らないと思っています : デフォルトの名無しさん [sage] 2018/07/26(木) 23:42:18.00:5Jkoyh2A あんなテンプレいらんだろ… まさか自分が作ったとか? : デフォルトの名無しさん [sage] 2018/07/26(木) 23:55:55.79:JU6NqyqF > テンプレがあろうとなかろうと、スレに投稿される内容に変わりはしない ならあってもいいって事になるが、それに対する反論は? 俺はワッチョイもあのテンプレも機能してたと見ている。 実際、もう初心者要らないんじゃ、って話になってたのは事実だろ。 お前がそれに反対したのも事実だが。 : デフォルトの名無しさん [sage] 2018/07/26(木) 23:59:13.70:OhRJcz2i ご意見ありがとうございます。 SECTIONごとの切り替え目安は下記の時間でSECTIONを切り替えながら別のGUIソフトでマウスを使って改善していきます。 @数値の数が一桁〜二桁程度だと数分で切り替え、 A数百〜数千レベルだと数十分〜数時間で切り替え、 Bそしてまた再実行しファイルを読み込み@に戻る 初期の小さい規模ではSECTION数が数十個で、各SECTIONの数値の個数はせいぜい数百レベルなのでSECTIONの切り替えが頻繁に発生します。 そして@〜Bを回すのが数十分〜数時間くらいでそれをくるくる回します。 数ギガレベルになるのは終盤になってからです。 という感じなのでファイルの再生成が頻繁に行われ、かつGUIでマウスで改善していくので マウスが手放せず解析表示もGUI操作が必須になる、という感じになっています。 小さい規模では特にSECTION切り替えが頻繁に発生するのでファイル分割で管理がわずらわしくなるのを避けたい。 まずここに重点を置き、そうすると大きい規模では読み込み時間がネックになるので高速化で対応しよう。 という状況で現在に至っているところでした。 : デフォルトの名無しさん [sage] 2018/07/27(金) 00:01:55.25:wdZoBIJt 死ねよゴミ。 俺はお前が正解を全部ガン無視したことを咎めてるんだよ。 : デフォルトの名無しさん [sage] 2018/07/27(金) 00:03:32.92:o3vIRrYt そんなもんなんだ Char**→LPCWSTR変換ってsetlocale使う方法しかない? : ◆QZaw55cn4c [sage] 2018/07/27(金) 00:13:35.77:dNDh2QHO >ならあってもいいって事になるが、 そうではなく、すでに在るこのスレを放棄する必要はない、と主張したつもりですが 同様に、例のテンプレが張ってあるスレの存在下で、新たにテンプレなしの新スレを作る必要もない、と考えます : デフォルトの名無しさん [sage] 2018/07/27(金) 00:32:44.94:27BaLAkY setlocaleは関係ない。setlocaleは、C関連の設定をすべて変えてしまうので、ここでは呼ばないほうがいい。 MultiByteToWideChar() で可能。 出力用のLPWSTR バッファは、スタックなりmalloc, new, std::vector<wchar_t> なりで確保したヒープメモリを使い、 受け取ったLPWSTR バッファの中身をCComBSTRのインスタンスにコピーするのがいいと思う。 : デフォルトの名無しさん [sage] 2018/07/27(金) 00:44:14.53:wdZoBIJt > そうではなく、すでに在るこのスレを放棄する必要はない、と主張したつもりですが じゃあそう書けよドアホ そしてその場合は285に安価しろ まあとにかく、俺は新しくスレを立て直すことに賛成だ。 あのテンプレも機能してたと思う。 そして15GB君と半角キチガイには何も教えてやる気はない。 スレ住民が出来ることは、正答例を提示することのみであり、 今回はこれは複数人から十分為されている。 ゴミなのは質問者および半角キチガイ馬鹿だけであり、 ワッチョイが意図的に落とされたことにより荒らされていると懸念されるのなら、 このスレを破棄して新しくワッチョイスレでやり直すのは極めて妥当だ。 んで、ついでに正解提供者がHDDの速度について知らないようだから教えておいてやる。 サーバーのHDDは一般にRAIDになっており、スループットだけはいくらでも上げられる。 詳しくはググッた方が分かりやすいからそうしろ。 なお一般PCも今時はRAIDを標準装備しているが、 1. そもそも複数HDDを接続しない 2. マザー等HDD以外の故障の場合に余計に死ねる ので一般PCでRAIDを構成することはあまり無い。 また、SSDが速いのはランダムリードであり、 シーケンシャルライト(ログ吐き)の場合はHDDの方が速かったりしたはず。 質問者と半角キチガイは死ねでしかないが、 正解提供者が疑問に思っていることがあれば、知ってれば答えてやるよ。 スレの質を上げる為に努力した奴らは報われるべきだと思うから。 今回は質問者が悪すぎた。これはご愁傷様。 : デフォルトの名無しさん [] 2018/07/27(金) 00:49:14.72:X8KcH05s オレが強いワケがないからな クソニートどもがよわっちいだけだからな クソニートどもが社会人に勝てるワケがない クソニートどもがとてつもなく弱いワケ その自覚がないのが恐ろしい : デフォルトの名無しさん [] 2018/07/27(金) 00:50:56.55:X8KcH05s クソニートどもの戯言が正解だって() 身の程知らずもいいところ クソニートどもはクソニートの狭い世界で すべてが完結してるからな その自覚がないから救いようがない : デフォルトの名無しさん [] 2018/07/27(金) 00:53:36.63:X8KcH05s このスレに相談してくる人間は クソニートのアドバイスなんか求めてないわけ? わかる? オレみたいなプロフェッショナルに回答を求めてるわけ クソニートのテキトーな戯言なんかだれも求めてない わかった? : ◆QZaw55cn4c [sage] 2018/07/27(金) 00:54:58.75:dNDh2QHO >あのテンプレも機能してたと思う。 根拠は? >ワッチョイが意図的に落とされたことにより荒らされていると懸念されるのなら、 >このスレを破棄して新しくワッチョイスレでやり直すのは極めて妥当だ。 新しくスレを立てても、そのスレにて半角君や150G君が発言を継続するのであれば、事態は変わらないのでは? 月並みな話だけれども、単にスルー力が足りないだけなのでは? 5年、10年とスルーし続けることも必要な場合はあると思います : デフォルトの名無しさん [sage] 2018/07/27(金) 00:56:25.04:A3iaMhaK わかった : デフォルトの名無しさん [sage] 2018/07/27(金) 01:18:44.81:wdZoBIJt なるほどお前とは話が通じないことは分かった。 お前が嫌われるのも納得だ。 > 根拠は? 先に「機能してなかった」根拠を提示してみろ。 > 事態は変わらないのでは? ワッチョイがあればここまで酷くはならない、というのが彼の見方で、 俺もそう思う、ということ。 というかマジでお前話の内容について来れてないだろ。 無理して食いついてこなくてもいいぞ。邪魔でしかないから。 : デフォルトの名無しさん [] 2018/07/27(金) 01:25:39.79:X8KcH05s もうねクソニートが必死でしょ すぐにクソニートなのはレスですぐにバレちゃうからな コイツの脳内ではインフラとソフトウェアすら組織で分離されてないみたいだからな クソニートの自作パチョコンの世界を そのまま脳内で再現してる : ◆QZaw55cn4c [sage] 2018/07/27(金) 01:33:55.71:dNDh2QHO >先に「機能してなかった」根拠を提示してみろ。 私は「機能していた」とも「機能していなかった」とも主張していませんが あなたは 「機能していた」と判断しているのであれば、その理由もおしえていただけませんかね >ワッチョイがあればここまで酷くはならない、というのが彼の見方で、俺もそう思う ワッチョイは有効期限が長すぎるし ID とちがって専用ブラウザでの機能が充実していないからね… 私は ID で快適にスルーするべきものはスルーできていて無問題なんですけれどもね : デフォルトの名無しさん [sage] 2018/07/27(金) 04:56:28.85:/nUzesew HTML出力を正解だと思ってるやつや size_t使ってる場所で出るコンパイルエラー程度で「動くコード書けよ」とか 恥ずかしいこと言った上に、謝りもしなかった初心者が 偉そうに仕切ってるスレって・・・w : デフォルトの名無しさん [sage] 2018/07/27(金) 06:57:19.44:Mz+rSfRQ コンパイルエラーが出るのはまずくない? : デフォルトの名無しさん [sage] 2018/07/27(金) 07:04:43.26:m0uy41dr 紙上コードでタイポするぐらいいいだろ! : デフォルトの名無しさん [] 2018/07/27(金) 08:03:50.66:u6e3tzrN ワッチョイがあればQz弾けるやん。 : デフォルトの名無しさん [sage] 2018/07/27(金) 08:28:06.62:NS0U2LcD 他のスレにはないのだから要るって主張してるほうが根拠を示すべきだろ。 : デフォルトの名無しさん [] 2018/07/27(金) 08:48:04.76:u6e3tzrN このスレにはQzが粘着してるやん。 : デフォルトの名無しさん [sage] 2018/07/27(金) 08:55:01.54:NS0U2LcD テンプレが何の役に立つの? : デフォルトの名無しさん [] 2018/07/27(金) 09:04:30.33:u6e3tzrN テンプレは俺が荒らしたから出来たものだし、あのテンプレがあると俺は恥ずかしくて荒らせない。 そこら辺の経緯を知りたいか? : デフォルトの名無しさん [sage] 2018/07/27(金) 11:24:09.66:DyyEKTZY 知りたい : デフォルトの名無しさん [sage] 2018/07/27(金) 11:30:38.87:NS0U2LcD それなら自分の机の上にでもはっとけばよくね? : デフォルトの名無しさん [sage] 2018/07/27(金) 12:40:38.56:dsPS3Oy7 すっぽすっぽ先生の日本講演の日なのにくだらねえ話ばっかりだな : デフォルトの名無しさん [] 2018/07/27(金) 15:48:27.31:u6e3tzrN すっぽん先生って誰だよ。 : デフォルトの名無しさん [sage] 2018/07/27(金) 16:00:10.02:454wB1N8 俺には ビャーネストスト に聞こえる。 ttps://ja.wikipedia.org/wiki/%E3%83%93%E3%83%A3%E3%83%BC%E3%83%8D%E3%83%BB%E3%82%B9%E3%83%88%E3%83%AD%E3%83%B4%E3%82%B9%E3%83%88%E3%83%AB%E3%83%83%E3%83%97 : デフォルトの名無しさん [] 2018/07/27(金) 16:06:17.77:u6e3tzrN 禿のことかよ。 : デフォルトの名無しさん [sage] 2018/07/27(金) 21:27:48.11:K5tMY89A ターミナルでタブキー押すとディレクトリやファイル名が補完されますがプログラム上でそれを起こすにはどうやればいいのでしょうか : デフォルトの名無しさん [sage] 2018/07/27(金) 23:26:03.34:yQgFrYID > 私は「機能していた」とも「機能していなかった」とも主張していませんが ならまずお前が俺に絡んできた理由を教えろ。 といってもお前は相当のコミュ障のようだからどうせトンチンカンな答えになるだろう。 続けても意味無いから答えを書いておいてやる。お前には会話の常識がないんだよ。 既に言ったとおり、 > そうではなく、すでに在るこのスレを放棄する必要はない、と主張したつもりですが なら俺にではなく、285に対してレス『しなければならない。』 そしてこの状況で俺に対して > >あのテンプレも機能してたと思う。 > 根拠は? と問いただすのなら、常識的にはお前は「機能してない」と思っていると仮定される。 逆に、この状況で単に > 私は「機能していた」とも「機能していなかった」とも主張していませんが という、単純に理由が知りたいだけだというのなら、それを明示『しなければならない。』 (それ以前に、普通に空気読める奴なら、不要不急な質問をここでは控えるが) お前は相手に自分の意図が正しく伝わるように書けてない。 だから無駄に脱線して空回りし、話が進まない。だから嫌われる。 コミュ障の典型的パターンだ。「自分はそう言ってませんが」で全て通ると思っている。 そうじゃない。 意図を正しく伝えて会話を成功させる努力義務は相互にある。お前は全くそれが出来てない。 おかげで俺は無駄な話を書かされまくってる。大迷惑だ。 というわけでQZは話にならないのでとりあえず放置だ。 お前は当然「あのテンプレは意味無い」と思っているんだよな? では逆に聞こう。 何故あのテンプレを剥がしたがっている奴がいるのだと思う? : デフォルトの名無しさん [sage] 2018/07/27(金) 23:31:35.61:n6a2xyXf 逆に聞くなよ。先に答えろアホ : ◆QZaw55cn4c [sage] 2018/07/27(金) 23:48:50.60:dNDh2QHO >そしてこの状況で俺に対して () >>>あのテンプレも機能してたと思う。 () >> 根拠は? >と問いただすのなら、常識的にはお前は「機能してない」と思っていると仮定される。 常識とはなんですか? かりに、あなたのいうところの常識が妥当なものであったとしても、自分で「仮定」といっているんですよね?あくまでも仮定ですよね? 仮定というからには、仮定が成立しない場合もありうるんですよね? 私は、 >あのテンプレも機能してたと思う。 という結論を、どういう推論を経て導いたのかを聴きたかっただけなんですが。 >単純に理由が知りたいだけだというのなら、それを明示『しなければならない。』 どうして? : デフォルトの名無しさん [] 2018/07/27(金) 23:58:28.72:u6e3tzrN テンプレがあると俺が荒らせないからに決まってんだろ。 : デフォルトの名無しさん [] 2018/07/28(土) 00:02:12.95:jbwKRPPF タブキーによる補完の仕組みは compgenを調べればすぐに分かる つまり これこそ ググレカス : デフォルトの名無しさん [sage] 2018/07/28(土) 00:43:14.60:/nZLT2uf 中二病こじらせてんのか : デフォルトの名無しさん [sage] 2018/07/28(土) 01:02:06.96:+BSazAb2 もっとメタプログラミング的なテンプレが良いね : デフォルトの名無しさん [sage] 2018/07/28(土) 02:09:39.90:cypKnBYi 回答は既に327に書いてある。 何度でも読み返せ。 まあお前らゆとりはその程度だとは思っていたさ。 おそらくお前の戦略は、俺が証明できないから無効だと言い張ることだろ。 だからこそ、お前らは先に言い出せない。必ず俺に先に言わせようとする。 それで、俺が証明できたら、どうするつもりだ? 実は逆説的だが証明自体は簡単なんだよ。 嫌がっている奴がいること自体が、効いてる証拠なんだ。 わかるか? お前があのテンプレを剥がしたがっているしたら、例えばそれはお前にとって不快だからだ。 不快だと思う奴は、そういうスレに来ない、または来にくくなる。 本当に訳の分からないテンプレを貼られてたら、アウェイ感が出るだろ。 そしたら入って行きにくくなるだろ。 だから、積極的にテンプレを改変しようとする奴がいること自体、効いてる証拠なんだよ。 勿論すら読んでいないゆとりレベルの馬鹿には効かないが。 とりあえずかなり長いことあのテンプレは貼られていて、それで質は保たれてた。 最近積極的に剥がし、そしてワッチョイも剥がされてこのザマだ。 ここは元通りに戻して様子見するのが妥当だよ。 長期的影響を考慮できない馬鹿はここは黙って見ているべきなのさ。 お前らはすぐ老害老害と言うが、リアルはさておき、ネットは老害が蔓延れるほど歴史がない。 お前らはもう少し、己の無能さを自覚し、知識がない分野については自重する分別を持つべきだ。 : デフォルトの名無しさん [sage] 2018/07/28(土) 02:10:55.23:cypKnBYi 2ch全体が、何故か「テンプレは不変」で纏まってるだろ。 俺はこの経緯/歴史は知らないが、可能性があるのは、 1. 全員がテンプレの効果を理解できる知能があって、自然にそうなった 2. どこかで話し合いがもたれて、そうなった 3. 試行錯誤され、結果的に遺伝的アルゴリズムの淘汰により、そうなった の3つだ。 ひろゆきは「昔は賢い人しかいなかった」と言うから1だと主張するかもしれんが、 俺はこれはさすがにあり得ないと思う。 みたいに無駄に噛みつきまくる馬鹿な奴は、どこにでも居るから。 (噛みつくのではなく、投稿内容で知識レベルを示すべき) さりとて2ももっとあり得ないから、おそらく3だと思っている。 つまり、テンプレにいちいち不満があるからといって改変許可していると収拾がつかず、 結果的にそういうスレは質が下がり淘汰されてきたと見ている。 そして2ch全体がそう染まったと。 俺自身は「嫌なテンプレを作る」のも効果がある、という考えだ。 それをいちいち外されるようでは駄目なんだよ。効果が無くなるから。 そして、その効果が無くなる=テンプレを自由改変するスレは淘汰されてきたと見ている。 とはいえ、お前らはこれでは納得いかないだろう。 なら、スレ割って実験してみればいいだけだ。単純な話だ。 の言うとおり、ワッチョイ付きで立て直せばいい。 そしてテンプレがいると思う奴は、投稿すればいい。少なくとも前スレ136まではそうだった。 逆にテンプレが要らないと思う奴はこのスレを引き続き盛り上げればいい。 俺はワッチョイ+例のテンプレ付きのスレにしか投稿しないことを約束する。 それでどっちが盛り上がるか勝負すればいい。分かりやすい話だ。 また逆に、これを避けること自体もまた、 「勝てる自信がない」という意味でテンプレが有効だと裏付けていることに気づけ。 ということでいいかね? 何なら俺がスレ立てて割ってやるよ。それで勝負すればいいだけだ。 断る理由も、お前らにはもうないはずだ。 : デフォルトの名無しさん [sage] 2018/07/28(土) 02:13:26.66:cypKnBYi なおあれは俺が作ったわけではない。 俺も当初意味不明なテンプレだと思ったが、しばらくすると、 確かにあのテンプレはこのスレの状態を極めて的確に表していると気づいた。 つまり、あれを「クスッ」っと感じれる奴だけ集まれ、ってことだ。 お前らがあれを剥がしたがっているのは、違和感ありまくりだからだろ。 その「違和感」こそが、効いている証拠なんだよ。分かるか? ただこの際、効いている効いてないは大した問題じゃない。 スレ割って、両方のスレがお互いに競うことが重要であり、それが直接的にスレの質の改善に繋がる。 だから、やればいいだけの話なんだよ。 ワッチョイ無し例のテンプレ無しなら、このスレを使え。 新しくテンプレが欲しいのなら、みんなで話しあって立て直すんだね。 それが妥当と思えなければ、俺が従来通りのスレを立てて様子見してやるよ。 : デフォルトの名無しさん [sage] 2018/07/28(土) 03:02:15.88:kbWsXNPG 主観的、思い込みだらけでなんの根拠も示せてない。やり直し あとワッチョイについてなくても無問題と言ってるのはQzだけだ : デフォルトの名無しさん [sage] 2018/07/28(土) 06:57:01.71:dOqiqC/T IDは日毎に変わってしまうので自分の発言を見直したい時に不便。 ワッチョイ便利よ。 : デフォルトの名無しさん [sage] 2018/07/28(土) 07:46:05.56:PxykokRm まあどうせそう連呼するとは思っていた。 ならスレ割って証明するしかない。 勿論反対はしないよな? とりあえず数日様子見して、話が纏まらないなら俺がスレ立てるよ。 それまでに、「機能してない」と主張する奴は「例のテンプレがある」スレには投稿しないと約束してくれないかね? 俺の逆で。 それで勝負だ。 「例のテンプレ」を支持する集団と、剥がしたい集団で、 どっちがマトモにスレ運営できるか、白黒つければいい。 QZ、お前もな。 ここまで絡んできて、僕は質問しただけです、は通らないぞ。 旗幟鮮明にしろ。 : デフォルトの名無しさん [sage] 2018/07/28(土) 07:53:22.58:Q0sE5Usk 専ブラ使えよ… : デフォルトの名無しさん [sage] 2018/07/28(土) 09:33:53.70:aLrZyGnX エラー落ちすると自分マーク消えちゃう専ブラあるからなあ : デフォルトの名無しさん [sage] 2018/07/28(土) 09:35:10.36:aLrZyGnX 真面目に議論したいなら、強勢IP表示した方が良い : デフォルトの名無しさん [] 2018/07/28(土) 10:14:13.47:jbwKRPPF メタプログラムとかにしたら絶対ダメだ 知恵遅れなんかがここぞとばかりに テキトーなこと書き込めるからな メタプログラムとか知恵遅れが一番参入しやすい このスレがなんで低学歴知恵遅れが多いか その理由がココにある : デフォルトの名無しさん [] 2018/07/28(土) 10:17:09.09:jbwKRPPF まじめに議論したいなら まずクソニートや低学歴知恵遅れ そして底辺ITドカタをこのスレから排除すること まずこっから : デフォルトの名無しさん [] 2018/07/28(土) 10:18:48.83:jbwKRPPF つまり バカは書き込み禁止 : デフォルトの名無しさん [] 2018/07/28(土) 10:20:31.04:jbwKRPPF このスレはバカの自覚がないバカが多い だから絶対にバカが治らない 一番たちがワルイ 排除するのが一番 そういうことだ : baka [] 2018/07/28(土) 10:32:02.99:nSNyoduL メタプログラムはダメだ。つまりマクロは使用禁止! : デフォルトの名無しさん [sage] 2018/07/28(土) 10:36:30.00:TrbWuBTr ご高説ごもっともです 深く感じ入りました 以降も発言を注視させていただだきたいと思いますので お手数ではありますが 固定酉をつけていただけませんか? ご勘案のうえ ご配慮いただけますようお願いいたします : デフォルトの名無しさん [] 2018/07/28(土) 10:37:15.94:jbwKRPPF テンプレ このスレは質問や相談にプロフェッショナルが答えます クソニート、低学歴知恵遅れ、底辺ITドカタの回答の書き込みはお断り コレでいい : ◆QZaw55cn4c [sage] 2018/07/28(土) 10:38:14.68:AqK1vkX7 >旗幟鮮明にしろ。 人間の集団を敵か見方かのいずれか一方に分ける、という人間が自然に持っている心理的限界を常に自覚しなければならないのです : デフォルトの名無しさん [sage] 2018/07/28(土) 10:47:27.41:aLrZyGnX ここがバカ用の隔離スレだからな 他のスレに迷惑かけないようにしろよ : デフォルトの名無しさん [] 2018/07/28(土) 10:52:55.97:qFm1KF6C ttp://zx6z.psbjgiksmdgctp.tokyo/jbkxtir/dgtjj/gf8u34t4tnj/2rt35wgeg : デフォルトの名無しさん [sage] 2018/07/28(土) 12:02:16.12:GDMb2Dkw 相変わらずお前は話が通じないな。 そして論点そらしか。お前もいつの間にパヨクになったんだ? 質問を変えよう。 お前は例のテンプレについて、「機能している」と思うのか、「意味無い」と思うのか、どっちなんだ? を読んだら「意味無い」と思っていると捉えられるのが普通だが、 お前的には違うつもりなんだろ。 ならさっさと答えろ。 ここまで絡んできて、まさか自分の意見がないとか、あり得ないよな? : デフォルトの名無しさん [sage] 2018/07/28(土) 12:19:46.53:aLrZyGnX 相手と話をしたいなら、普通は表現に配慮するものだ 職場や学校でいつもこうやって相手にけんかをふっかけているのかな? : デフォルトの名無しさん [sage] 2018/07/28(土) 12:33:49.69:C+3FbN1g だめだこりゃ : デフォルトの名無しさん [] 2018/07/28(土) 12:48:42.42:jbwKRPPF このスレの低学歴知恵遅れは 表現の配慮以前に質問者つまり相手がいってることを理解できないからな 当然、コミュニケーションは成立しない それ以外にもイロイロなものが欠落している 知能に著しい欠陥があると同時に社会性もない クソニートヒコモリ特有のレスパターンといっていい 2ちゃんねるにうじゃうじゃいる登校拒否児になったまっま高齢クソニートになったようなヤツのレスパターンそのまんまだからな 精神的にも幼い で、質問内容となんの関係もないなんの役にも立たない自分が知ってるしょうもないどーでもいいこと(つまり情報価値ゼロ)を スレに書き込んでオナニーしてるワケ つまりな社会と接点のないこのスレのクソニートはコレで社会と接点がもてたと錯覚してるワケ カンペキなプロファイリングをするとこうなる そうクソニートヒキコモリはどんだけ自分がゴミでクズな存在かその自覚をもてる日はこない だからクソニートヒキコモリはずっと引きこもってる 結論はこうなる : デフォルトの名無しさん [sage] 2018/07/28(土) 12:54:21.12:9n95SirI 自己紹介おつかれさまです。 : デフォルトの名無しさん [] 2018/07/28(土) 12:56:10.15:jbwKRPPF 図星なんだろ 素直になりなさい クソニートがまともな社会生活を送ってる人間に 勝てるワケがない クソニートはどんだけ自分がゴミでクズなのか その自覚をもつのが先だからな : デフォルトの名無しさん [sage] 2018/07/28(土) 12:58:46.04:C+3FbN1g 自己紹介おつかれさまです。 : デフォルトの名無しさん [] 2018/07/28(土) 13:00:33.92:jbwKRPPF 今回質問してたヤツとコミュニケーションが成立してたのは オレだけだったからな その事実がすべて物語ってる クソニートしかいないこのスレから クソニートを排除するのが先というのが よおく分かったからな : デフォルトの名無しさん [sage] 2018/07/28(土) 13:03:17.62:9n95SirI クソニートしかいないスレにいるお前はクソニート : デフォルトの名無しさん [sage] 2018/07/28(土) 13:03:23.84:C+3FbN1g なんか嫌なことでもあったのか : デフォルトの名無しさん [] 2018/07/28(土) 13:04:24.13:jbwKRPPF オレはクソニートをこのスレから排除する クソニートの居場所はもうない : デフォルトの名無しさん [sage] 2018/07/28(土) 13:07:50.50:oI8u94+S ETについてここに色々書いたことある者だけど ドヤりたいだけの馬鹿は確かに多い(ここに限らず)、けどそういうやつは見たらわかるよ 真面目にやってる人もたまにいるから一緒くたに否定しないでくれ : デフォルトの名無しさん [] 2018/07/28(土) 13:09:01.74:VyODD4HS プッシュ型スキャナー/パーサーについて考えよう。 : デフォルトの名無しさん [sage] 2018/07/28(土) 13:09:51.96:aLrZyGnX 面接官に「お前とはコミュニケーションが成立しない!」と罵ってしまったとか : デフォルトの名無しさん [sage] 2018/07/28(土) 13:11:52.48:oI8u94+S ただ俺も、まともにメタプログラミング実用してない癖に「今時のC++はメタプログラミングが主流」みたいな頭悪い大嘘ぬかす馬鹿は ここから出て行くどころか今すぐプログラミングを辞めてほしいわ どれだけ周囲に迷惑かけ、C++の発展を邪魔してるのか自覚してほしい : デフォルトの名無しさん [sage] 2018/07/28(土) 13:52:05.63:VPkQogVC なんで就職しないの? : デフォルトの名無しさん [sage] 2018/07/28(土) 14:06:46.53:zJtcAlIu >366 話し言葉もちゃんと半角なのいいね : ◆QZaw55cn4c [sage] 2018/07/28(土) 14:29:03.21:AqK1vkX7 なんで就職していないと思ったの? : デフォルトの名無しさん [sage] 2018/07/28(土) 14:43:10.37:qPhlaL35 会社で働いてるの? : ◆QZaw55cn4c [sage] 2018/07/28(土) 14:54:29.22:AqK1vkX7 税金は払ってますよ… : デフォルトの名無しさん [sage] 2018/07/28(土) 15:14:43.89:v07KtwGv 消費税は無職でも払わないといけないわなwww : デフォルトの名無しさん [sage] 2018/07/28(土) 15:25:30.82:8G21bbxI まったく質問に答えてないwww : デフォルトの名無しさん [sage] 2018/07/28(土) 16:23:31.31:0C7Daazh こんなガイキチのロートルを雇ってくれる会社なんかないな : デフォルトの名無しさん [sage] 2018/07/28(土) 16:45:03.65:jppVqscf 所得税は払ってるの? : デフォルトの名無しさん [] 2018/07/28(土) 17:37:40.26:5Q2+6uj+ ここ、いつから身の上相談スレになったの。話題を変えたい。 EASTL使ってる人いる? : デフォルトの名無しさん [] 2018/07/28(土) 18:16:36.03:VyODD4HS 検索してみたけど、C++17で良いのでは? 足りなければBoostで。 : デフォルトの名無しさん [] 2018/07/28(土) 19:26:09.04:jbwKRPPF このスレのクソニートどもは C++とかいってる前にな 自分の将来を心配したほうがいいわ : デフォルトの名無しさん [] 2018/07/28(土) 19:27:00.82:jbwKRPPF バレてないと思ってるかもしれないけどな チョンバレなワケ : デフォルトの名無しさん [sage] 2018/07/28(土) 19:27:31.79:FnoRf+hv つまんね C++の話題やれよ。 : デフォルトの名無しさん [] 2018/07/28(土) 19:28:10.66:jbwKRPPF まず邪魔なクソニートを排除するのが先だ : デフォルトの名無しさん [] 2018/07/28(土) 19:35:03.00:jbwKRPPF 低学歴がいくら低学歴を隠そうとしても 書き込みですぐにバレる クソニートはいくらクソニートを隠そうとしても 書き込みですぐにバレる 残念なことにな 当然、本人たちはそれに気付くことはできない バレてないと思ってるのは本人たちだけだからな : デフォルトの名無しさん [sage] 2018/07/28(土) 19:38:53.49:28wdIWuU 何度か話題に上ってるけど使ってないな てか何のために使ってるのか逆に聞きたい : デフォルトの名無しさん [sage] 2018/07/28(土) 20:28:07.43:k9DVhb8p まあとにかく予定を言っておく。 俺は8/1以降に『完全に従来通り』のスレを立てる。 つまり、ワッチョイあり、例のテンプレあり、スレタイも不変で、part138とする。 従来スレがいいと思っているのならそれ以降このスレ廃棄で合流しろ。 あのテンプレが気に入らない等、従来スレよりも良いスレが作れると思っている奴らは、 可能であればそれ以前にこのスレで話しあって、ワッチョイ、テンプレ、スレタイ等も決め、 新しいスレを立ててそっちに移住しろ。 それでその新しいスレが賑わい、従来スレが過疎って落ちるようなら素晴らしい。 この方式(フォーク)の特長は、誰も損をしないことだ。 最悪、従来通りのスレは手に入る。 上手く行けばそれよりよいスレが手に入る。 この手の争いはフォークで解決すべきだというのが、OSS界隈では常識でもあるし。 Part138が存続している限り、俺は君たちが新しく立てたスレには投稿しない。 これは約束する。 俺は君たちにはスレ運営能力なんて無いと思っているが、 もし君たちの新しいスレが成功すれば、俺が過小評価していただけであり、 これくらいのペナルティは受けるべきだ。 ただし逆に、新しいスレを立てた連中は、少なくともそのスレが存続している限り、 従来スレには来るべきではないとも思っている。 これがフェアというものだ。これは君たちの自己に対する過大評価へのペナルティとなる。 だからQZにもその点を問いただしている。 当たり前だが、自由には責任がつきまとう。 お前らが成人しているのなら、自分の行動には責任を持て。 どっちに付くかは自由、したがってその結果がどうなろうとも全てお前の責任だ。 : デフォルトの名無しさん [sage] 2018/07/28(土) 20:52:34.59:5Q2+6uj+ 自己満足 : デフォルトの名無しさん [sage] 2018/07/28(土) 21:01:08.20:5Q2+6uj+ EASTLをVS2017とwsl+gccで試した限りでは、あまり速度面でのEASTLの恩恵はない。 EASTLを使うと、知らないうちにstdのSTLに依存してしまっているコードに気づける利点があるといえばある。 : デフォルトの名無しさん [] 2018/07/28(土) 21:08:19.59:VyODD4HS 依存するとまずいの? : ◆QZaw55cn4c [sage] 2018/07/28(土) 21:10:24.75:AqK1vkX7 スルー力が不足しているだけなのに、また余計なことを… : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/07/28(土) 21:13:34.68:36Xz3wmQ 複数の端末を使っている場合は専ブラを使ってても自分が投稿した投稿を統一的に管理できない。 出来る専ブラもあるんかな? : デフォルトの名無しさん [sage] 2018/07/28(土) 21:17:49.26:DyF9e7oq ダム版でやれよ : 384 [sage] 2018/07/28(土) 21:18:22.83:oI8u94+S すでに言われてるけど最近のコンパイラと最近のC++なら当時の速度面でのデメリットは結構解消されてるだろうし ゲーム専用機向けの最適化がなされたものをコンパイラも優秀なPCで使う意味があるのかなと思ってね まぁ両方を眺めるのはもちろん勉強になるだろうけど : デフォルトの名無しさん [sage] 2018/07/28(土) 21:34:13.71:5Q2+6uj+ 組み込みの場合はまずいことが多い。組み込みは大抵stdもどきなので。 : デフォルトの名無しさん [sage] 2018/07/28(土) 21:40:05.17:nhKIzNwX 結局自分が気に食わない奴らは出てってもらってスレ継承させないと言ってるだけに聞こえるが。 自分の意見がそこまで正しいと信じているなら、part138とせずに新たに1から振り直したスレを作ったらどうなんだ? きっと賛同者がついていってくれるよ。 : デフォルトの名無しさん [] 2018/07/28(土) 21:41:26.83:VyODD4HS ここははちみつ餃子さんに一任しようではないか。 : デフォルトの名無しさん [sage] 2018/07/28(土) 22:02:48.96:K0euPiC+ ぼくはのっとりたいんです、まで読んだ : デフォルトの名無しさん [] 2018/07/28(土) 22:05:04.32:VyODD4HS 5chって投票所無かったっけ。 : ◆QZaw55cn4c [sage] 2018/07/28(土) 22:10:16.83:AqK1vkX7 「一人一票」を技術的に実現できないから無意味 : デフォルトの名無しさん [sage] 2018/07/28(土) 22:20:07.96:aLrZyGnX 実住所と氏名を晒し、郵送による本人確認、 投票用紙を送り、記名投票を実施する : ◆QZaw55cn4c [sage] 2018/07/28(土) 22:25:17.35:AqK1vkX7 なるほど メールアドレスを晒して、というのはアリかもしれない : デフォルトの名無しさん [sage] 2018/07/28(土) 22:27:16.84:K0euPiC+ あーまあいいや、ちゃんと回答する気になったから書いておいてやる。 なお396は俺な。 良くも悪くも、俺が立てるスレは『完全に従来通り』だからそのままで行く。 > 結局自分が気に食わない奴らは出てってもらってスレ継承させないと言ってるだけに聞こえるが。 お前も相当のアホパヨクだな。 俺が言っているのは、『従来通り』が嫌な奴は出て行って新スレを作れ、 もしそのスレが成功するならフォーク成功だ、ということ。 『自分が気に食わない奴ら』ではない。 そういうところがお前みたいなパヨクの駄目なところだ。 反対の反対になっているし、論点のすり替えを平気で行っている。 こういう、強制力を発動できないところで意見対立した場合、 現行はフォークで決着するしかない。だからそれを行う。 お前に良い案があるなら堂々とフォークすればいいし、そのブランチに賛同者は付いていくだろう。 俺は特に改善点を持ち合わせていないので、従来側のブランチは俺が担当する。 相変わらずQZは回答なしか。お前も相当ずるい奴だな。 まあそれはさておき、 > 一人一票 ってのは仮に実現できたとしても意味がない。 フォークが成功するかどうかは、アクティブコミッターをどこまで獲得できるかであって、 つまりここで言うと正しく回答できる奴、それは実力と時間も含めて、がどれだけどちらに付くか、 そして結果的にどちらのスレの方がマトモに機能するかであって、 ROMの票があったところで意味がないからだ。 だからスレ割ってどちらが繁盛するかがつまり投票なんだよ。それがフォーク。 : デフォルトの名無しさん [] 2018/07/28(土) 22:28:51.81:jbwKRPPF やっぱりなクソニートの書き込みってすぐに分かるわ : デフォルトの名無しさん [sage] 2018/07/28(土) 22:43:29.96:oI8u94+S ニートだのパヨクだの(´・ω・`) : デフォルトの名無しさん [sage] 2018/07/28(土) 22:44:52.59:C+3FbN1g わかるはずがないのに分かっちゃった気になるからコケるんやぞ : デフォルトの名無しさん [] 2018/07/28(土) 22:45:34.04:jbwKRPPF パヨチョンもクソニートも邪魔 排除が適切 適切な排除が必要 : デフォルトの名無しさん [sage] 2018/07/28(土) 22:48:36.99:XeXUtcmE 結局テンプレの必要性は証明できないのに従来通りだからで押し切るつもりか。 スレ分割したら従来タイトルとスレ番継承したほうが圧倒的に有利なのは明らかだろう。なんの検証にもならない。馬鹿なんじゃないか? : デフォルトの名無しさん [] 2018/07/28(土) 23:21:40.03:VyODD4HS テンプレが出来た経緯を知ってるか知らないかだろな。 : デフォルトの名無しさん [sage] 2018/07/28(土) 23:23:14.22:K0euPiC+ 少なくともアクティブな奴はここを読んでいて経緯は知ってる。 さらに8/1迄の先行件を与えている。 それ以上何が欲しいんだ? 従来通りなんだからスレタイとスレ番は継承するに決まっている。 新しいスレが同じスレタイとスレ番なら紛らわしいだけだ。 見た目分かるように何か変えろ。それは後発の義務だ。 お前が納得してない「テンプレの必要性」を俺はフォークで証明すると言ってるんだよ。 だからお前があのテンプレが悪い方向に寄与すると主張するのなら、 それを外せば勝手にスレは改善し、みんなそっちについて行くんだろ? 試してみろよ。 お前自身が「俺が気に入らないことをやるな」と言ってるだけなんだよ。 お前の考えが正しいことは、お前自身が説明しろ。 そしてどちらのスレが使われるかが、投票になる。 非常に民主的に決まる、良いやり方だと思うぜ、フォークは。 或いは他に良いやり方があるというのなら、提案してみろ。 俺は俺なりの説明はした。 あれで納得いかないのならどうやっても平行線だと分かっているから、 俺はフォークしかないと判断している。 お前は結局文句言ってるだけだ。 というかこの話も同様に平行線なので、もうこれくらいでいいか? いずれにしても俺は8/1以降に『完全に従来通り』でスレ立てる。 それをどう捉えるかは君らが決めることだ。 : デフォルトの名無しさん [] 2018/07/28(土) 23:23:17.95:VyODD4HS 争いとは無縁そうなはちみつ餃子さんに仕切ってもらえばいいんじゃないのか。 : デフォルトの名無しさん [sage] 2018/07/28(土) 23:28:59.65:aLrZyGnX 従来通りで良いなら、こんな大騒ぎしなくて良いだろう いつものようにスレを使い切りそうになってから立てる 住民も変わらない。内容も今まで通り これに不満な奴は、己の作りたい趣旨にそって 新しいスレを立てれば良いだけ : デフォルトの名無しさん [sage] 2018/07/29(日) 00:45:26.42:j115Aqon > こんな大騒ぎしなくて良いだろう お前がな。 俺は従来通りで立て直そうとしている。 必死に抵抗しているのは、例のテンプレを相当嫌っている奴か、 ワッチョイがあったら困る奴だろ。 従来通りでいい奴は、反対する理由がない。 : デフォルトの名無しさん [] 2018/07/29(日) 00:52:42.16:Yg/enGwg テンプレ登場人物で煽ったやつが俺なんだが、もしかして煽られた奴もここにいるのかい? : デフォルトの名無しさん [sage] 2018/07/29(日) 00:55:43.16:uqiXbB1D こっちはそんな条件じゃなんの検証にもならないと主張しているのに、フォークで証明すると繰り返すばかり。もはや反論になってない。 結局"おまもり"の有効性なんて証明できるわけがないから公平なふりして無理やり押し通そうとしている。 非論理的で話にならん。 : デフォルトの名無しさん [sage] 2018/07/29(日) 01:02:15.71:rd1wRLD1 この暑さでとうとう脳がやられたキチガイが出てきたなw : デフォルトの名無しさん [sage] 2018/07/29(日) 01:04:47.05:fkvLqjPx c++やってるやつは案の定融通の利かない頭きちきちの奴ら何だろうな テンプレがどうしたって言うんだか : デフォルトの名無しさん [sage] 2018/07/29(日) 01:06:57.02:1hBCvnSx ワッチョイ付きでいいよ。賛成する。 それが従来通りって意味であってる。 これでいい? : デフォルトの名無しさん [sage] 2018/07/29(日) 01:11:44.35:fkvLqjPx どの板でもスレの立て直しはたまにある でも、余程理不尽なことがない限り新しいスレに人は移動しない テンプレがないとかスレの番号が間違っているとかいう理由で人は移動しない 嵐が変なテンプレをつけたりおかしなスレタイに改変されてたら移動するぐらい : デフォルトの名無しさん [] 2018/07/29(日) 01:41:26.98:Yg/enGwg ぶっちゃけどっちでもいいしどうでもいいんだけどね。 : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/07/29(日) 03:10:55.83:bQEgGaK2 争ったら駄目なんだよ。 交渉すべき。 だが、どうせこういう手合いは何を言っても聞きゃしねぇから無駄。 : ◆QZaw55cn4c [sage] 2018/07/29(日) 06:18:22.84:bwtbjTxx そうそう、キーワード「お守り」「非論理的」、いいですねえ : デフォルトの名無しさん [sage] 2018/07/29(日) 07:02:10.69:8jVIjsgO ではお前らなりに論理的に検証になる方法を提案し、実行しろ。 「出来ないから出来ない」というのは止めろ。 元々はワッチョイの話だったのに、 都合が悪くなったからといってテンプレのみの話にすり替えるのは止めろ。 従来通り=ワッチョイあり、例のテンプレは2に投下。 part136の1+3相当。 : デフォルトの名無しさん [sage] 2018/07/29(日) 07:25:09.88:eV2zeRLd なんでも良いけどC++の話題やれよ。 戯言は無視でええ。 : デフォルトの名無しさん [] 2018/07/29(日) 11:44:38.77:LQAkWqzt クソニートを駆除するために はよバルサン焚けよ こいつら害虫だからな : デフォルトの名無しさん [] 2018/07/29(日) 11:51:12.53:LQAkWqzt ちなみに知恵遅れどものテキトーな回答のどこがおかしいか オレはすべて回答してる : デフォルトの名無しさん [] 2018/07/29(日) 12:37:46.37:Yg/enGwg プッシュ型スキャナ/パーサーはつなぎこみが楽だし、C++のテンプレートで使いやすい。 C++ Wayの一つとして研究されていいはず。 : デフォルトの名無しさん [] 2018/07/29(日) 13:09:38.19:Yg/enGwg Qiita落ちてる? : デフォルトの名無しさん [sage] 2018/07/29(日) 14:24:58.96:OHU95624 そこらじゅうで暴れてるな 半角ニート 初心者のくせに強がっちゃって : デフォルトの名無しさん [] 2018/07/29(日) 16:40:38.92:Yg/enGwg 雑談も桶になるといいよな。 : ◆QZaw55cn4c [sage] 2018/07/29(日) 17:23:58.49:bwtbjTxx >お前もいつの間にパヨクになったんだ? これは興味深い、 のどこに、パヨク=馬鹿左翼、を感じたのか、ちょっと教えていただけませんでしょうか? : デフォルトの名無しさん [] 2018/07/29(日) 20:05:51.80:L9bR4BuX C++掲示板も終わりか。 糞なくせに自己主張だけは一人前のお坊ちゃまばかり。 メスもいるだろうが... あんまり糞な事言ってると、後はわかってるだろうな : デフォルトの名無しさん [sage] 2018/07/29(日) 20:08:42.56:1hBCvnSx こういう人に限って何度も蘇ってくる : デフォルトの名無しさん [] 2018/07/29(日) 20:13:22.07:LQAkWqzt クソはただのクソ袋 コイツラはただのウンコ製造機だからな レス見ればすぐに分かる : デフォルトの名無しさん [] 2018/07/29(日) 20:15:29.45:LQAkWqzt クソニートどもがなんで こんなしょうもないスレの存続で必死なのか分かるだろ 居場所がココしかないから 現実逃避の場所がココだけだからな 簡単簡単 : デフォルトの名無しさん [sage] 2018/07/29(日) 21:17:20.23:UevmDhbi イカれを演じて暴言吐いてないと日常の不安に耐えきれないんだろうな…… なんかひどく可哀想な人だ…… : デフォルトの名無しさん [sage] 2018/07/30(月) 00:40:10.37:yV+7/MBa デストラクタで 型Tのメンバ変数Aのデストラクタ(cout等記述)が呼びされるはずなのに 型Tのメンバ変数Aと同じアドレスを持ったデストラクタ(解放だけ行う)が呼びされるんだが こんなバグ何が原因かわからないんだ助けてください もちろん型Tのデストラクタは一種類しか宣言してないし virtualもつけてるんだが… : デフォルトの名無しさん [sage] 2018/07/30(月) 00:58:21.77:CKgR1uCb コードで示してくれ : デフォルトの名無しさん [sage] 2018/07/30(月) 06:36:20.73:qFKbkkH1 Linuxでベースクラスで持たせてて元の型にキャストしてたりする? : デフォルトの名無しさん [sage] 2018/07/30(月) 08:41:35.39:qnQc5JET C++で今まで作ったものってなんですか? 自分はとにかく競プロしかしてないので、なにか作りたいんですけどC++という言語でしかできないことがあまり思いつかなくて : デフォルトの名無しさん [sage] 2018/07/30(月) 08:51:39.47:yNVCdeG4 言語処理系はCで書くより楽だよ : デフォルトの名無しさん [sage] 2018/07/30(月) 08:56:56.06:qnQc5JET ありがとうございます! 系統で答えてもらって助かります : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/07/30(月) 14:21:10.33:pFBrx3WW 「できること」という意味では C と大差ないわ。 でも、プログラムの部品 (ライブラリ) に高度な抽象化を被せることが出来る。 要するに高レイヤでは楽できる可能性が高い。 レイヤを分ける必要もないような小さなプログラムでは ありがたみを感じにくいかもね。 : デフォルトの名無しさん [sage] 2018/07/30(月) 19:42:11.85:qnQc5JET ありがとうございます 確かにC++はそういう要素大きいですよね! そこがいい部分で好きなんですけど、やっぱり難しい部分ですよね : デフォルトの名無しさん [] 2018/07/30(月) 21:47:15.09:hbo0m8kQ 上のほうで、唇がメンタイコの欲深そうなのがいるな。 2chに引っ込んでいろや。屑が : デフォルトの名無しさん [] 2018/07/31(火) 20:27:14.08:jvSfH+BG たらこじゃなくてか。 : デフォルトの名無しさん [sage] 2018/07/31(火) 21:48:26.82:f0EnkAzQ 明太子はたらこのこと 唐辛子を塗したやつは辛子明太子 : デフォルトの名無しさん [] 2018/07/31(火) 22:24:08.58:jvSfH+BG そっかw 素で辛子明太子と間違えたわ。 : デフォルトの名無しさん [sage] 2018/08/01(水) 00:24:00.80:VquDbSfz アルゴリズム辞典みたいなものを手元に置いときたいんだが、最も支持されてるのってどれ? ・網羅性が高い ・支持されている(売れている) ・日本語版がある ・コード例はあってもなくても良くて、あるとしたら C/C++ か擬似コードで という条件で テーマ別に「どれとどれとどれを持っとけばまず問題ない」という言い方でもありがたい とにかく網羅性を重視してる : デフォルトの名無しさん [sage] 2018/08/01(水) 00:35:56.57:/iJJIMGp 会社でC++書くことになったんですがコードが(ダブル)ポインタの嵐で読みにくいことこの上なくて辛いです 他にもstring使わずにchar配列だったり、vector使わずに配列だったり Cのスタイルで書ける部分はできるだけCのスタイルで書くほうがやはり好まれるものなのでしょうか 前に個人でちょろっと書いたときはもうポインタ使わなくて済むならできるだけ使わないように!なんて思いながら書いてたんですが : デフォルトの名無しさん [sage] 2018/08/01(水) 00:42:34.65:hfBYO5dB 色々な事情があるのかも Cからの移植とか 小規模だとヒープはトラブルの元なので極力使わないとか そもそもヒープが無いとか : デフォルトの名無しさん [sage] 2018/08/01(水) 00:56:47.14:8dN6QsuX ポインタ使わなくてもイテレータの嵐を渡り歩いたり スマートポインタが何をしているのかを理解するには ポインタを使う場合のノウハウ知識が必須だよ stringやvectorを避けている箇所にはそれなりの理由があるから 極力思い込みを排除して状況をよく見たほうがいい : デフォルトの名無しさん [sage] 2018/08/01(水) 01:01:22.52:uLizLGZM 合計\7,000-- 珠玉のプログラミング 本質を見抜いたアルゴリズムとデータ構造 | ジョン・ベントリー, 小林 健一郎 |本 | 通販 | Amazon ttps://www.amazon.co.jp/dp/4621066072 O'Reilly Japan - アルゴリズムクイックリファレンス 第2版 ttps://www.oreilly.co.jp/books/9784873117850/ C言語による最新アルゴリズム事典の詳細情報 : Vector ソフトを探す! ttps://www.vector.co.jp/soft/data/prog/se002453.html : デフォルトの名無しさん [sage] 2018/08/01(水) 02:12:56.94:VquDbSfz ありがとうございます。 最初のも辞典的なものなんでしょうか。 複数冊持つならばテーマ毎が良いかなとも思いましたが、特定のテーマに集中したものだと翻訳されているものが少ないのかもしれませんね。 2つ目と3つ目が部分的に補完しあっていることを期待して、両者とも購入しようかと思います。 : デフォルトの名無しさん [] 2018/08/01(水) 02:19:31.07:Bdxs44t0 the art of computer programming numerical recipes コレしかないわ : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/08/01(水) 02:25:19.38:oNWxQcbM 「C言語による最新アルゴリズム事典」はこないだ改定されて「C言語による標準アルゴリズム事典」という表題で売ってるぞ。 ttp://amzn.asia/cgZYRrQ ロングセラーになりすぎたせいで「いつまで最新やねん」というのは常々言われづづけてたからなぁ。 : デフォルトの名無しさん [sage] 2018/08/01(水) 02:49:17.77:GZaAdjmn 多分そいつは、Scott Meyers を知らないし、 ほとんどの言語に「Effective 何々」があることも知らないのだろうw そいつに、Scott Meyers を知っていますかって聞けば? プロで、江添亮とかScott Meyers を知らん奴は、いない : デフォルトの名無しさん [sage] 2018/08/01(水) 06:52:26.90:l9oYGZY2 会社に対してそいつ? : デフォルトの名無しさん [sage] 2018/08/01(水) 07:00:43.17:0Pfosj1X stringやvectorはヒープなので、呼び出し回数の多い関数で毎回インスタンスを作る場合は処理時間に注意したいところ。 : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/08/01(水) 07:02:13.71:oNWxQcbM まあ状況によるわなー。 後から伸長 (または縮小) が必要ないような固定長のデータを std::vector に入れるのは豪華すぎるので、 避けれるなら避けたいということは有りうる。 それでも今どきなら std::array を使って欲しいけど、 古いプログラムをツギハギしながら使ってるような場合にはなかなかそうもいかない事情があるのかもしれん。 単純には判断できないので、わかんないことはそれを書いてるやつに聞けとしか言いようがないんじゃない? : デフォルトの名無しさん [sage] 2018/08/01(水) 07:40:49.09:OccwPm6d stl使うと同バージョンのライブラリを実行環境にインストールするという考慮も増える : デフォルトの名無しさん [sage] 2018/08/01(水) 07:53:02.77:hfBYO5dB えっ? 何か勘違いしてないか? : デフォルトの名無しさん [] 2018/08/01(水) 18:55:57.40:4hR5DucF やっぱり通になると、明太子ひとつ、辛子抜きで・・・とか注文するんだろな。 : ◆QZaw55cn4c [sage] 2018/08/01(水) 19:05:43.34:6NCuGzpD ttps://www.amazon.co.jp/dp/4774196908 今年になって改訂版が出たらしい、だれかレビュー頼みます : デフォルトの名無しさん [sage] 2018/08/01(水) 19:11:49.62:a1G0tkY3 第2刷買ったっけな。役に立ったと思う。 : デフォルトの名無しさん [sage] 2018/08/01(水) 19:41:42.72:7TmTR3QV 板を荒らすのやめろよ : デフォルトの名無しさん [sage] 2018/08/01(水) 20:37:51.59:/iJJIMGp ポインタの件ですが参考になりました。まぁこっちはほぼ初心者で相手はベテランの上司なので何も言えない聞けないってとこですね stackoverflowとか読んで生ポインタあんま使うなスマポ使えオブジェクト使えるときは使えみたいなこと書いてあるの見るとこれでいいのかなって思いますねええ : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/08/01(水) 23:13:55.56:oNWxQcbM std::unique_ptr は実行時の速度ペナルティもほとんどないので、避ける理由はあんまりないよな。 例外がとんだ時のロールバックについても面倒なことを考えなくて良いし。 : デフォルトの名無しさん [sage] 2018/08/01(水) 23:34:41.68:GZaAdjmn たぶん、Scott Meyers とか「Effective 何々」とか、知らんのだろ たぶん正常に動作する、過去の資産を持っていて、それをコピーして使う作り方なのかも 現場でよくあるのは、サンプル欲しいと言うと、過去のソースコードを持ってきて、 これは動くから、そのままコピーして使って下さいと言われる 新しい事をしようと思うと、環境構築やらで、動かない部分が出てくるので、非常に面倒 それに過去のソースコードは、あちこちで使われているから、バグが少ないという実績があるけど、 新しく作ったものは、バグ出しが大変。 安定するまで、かなりの期間が必要 よほどの理由がない限り、新しく作らない : デフォルトの名無しさん [sage] 2018/08/02(木) 03:53:49.14:iSPNCiYK どれか一つで良くね ほとんど被ってるっしょ あえて選ぶならアルゴリズムクイックリファレンス 網羅性ってヤツを追及するなら、同じようなもんいくつも買うんじゃなくて自分で言ってるようにテーマに特化したものを買うしかない 名前忘れたけど文字列アルゴリズムのアレとか : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/08/02(木) 06:10:43.23:ksgx4qMg Knuth の 「The Art of Computer Programming」もその条件に当てはまると思う。 : デフォルトの名無しさん [sage] 2018/08/02(木) 07:12:52.80:NSwKZwuS 圧縮アルゴリズムなんか、本で憶えたんじゃなく FAXだとかモデムみたいな具体的なブツで憶えたな その他のアルゴリズムも単行本より雑誌で 憶えたのが多いし : デフォルトの名無しさん [sage] 2018/08/02(木) 10:20:23.60:KhTk1OQU そのあたりのアルゴリズムはCマガで覚えた : デフォルトの名無しさん [sage] 2018/08/02(木) 10:41:45.24:zFALVR92 これ? 高速文字列解析の世界――データ圧縮・全文検索・テキストマイニング (確率と情報の科学) | 岡野原 大輔 |本 | 通販 | Amazon ttps://www.amazon.co.jp/dp/4000069748 「高速文字列解析の世界」サポートページ - daisuke.okanohara ttps://sites.google.com/site/daisukeokanohara/iwanami_string_world : デフォルトの名無しさん [sage] 2018/08/02(木) 11:27:51.52:KhTk1OQU そのジャンルは大体の場合は条件固定じゃないからツール類を使ったほうがいい : デフォルトの名無しさん [sage] 2018/08/02(木) 17:47:42.68:QC+SfWnq ,451,468 蟻本の参考文献揃えるのがおすすめ : デフォルトの名無しさん [sage] 2018/08/02(木) 17:50:02.28:QC+SfWnq って思って確認したらそんな良くなかったスマン : ◆QZaw55cn4c [sage] 2018/08/02(木) 19:12:17.99:hFhSdR7O 文書圧縮について手元に置いていつも参照しているのは ttps://www.amazon.co.jp/dp/478983672X/ 今は、jpg の本が欲しいと思っていますが、なにかいいのはありますか? : デフォルトの名無しさん [sage] 2018/08/02(木) 19:38:11.37:nAUx6Lke C++極めたいんだけど、どうすれば極められる? 仕事はJavaScriptが主です 今はアルゴリズムの本読んでるのですが、個人的にはC++ドラフトの間違いを指摘できるレベルになりたいです : デフォルトの名無しさん [sage] 2018/08/02(木) 19:48:55.00:1EegAYN5 そんな事を人に聞いてる様じゃ一生無理 : デフォルトの名無しさん [sage] 2018/08/02(木) 19:57:10.95:Ro0F3mb9 oracle Solaris Studio の開発者になるとか ホワイトスミスに弟子入りするとか じゃね? : デフォルトの名無しさん [sage] 2018/08/02(木) 20:52:27.89:jf+aoeV/ いや実際C++使ってる職場少ないし、どうやってレベルを上げればいいのか分からん オープンソースを読むくらいしか思いつかない ジョークはいい : デフォルトの名無しさん [sage] 2018/08/02(木) 21:22:49.70:EkY0QbOC コンパイラ読めないと話にならんのじゃないか? : デフォルトの名無しさん [sage] 2018/08/02(木) 21:53:24.64:0KRWeg2T 職場に何を頼るの? : デフォルトの名無しさん [sage] 2018/08/02(木) 22:18:49.50:NSwKZwuS jpegが赤に弱いなんてのも ギョーカイの人とのおつきあいで ホーソレデ氏になった : デフォルトの名無しさん [sage] 2018/08/02(木) 22:24:42.73:Ar8oKNDv 読んでばかりじゃなくて自発的に自分で実際に書いてみないことには、いつまでたってもたいして身に付かないだろう。 極めたいなら、言語仕様の一つ一つを実際に使ってみて具体的に役立つケースや制限、制約、限界を体感して、メリットデメリットを洗い出すくらいのつもりで試してみたら? : デフォルトの名無しさん [sage] 2018/08/02(木) 23:26:26.75:jf+aoeV/ 嫌‥ の言うとおり実践的な立場かな それはもちろん分かる : デフォルトの名無しさん [sage] 2018/08/03(金) 02:17:39.89:gpdbLiuq まずは仕事で使う自作ツールをC++で書くとか 千里の道も一歩から : デフォルトの名無しさん [sage] 2018/08/03(金) 02:23:34.66:Ja3muTb1 自作ツールはまず、スクリプト言語でやってみて、速度面などで不満があった時だけC・C++に置き換えるのがいいと思うけどどうなの。 スクリプト言語とコンパイル言語の使い分けを覚える良い機会になる。 : デフォルトの名無しさん [sage] 2018/08/03(金) 02:28:52.17:gpdbLiuq 目的が自作ツールを作ることならそれで間違ってないが C++を極めることが目的みたいよ : デフォルトの名無しさん [sage] 2018/08/03(金) 07:41:26.05:jYMqs03L 極めると言うても、次の規格が出たらもう過去の知識だし、 いくら頑張っても到達できないゴールのような気がするなぁ。 規格を作る側に入り込めるなら話は違うかも知れんが。 C++は、自分より後ろにいる人をバカにするのが好きな人も多い感じだけど、 「そんな奴にはならん方がええ」 : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/08/03(金) 08:11:10.53:KKWcqInB ある程度の言語機能しか使わない範囲でも使い物になるように C++ は設計されてる。 ある程度を学めばその範囲内でも実務に使える。 もちろん深い理解があればプログラムをよりよく構成できるので、 実務に使いながら平行して段階的に学ぶということが出来る。 このことは設計者が著した D&E に書かれてる基礎理念のひとつだ。 地に足の着いた、現実的なものとして設計されてるんだよ。 だから、言語としての C++ だけに偏って学ぶのはお勧めできない。 言語として不格好な部分も現実の中では相応の合理性があったりして、 それを学習するのに適しているのは現実のプログラミングだと思う。 ただ、余談だけど、段階的に学べるようにというのはスタート地点として C を想定しているように思う。 C が当然の基礎知識としてあった時代には そこからシームレスに C++ を学んでいけるように設計するのは妥当な選択だったかもしれないが、 今の時代には C++ の中の C の部分は色々と足を引っ張ってもいるので 歴史が長いと泥臭い部分も積み重なっていくものだなぁと思いました。 (小並感) : デフォルトの名無しさん [sage] 2018/08/03(金) 10:14:53.94:lq/KEYA1 20年近く使ってるけど、ドラフトとか目にしても 「こんな機能来るんや!」ってwktkするだけだな 規格を知ってれば極めてる、みたいな風潮が最近あるけど間違いやで 言語はあくまで道具だから使ってなんぼ : デフォルトの名無しさん [sage] 2018/08/03(金) 10:29:03.00:cfhQf2V5 みんな深いレスありがとう ただ自分はどうしても諦めきれないので、仕事以外の時間は、C++に関するサイトや書籍やコーディングに費やすことになると思う Pythonは学ぼうとは思ってるけどね : デフォルトの名無しさん [sage] 2018/08/03(金) 10:49:41.39:TY6Sib0f ttps://github.com/python/cpython/tree/master/Python 今ならpythonのソースコードもオマケで学べるよ : デフォルトの名無しさん [sage] 2018/08/03(金) 12:16:04.74:cfhQf2V5 ありがとう こういうのはいいですね : デフォルトの名無しさん [sage] 2018/08/03(金) 15:41:42.81:Ja3muTb1 スクリプト言語には、ハッシュテーブルやディクショナリなどと呼ばれるキーと値の組を保存するコンテナ機能が存在する。 一般に高速とされるC++だが、実は、ハッシュテーブルだけはスクリプト言語の方がアクセス速度が速かった。 ただし、C++におけるstd::mapだけがハッシュテーブルに該当した頃の話。 今は、std::unordered_mapがあるのでスクリプト言語と同等以上の速度でハッシュテーブルにアクセス可能になっている。 : デフォルトの名無しさん [sage] 2018/08/03(金) 18:32:37.47:j4paKoWq mapはハッシュテーブルに該当しないだろ。 そういうときは辞書とかマップとか連想配列とかと呼ぶべきだ。 : デフォルトの名無しさん [sage] 2018/08/03(金) 18:52:42.14:9KGEdKKU mapは連想コンテナだが : デフォルトの名無しさん [sage] 2018/08/03(金) 19:03:27.95:j4paKoWq ハッシュテーブルじゃない : デフォルトの名無しさん [sage] 2018/08/03(金) 23:13:28.65:B+FOIxCl クラス設計で悩んでいるんだが、みんなの意見を聞きたい やりたいのは、いわゆるデザインパターン template methodを使ったクラス設計 class Parent { public: void execute() { method1(); method2(); method3(); } private: virtual void method1(); virtual void method2(); virtual void method3(); } 子クラスのChild1, Child2でmethod1(), method2(), method3()をそれぞれオーバーライドして処理を分けている ここで、Child3を追加しようと思うんだけど、method1()の内容はChild2::method1()と全く同じになる これをどう実装しようかいろいろ悩んだんだが、どれもピンとこない。 そもそも最初の設計がおかしーんじゃねーの?とかこうしたらよくない?とかここおかしくね?とか意見あったら頼む 一応以下は自分が考えていること @Child2, Child3の親クラスを抽出して、そっちに共通処理として書く →実装のために継承関係を作るのはあまりよくない気がする A別クラス(Utilクラス?)を作ってそっちにまとめる →メンバ変数とか使ってると少し面倒かな。本質的でない気もする。 BChild3::method1()->Child2::method1()とコンポジション的にする せっかく横のつながりができないようにしてるのに、ここでできるのはよくない C親クラスに共通メソッドを作って、Child2::method1()とChild3::method1()はそれを呼ぶ →しっくりこないけど、妥協点かな・・・ DしゃーないChild2::method1()コピペで! →これはまあ論外かな、時間が全くないときの最終手段 : デフォルトの名無しさん [sage] 2018/08/03(金) 23:20:08.01:cWBuX5k9 Child3をChild2の子にすれば? : デフォルトの名無しさん [sage] 2018/08/03(金) 23:22:51.86:Ja3muTb1 共通処理を継承関係と無縁なtemplate関数にできないか検討してみては? : デフォルトの名無しさん [sage] 2018/08/03(金) 23:26:40.59:Xb0+UQnK それは多分なんらか整列の問題でやりたくないんだと推測 俺なら4かな・・・ : デフォルトの名無しさん [sage] 2018/08/03(金) 23:28:34.49:Xb0+UQnK 4の改良?として 実装ファイルの無名スコープにvoid method1(const Parent& p)かな : デフォルトの名無しさん [sage] 2018/08/03(金) 23:36:56.13:xr+Hum6X 派生させるんじゃなくてメソッドの処理を別クラスにして移譲させるんじゃないの? : デフォルトの名無しさん [sage] 2018/08/04(土) 00:12:06.53:AH7fLvgn > 実装のために継承関係を作るのはあまりよくない気がする と言いつつ > 親クラスに共通メソッドを作って、Child2::method1()とChild3::method1()はそれを呼ぶ とか意味わからん 全然関係ないのにたまたま一緒になったと言うなら > しゃーないChild2::method1()コピペで! しかないと思うが : デフォルトの名無しさん [sage] 2018/08/04(土) 00:38:11.84:hQAAmMi0 コーディング規約で、引数や戻り値に参照型は使うな。わかりにくくなるから。ポインタで渡してポインタで返せ ってことになってるんですけどこれ一般的な考え方なんですかね。生ポインタ使いまくりの方がよっぽどわかりにくいと思うんですけど : デフォルトの名無しさん [] 2018/08/04(土) 00:53:09.47:CpwGeL+S そんなことよりメソッドでクラスのインスタンスが変更されない場合 そのメソッドにちゃんとconstつけろよ 引数でクラス使う場合も、そのクラスのインスタンスが変更されない場合 その引数にちゃんとconstつけろよ わかった? : デフォルトの名無しさん [sage] 2018/08/04(土) 00:58:03.49:0clFfLhT 言ってることがわからなくはないが一般的ではないと思う むしろ参照のほうが一般的な気がするな : デフォルトの名無しさん [sage] 2018/08/04(土) 01:05:30.18:Xh+3QD0k 引数については、読み書きする引数は注意をひくためにポインタ渡しにして、読み取りだけの引数は参照渡しにするといいのでは。 戻り値については、失敗したことを意味するNULLを使えるのでポインタのほうがうれしいかも。 : デフォルトの名無しさん [sage] 2018/08/04(土) 01:06:58.94:QByQ49xB execute が virtual でないってことは Parentを基底にしてコレクションしなくてもいいってことでOK? の言うように template で mixin 的に書いたら こんな感じになったー ttps://ideone.com/CcRHnO ChildがKlassになって兄弟関係がなくなってる : デフォルトの名無しさん [] 2018/08/04(土) 01:12:24.24:CpwGeL+S 戻り値なんか全部intでいい 0未満ならすべて一貫してすべてエラー 失敗がありえないブーリアンだけはかろうじてあり 引数をポインタで渡せないとNULLを渡して処理したい場合の処理ができない そういうとき困るから全部ポインタで : デフォルトの名無しさん [sage] 2018/08/04(土) 05:12:55.60:iUNKVgUH 素人ばっかりかw 「More Effective C++」の項目1 だろ Effectiveも読んでいない奴が、プログラミングやってるのが不思議。 どの言語でも、Effectiveは、入門書の次に読む本やぞ 参照は、確実にNULL じゃない場合。 また、参照に再代入はしない事 : デフォルトの名無しさん [sage] 2018/08/04(土) 05:25:27.41:YA1hWK5Y HRESULTも知らないヒヨッ子がいきってるな : デフォルトの名無しさん [sage] 2018/08/04(土) 06:40:25.30:O/qEXyQX 参照に再代入ってどうやんの : デフォルトの名無しさん [sage] 2018/08/04(土) 07:29:12.24:o+LfwS0J cからのコードが多い場合は統一のために参照渡しにしないってのはあるかな。 : デフォルトの名無しさん [sage] 2018/08/04(土) 07:33:54.06:YA1hWK5Y extern "C"に参照渡しなんかするかよ : デフォルトの名無しさん [sage] 2018/08/04(土) 07:42:44.96:Xh+3QD0k たかが参照にストレスを感じるようになったら、C/C++プログラマをやめた方がいい。引退時。 : デフォルトの名無しさん [sage] 2018/08/04(土) 08:00:44.90:mQQzn2Q+ C++を知らない老害が自分の為に決めた規約 積極的に逆らおう : デフォルトの名無しさん [] 2018/08/04(土) 08:29:49.29:Xh+3QD0k 私見を言わせてもらうと、多様性を受け入れ状況に合わせて柔軟に合わせていくのもプログラマあるいは技術者の重要なスキルなので、 一神教的な偏狭な人は若年性認知症とまで言ってのける気はないがかなり情報処理能力が低くなっているはずなので、プログラミングをやめた方がいい。 : デフォルトの名無しさん [] 2018/08/04(土) 09:34:28.56:0uMuTyGR プログラミングがどうこういうより国語を勉強しろ。 : デフォルトの名無しさん [sage] 2018/08/04(土) 09:35:16.17:o+LfwS0J 柔軟なのと規約を決めないのはまた別だけどね。 多様性といって新しい言語使って同じ過ちを繰り返している人を何人も見てると 色々バカバカしくなるってところはある。 老害と同じくらい歴史を見ない若造も有害という現実を見るのも良い。 : デフォルトの名無しさん [sage] 2018/08/04(土) 09:50:53.54:2dadGiC9 まあ少なくともが老害であるのは確か 実務経験が少ない若者が多いのも当たり前 : デフォルトの名無しさん [sage] 2018/08/04(土) 09:53:11.49:F7vd0ILk 老害なんて言っている奴、10年後に自分がそう呼ばれるって事気がついてないのかな・・・ : デフォルトの名無しさん [sage] 2018/08/04(土) 09:55:58.68:2dadGiC9 老人全てが老害になるわけではない 害があるから老害と呼ばれる : デフォルトの名無しさん [sage] 2018/08/04(土) 09:59:13.29:2dadGiC9 歴史? 過去発生した問題点や注意点を伝えるのは上司や先輩の役目 言語自体の歴史、CPU自体の歴史なんか 興味があるヤツだけ勉強すれば良い : デフォルトの名無しさん [sage] 2018/08/04(土) 10:02:32.30:F7vd0ILk 数人のグループで開発しているなら、あえてコーディング規約を設けずしても出来るだろうが 100人、1000人規模で開発しているなら、工業製品としての品質管理として必要になるでしょう : デフォルトの名無しさん [sage] 2018/08/04(土) 10:03:35.96:pDxZw3/e ぼくがしらないのはまわりがおしえないから さすがゆとり : デフォルトの名無しさん [sage] 2018/08/04(土) 10:08:29.90:2dadGiC9 ん? おれは伝える側の人間だが : デフォルトの名無しさん [sage] 2018/08/04(土) 10:11:50.81:2dadGiC9 100人規模1000人規模のソフト開発で 若者に言語の決定権があるってのは すごい会社だね : デフォルトの名無しさん [sage] 2018/08/04(土) 10:20:39.15:+vznLLf6 おかしくはない 好きにやれ動くブツだけもってこい : デフォルトの名無しさん [sage] 2018/08/04(土) 10:27:14.97:UzBGgsy3 いや別に好きにすればいいとは思うのだが 勝手に自分で選んだ言語固有の問題にぶち当たって 人に泣きつくなっつー馬鹿みたいな話があまりに多いんで。 まともに聞いてくれれば問題ない。 : デフォルトの名無しさん [sage] 2018/08/04(土) 10:54:42.16:VXqPvtUW 出来たばかりの最新規格の機能ならともかく C++98以前からずーっとある言語の基本機能を大した理由もなく縛ってるのは阿呆でしょ (「大した理由」があるなら縛ってもいいのよ、本当に大した理由ならな) : デフォルトの名無しさん [sage] 2018/08/04(土) 11:09:59.74:9+U//wQd 横だがDLLにstd::stringとかSTLのオブジェクトを渡したり返したりする設計ェ、、、 std::string程度なら現実には動くが、STLの内部動作のバージョン間の整合を誰も保証してくれない以上、 そういう設計をされるともはや誰も動作を保証できなくなる STLに限らずOpenCVやCRT絡みのオブジェクトでもそう、 というわけでこういうライブラリのバージョンの統一を担保できない状況ではchar[]の登場と相成りぬ、 : デフォルトの名無しさん [sage] 2018/08/04(土) 11:20:42.46:Xh+3QD0k char[]を使う関数をDLLにして、その関数をstd::string版関数オーバーロード的なラッパーをヘッダーに記述するでしょ、普通。 というか、std::string専用である必要はなく、template関数にしとけばSTLportだろうかstdだろうかEASTLだろうが対応可能になる。 : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/08/04(土) 11:23:58.97:SzDDeCK/ バイナリでの保証を考えると STL を使いにくいってのは確かにあるよな。 COM のような形式を使えばオブジェクト指向をバイナリレベルで管理することも出来るが、 それはそれで別の規約に縛られてしまうわけで。 どんな規約にするにせよ不満は有るよ。 一貫した規約が無い不満よりは規約に不満を持つ方がマシな世界になりがちなのが現実。 : デフォルトの名無しさん [] 2018/08/04(土) 11:33:14.55:CpwGeL+S そんなもん文字列のポインタ渡せばしまい 頭悪いのって悩む必要がないどーでもいい事で悩むからな それぞれの完結したモジュールでどのバージョンのSTL使おうが関係ないからな string ahoをaho.c_str()で渡すだけ : デフォルトの名無しさん [sage] 2018/08/04(土) 11:50:08.73:9+U//wQd ワカル それは全く普通の設計でおすなあ、 : デフォルトの名無しさん [] 2018/08/04(土) 11:54:01.62:CpwGeL+S 頭悪いシロウトほど可変長の文字列クラスをいちいち使いたがるからな : デフォルトの名無しさん [] 2018/08/04(土) 11:57:27.88:CpwGeL+S もしかしてvectorとかもいちいち自分で全部ラップしってんの とにかく頭が悪すぎるわ : デフォルトの名無しさん [sage] 2018/08/04(土) 11:59:57.25:9+U//wQd ここで問題なのは可変長の文字列クラスを使いたがる類の素人なのではなくて、 DLLのcallerとcalleeでSTLやCRTのバージョン相違しているケースを想像できない類の素人なのでは… : デフォルトの名無しさん [] 2018/08/04(土) 12:07:08.58:CpwGeL+S このスレにいるような知恵遅れがどんな作り方しても ぜんぜん問題にならない STL ver baka void bakabaka(char const* aho_) { std::string baka("shine"); ahoaho1(baka.cstr()); } STL ver aho つかったdll void ahoaho1(char const* aho_) { } なにが問題になるわけ? もうね知恵遅れのいうことは意味が分からないわけ : デフォルトの名無しさん [sage] 2018/08/04(土) 12:08:24.92:73YctOjT 極めて同意 仕事だと、過去のしがらみや、コーディングルール等に縛られて、思い通りにできない。 自分で地道に実験してゆくしかない : デフォルトの名無しさん [sage] 2018/08/04(土) 12:16:41.91:9+U//wQd いやほんと 呼び出し元と同じ完結したモジュール内で定義された関数にはconst std::string& ahoやconst std::vector &vecで渡し、 DLLで定義された関数にはaho.c_str()や&(vec[0])で渡す、と区別すればwrapperは要りませんなあ、 いやはやは便利なやり方をいろいろご存知ですなあ、、 : ◆QZaw55cn4c [sage] 2018/08/04(土) 12:54:24.58:Rdsot1y5 「〜なので、〜なので、○○だ」 読んでとまどいを覚える日本語文ですね : ◆QZaw55cn4c [sage] 2018/08/04(土) 12:56:26.35:Rdsot1y5 K&R2 の世界の人にとっては、十分に未知な領域なのでしょう… 私は K&R2 自体がすでに「堕落したもの」と考えております : デフォルトの名無しさん [sage] 2018/08/04(土) 13:59:14.93:f+sj1d72 某エディタにこの宗教にご執心の開発者がいるな : デフォルトの名無しさん [] 2018/08/04(土) 18:05:43.06:Xh+3QD0k ポリモーフィズム(多態性)を可読性を下げる欠点ではなく、可読性を上げる長所と考えるのがC++プログラマとしての信仰の基本なので、 様々な記述方法を許す多態性を嫌うのなら、C++を棄教せねばならないでしょう。 演算子オーバーロードを耐えられる情報処理能力があるなら、参照渡しにも耐えられるはずで、参照渡しだけ目の敵にするのはただの原理主義ですね。 : デフォルトの名無しさん [sage] 2018/08/04(土) 18:58:53.47:YA1hWK5Y 原理主義なんて高尚なもんじゃなくただのバカ : デフォルトの名無しさん [sage] 2018/08/04(土) 20:01:37.83:5qDWXahz なのでなのでは? : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/08/05(日) 00:20:51.12:Sl8YWqHi 言葉のニュアンス的には原理主義というより教条主義と言った方がこの場合は近いかも : デフォルトの名無しさん [sage] 2018/08/05(日) 05:07:56.69:xG+zmDln だれかたすけてください。 ttps://dotup.org/uploda/dotup.org1602882.zip こういうプロジェクトを作ったんですよ。 一応、ゲームっぽいものですが本質はそこじゃなくて。 えーっと、前方参照の解決がよくわからないので直し方教えてください。 普段小さなコードしか扱ってないのでソース分割あまりしないのでわけがわかりません。 コンパイルが通るにはどうしたらよいでしょうか。 お願いします。 : デフォルトの名無しさん [sage] 2018/08/05(日) 08:56:46.93:WhsUmrtL ツッコミどころはいっぱいあるけど とりあえずGameIssue.hの中でRougeStageの定義が見えてないからincludeしろ : ◆QZaw55cn4c [sage] 2018/08/05(日) 17:21:41.90:JAQP+wl+ ttp://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html 「変数を参照しているのか逆参照しているのかがいつもわからなくなる、だから必ずポインタを使う。アスタリスクが思い出させてくれるから」 C++ の参照は、呼び出し元の記述では参照として渡しているつもりなのか、実体を渡しているのかは区別できず、 呼び出し先の宣言で、はじめて参照か実体かがわかるんですね 個人的には C# のように、呼び出し側でも参照渡しを明示するのがスマートだと思います そのコーディング規約は良心的だと思います : デフォルトの名無しさん [sage] 2018/08/05(日) 17:44:24.77:kXrZdLCy 参照渡しを明示、とは具体的にどんな方法でしょう? : デフォルトの名無しさん [sage] 2018/08/05(日) 17:48:52.51:3KDX12Zf ref とかoutとかじゃね? : ◆QZaw55cn4c [sage] 2018/08/05(日) 17:55:52.90:JAQP+wl+ ttps://ideone.com/FMEesh 呼び出し側にもキーワード "ref" を記述します : デフォルトの名無しさん [sage] 2018/08/05(日) 18:07:51.68:lZNE8En/ ゲーム的にはコレか? Rog-O-Matic - Wikipedia ttps://en.wikipedia.org/wiki/Rog-O-Matic : デフォルトの名無しさん [sage] 2018/08/05(日) 18:26:33.87:kXrZdLCy C#ではなくC++での方法を聞きたかったのですが (^_^;) : デフォルトの名無しさん [sage] 2018/08/05(日) 18:32:14.36:yKLkGD1M constなしで参照渡しするなっていうコーディング規約ならgoogleも採用してるよ : デフォルトの名無しさん [sage] 2018/08/05(日) 18:34:25.86:QdoPuPH9 立てました。移動はご自由に。 C++相談室 part138 ttps://mevius.5ch.net/test/read.cgi/tech/1533459756/ : デフォルトの名無しさん [sage] 2018/08/05(日) 18:35:44.95:C8NdcnMU お前はC++とかより日本語の勉強しなよ… : デフォルトの名無しさん [sage] 2018/08/05(日) 18:56:17.20:K/INtz2h 単純にc++だけで閉じてれば参照で統一ってのもありだろうけれど c++ってそういう言語じゃないんだよね。 大抵大規模なコードは過去のcソースとごっちゃになってる。 : デフォルトの名無しさん [sage] 2018/08/05(日) 19:04:35.58:lZNE8En/ まずは非常にどうでもいいことだが、AddBug(SharedItem I) こういうモノがあると非常に縁起が悪い 他、小姑みたいなスペルミスの指摘は以下 Sheld盾の綴りはshield (Fieldと同じ原理) Acsessとaccess、 CollectoerとCollector TyleとTile InfmationとMakeTemporaryInfomationとinformation Initilaize、Initialize PraramA、parameterA RougeStage.hとRogue : デフォルトの名無しさん [] 2018/08/05(日) 22:24:16.29:yKLkGD1M いい加減な方法でビルドはできるようにしたのに遊べないよ! なんとかしろ、作者 GameIssue.h 12行目付近の class TemporaryInfmation; をいかに書き換える。 //class TemporaryInfmation; template <typename RougeStage> class TemporaryInfmationTmpl; using TemporaryInfmation = TemporaryInfmationTmpl<RougeStage>; RougeStage.hの3行目付近の class RougeStage; ~ TemporaryInfmationTmpl(RougeStage* RS) { をいかに書き換える。 template <typename RougeStage> class TemporaryInfmationTmpl { public: TemporaryInfmationTmpl(RougeStage* RS) { StatusCollector.hのStatusクラスの SetDirection()が2個定義されているのでどちらかを消す。 : 551 [sage] 2018/08/05(日) 23:51:00.40:xG+zmDln こんにちは。色々ご指摘ありがとうございます。 これまだ、脳内コーディングでシステム組んだだけでコンパイルが通って無いように、デバッグさえしてません。 なんとなーく、ローグのAI書いたら面白いんじゃないかと思って書き始めたのですが、沼にハマってしまいました。 とりあえず、前方参照の件は解決したみたいです。 その後大量のエラーと格闘していますが、支離滅裂なエラー(?)が大量に出ていて吐きそうです。 とりあえず、この件については閉めます。 ありがとうございました。 : デフォルトの名無しさん [sage] 2018/08/06(月) 00:29:53.59:b7eNDjo0 /* ref */ 引数内で、コメントを使えば? : デフォルトの名無しさん [sage] 2018/08/06(月) 04:28:30.45:EZAi1/yQ templateの右辺値参照もダメとか さすがに修正が必要だな : デフォルトの名無しさん [sage] 2018/08/06(月) 11:34:49.72:aJPEpevk 別の項にmoveコンストラクタ、move代入演算子、perfect forwardingするときは右辺値参照使ってええよって書いてあるから、右辺値参照は対象外なんだと思う。 できたら遊ばせてねー : デフォルトの名無しさん [sage] 2018/08/06(月) 12:01:58.56:aJPEpevk aiでautoってことは遊ぶんじゃなくて遊ばれちゃうのか… : デフォルトの名無しさん [sage] 2018/08/06(月) 13:00:05.48:6LLA+7Q/ Googleコーディング規約は古臭くてオワコンだからみんなはISOで作ってる規約を使おうね! って禿先生が講演で言ってた : 551 [sage] 2018/08/06(月) 18:02:56.58:L/6qyfUO ステージ生成してAIに解いてもらおうと。 そのAI書かないといけないんですけどね。 : デフォルトの名無しさん [sage] 2018/08/06(月) 18:04:44.92:L/6qyfUO しかし、ロジカルなことしたいのに、それ以外のエラーで死にかけるのは困ったなぁ。。。 : デフォルトの名無しさん [sage] 2018/08/06(月) 18:26:13.93:0lSQ8xAg アルゴリズムの間違いの発見や修正に比べたら、コンパイルエラーの解消なんてコンパイラさんが親切に教えてくれてるんだから、簡単なことだよ。 ロジカルなことしたいなら、コードの記述もロジカルに頑張れ : デフォルトの名無しさん [sage] 2018/08/06(月) 19:18:24.62:L/6qyfUO はい。がんばります。 : デフォルトの名無しさん [sage] 2018/08/06(月) 19:34:04.04:ykSda89u 今現在コード書いてないオワコン禿げのいう事のが信用ねーわ。 江添とかも同類。 コードをまともに書いてないやつが言語仕様決めてるってのがc++のクソなところ。 : デフォルトの名無しさん [sage] 2018/08/06(月) 19:45:02.37:Xt7Beabr コードがマトモに書ける人は書く方が忙しいので仕様どころではないって割とありそう : ◆QZaw55cn4c [sage] 2018/08/06(月) 22:20:17.51:zDoA3miN ryzen threadripper 2950X 16C32T 3.5GHz〜4.4GHz !! なんだか最近急にすごくなっていませんか? : デフォルトの名無しさん [sage] 2018/08/06(月) 23:09:33.16:L/6qyfUO 今までのAMDが怠けてただけだよ! : デフォルトの名無しさん [sage] 2018/08/06(月) 23:12:22.15:zQ2KZFwb floatのゼロ割りって、infになるものの、別にそれ自体が問題ではなくて、 それがクラッシュに繋がるような演算を行うことが問題であって、 例えば条件分岐で一定の大きさ以下の場合のみ参照するようにしているなら問題ないですよね? : デフォルトの名無しさん [sage] 2018/08/06(月) 23:30:48.85:Xt7Beabr ゼロで割り算したい意図は? : デフォルトの名無しさん [sage] 2018/08/06(月) 23:38:20.39:wPUCa9qR うん ゼロで割りたいなんて一言も書いてない : 579 [sage] 2018/08/06(月) 23:40:51.75:zQ2KZFwb 物体の速度なのでゼロのときがあるんです。 例えば、ある距離に到達する時間を求めるとなると、その距離を速度で割るのでゼロ割りがあり得ます。 : 579 [sage] 2018/08/06(月) 23:43:04.07:zQ2KZFwb ありがとうございます。 ゼロで割ること自体を回避するのって、けっこう厄介なんですよね・・・。 ある程度小さい場合は演算しないとか、どれくらい小さかったらいいの?みたいなことを考えないといけないので・・・。 無限大のときにどうする?という考え方の方が対処し易いように思います。 : デフォルトの名無しさん [sage] 2018/08/07(火) 06:50:16.11:PssQ1NSH 今Python + Opencvで画像処理をしているのですが、速度の問題でこれをC++に書き換えたいです Pythonのnumpyみたいなものはc++にも有りますか? OpencvのMatを(多次元配列に格納するなりして)C++で弄くれると嬉しいのですが : デフォルトの名無しさん [sage] 2018/08/07(火) 07:05:01.46:rmdm0Ojo まずOpenCVはもともとC++で書かれてるライブラリであってPythonのはラッパーだって所から始めようか : デフォルトの名無しさん [sage] 2018/08/07(火) 08:33:46.01:dagdXeyj めっちゃコード書いてんじゃん : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/08/07(火) 15:24:28.59:pMC2Ofi2 江添っちはコード例はたくさん書いてるけど、 アプリケーションとして完成したものはひとつだけしか見たことねぇ。 今はドワンゴにいるし、社内で使うツールを書いたりすることもあるのかなぁ? : デフォルトの名無しさん [sage] 2018/08/07(火) 15:40:59.13:3k81+fEr snprintfには第一引数をNULLにすることで本来何文字の領域があればよかったかを判断できるみたいだけど wchar_tにはそのようなものはないだろうか? : デフォルトの名無しさん [sage] 2018/08/07(火) 15:59:59.84:8+yE0dxd もしかして先月の27日、行ってきたの? : デフォルトの名無しさん [sage] 2018/08/07(火) 16:51:22.86:rmdm0Ojo おう行ってきたぞ 内容は知ってる話が多かったけど本人の口から聞けて楽しかった : デフォルトの名無しさん [sage] 2018/08/07(火) 20:17:28.47:7soFSQAi int main(int argc, char** argv) このchar**って他に変えれたりする?tcharとかwchar_tとか : さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2018/08/07(火) 20:20:21.90:p+v0mQmH Win32では、int wmain(int, wchar_t**)に変えられるよ。環境変数の引数も付けるのは変態かも知れん。 : デフォルトの名無しさん [sage] 2018/08/07(火) 20:21:20.30:7soFSQAi wmainになるのね 助かります : デフォルトの名無しさん [sage] 2018/08/07(火) 20:28:56.24:rmdm0Ojo 標準で認められてるmain関数はint main();とint main(int argc, char** argv);だけ それ以外は処理系の独自拡張 : デフォルトの名無しさん [sage] 2018/08/07(火) 20:40:16.10:8+yE0dxd 何か変わったこと言ってたらレビューplz : デフォルトの名無しさん [sage] 2018/08/08(水) 00:08:10.74:N8tx/Inn 実は宗教的な会合ではなかろうか 教祖もしくは弟子・伝道者・教皇の御言葉を拝聴する、それが宗教だ 現状、全ての教祖・開祖が生きている時代なので、それを感じないだけだ 10年後くらいにはぼつぼつ死にはじめる そこからが正念場だ サイモン&ガーファンクルも生きてるし、K&Rも生きてる、ついでに、ビャーネ・ストロヴストルップとかESRも生きてる 21世紀の今がそういう時代というだけだ : ◆QZaw55cn4c [sage] 2018/08/08(水) 00:15:12.33:35SEMuEM デニス・リッチーは2011年に亡くなった : デフォルトの名無しさん [sage] 2018/08/08(水) 00:32:10.97:bKO8QxvP イタコがふえるんやなぁ・・・。 : デフォルトの名無しさん [sage] 2018/08/08(水) 05:08:18.88:d90b/R1Y 宗教だと? 失礼だな 俺は禿を盲信なんかしてねえよ newなんかいらねえと俺は初版の当時から思っていたし 動的例外指定なんぞISOで否定されてんだぞ : デフォルトの名無しさん [sage] 2018/08/08(水) 05:53:47.96:bKO8QxvP ジェネリックなメモリ確保はどのみち必要だと思うよ。構文がどうであれ。 あと、動的にコンストラクタとか呼ばないといけないし必要だと思うよ。 個人的にnewはライブラリ屋さんが使えばいいものだと思ってる。 : デフォルトの名無しさん [sage] 2018/08/08(水) 06:09:55.58:d90b/R1Y placementみたいのがあれば充分 : デフォルトの名無しさん [sage] 2018/08/08(水) 06:18:49.25:bKO8QxvP タイプ量増えて嫌カモ。 new T[] ってできるのは結構強いと思う。 まぁ、自分でやる事はないけど。 : デフォルトの名無しさん [sage] 2018/08/08(水) 07:00:42.37:/7C7gkY0 A, Bそれぞれコンソールアプリケーションで作成 AがBをCreateProcessする状況を作成しました Aを実行したらBの専用のコマンドプロンプトが立ち上がって次々に処理をするのかな?って思ってたのですが 実際はAが立ち上げたコマンドプロンプトにBも出力などしてます これ分離することできないのでしょうか : デフォルトの名無しさん [sage] 2018/08/08(水) 07:11:53.05:d90b/R1Y タイプ量って、それは現状の構文での話やん コンストラクタを実行する構文がたとえば3文字のキーワードでできるなら その主張は崩れる : デフォルトの名無しさん [sage] 2018/08/08(水) 07:12:46.84:HlzHxdvD startコマンド : デフォルトの名無しさん [sage] 2018/08/08(水) 07:13:58.46:EhLv0UZk CreateProcess で "start cmd /c B.exe" を起動するんじゃだめ? : デフォルトの名無しさん [sage] 2018/08/08(水) 07:16:30.26:d90b/R1Y template <typename T, typename ...ARGS> T* create(ARGS ...args) { auto ptr = (T*)malloc(sizeof(T)); ptr->T(args...); return ptr; } 今C++をリメイクするならnewはクビだろ : デフォルトの名無しさん [sage] 2018/08/08(水) 07:29:04.25:eb4eIp4R AllocConsole : デフォルトの名無しさん [sage] 2018/08/08(水) 08:30:47.37:lcYbehB0 メタプログラミングをやってみたいんだけど、テンプレートが中々難しい みんなどうやって駆使してる? : デフォルトの名無しさん [sage] 2018/08/08(水) 08:31:50.27:jzgqxY6J 慣れ : デフォルトの名無しさん [sage] 2018/08/08(水) 12:14:27.90:rnBqZLRU LPCTSTRをマルチバイトでもUnicodeでも対応して文字列操作するコードってどう書けば宜しいのでしょうか : デフォルトの名無しさん [] 2018/08/08(水) 12:22:29.48:oJrY5QK4 関数名オーバーロード。それを応用するtemplate。の2つかな。 : さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2018/08/08(水) 12:22:37.74:NS40+Y1c まず、#include <tchar.h>。 次にTEXTマクロ、_Tマクロの使い方を学ぶ。 さらに、<tchar.h>を見ながら、文字列関数呼び出しをジェネリックなものに置き換える。 : さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2018/08/08(水) 12:24:54.57:NS40+Y1c 必要に応じて#ifdef UNICODEを使う。 : デフォルトの名無しさん [sage] 2018/08/08(水) 14:22:56.63:oRJqApyO お前は未だにPhenomなんてガラクタ使ってるんだっけ お前は無職だからそれでも恵まれすぎだけどな : デフォルトの名無しさん [sage] 2018/08/08(水) 14:33:18.94:y2s3oWVB Phenomってガラクタだったんだっけ? 使い始めてそろそろ10年になるが 現在Windows10が動いているけどな : デフォルトの名無しさん [sage] 2018/08/08(水) 17:05:37.41:5Rj4GrBF プログラムの板で、相手の使ってるハードウェアをネタに 悪口を言うのはよろしくないんじゃないか、と思ったけど、 アンカーの先を見たらそうでもないって気になった。 どうやら「固定ハンドルの人への攻撃はルール無用」という より上位のルールがあるようだ(あくまで個人的な基準)。 : デフォルトの名無しさん [sage] 2018/08/08(水) 17:11:27.46:7VVPJa90 ちょっとコテハンつけてくれないか? : デフォルトの名無しさん [sage] 2018/08/08(水) 18:09:52.75:d90b/R1Y 5ちゃんから入ったニワカ君だな コテハン様は名無しより偉いんだよ 失礼のないようにね : ◆QZaw55cn4c [sage] 2018/08/08(水) 19:20:38.29:35SEMuEM よく知っているね、phenomIIx6 1090 で粘っていますよ、zen2 7nm にて大人買いしようと資金を積んでいます… : デフォルトの名無しさん [sage] 2018/08/08(水) 19:47:33.67:y2s3oWVB おれはそのちょっと前のやつ ttps://i.imgur.com/VvRofi2.jpg : ◆QZaw55cn4c [sage] 2018/08/08(水) 20:17:40.85:35SEMuEM >固定ハンドル 固定ハンドルじゃありません、トリップです!! : デフォルトの名無しさん [sage] 2018/08/08(水) 20:31:08.79:foEj61l6 ぬるぽ : デフォルトの名無しさん [sage] 2018/08/08(水) 20:33:39.72:y2s3oWVB トリップ生成の種も後悔されているから、誰でもなりすませるかと : デフォルトの名無しさん [sage] 2018/08/08(水) 20:35:12.86:foEj61l6 好きな文字列をトリップにする枝 : デフォルトの名無しさん [sage] 2018/08/08(水) 21:20:41.90:IxvHxUWv Tに対応した文字列操作関数だけを使って操作するか、CT2W/CW2TでWに変換して操作するか実質二択。 : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/08/08(水) 21:45:50.76:X2pKT1V6 ガッ : デフォルトの名無しさん [sage] 2018/08/09(木) 06:46:59.99:YmSdriT+ ヌル文字列を固定ハンドルにして、 それに QZaw... ってトリップをつけてるのかと。 : ◆QZaw55cn4c [sage] 2018/08/09(木) 06:59:20.10:pqAEhCoO テスト ◆QZaw55cn4c の酉って割れてるよね? : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/08/09(木) 17:44:07.59:HZcgpX+K ワシのトリップもな。 : デフォルトの名無しさん [sage] 2018/08/09(木) 19:14:37.37:oFkunHGA この前のローグ、標準ライブラリにメモリ確保お願いしてるのに中でNULLオブジェクトを操作して落ちるようになって詰んだ。。。 もういやー。 : デフォルトの名無しさん [sage] 2018/08/09(木) 19:46:32.29:pqAEhCoO cpplintとかInferとかかければある程度は原因絞り込めると思うけど Winじゃ導入が面倒か : デフォルトの名無しさん [sage] 2018/08/09(木) 20:25:08.47:oFkunHGA 返信ありがとう。ヤル気がゴッソリぬけのたのでしばらく放置します。 特殊なこと全くやってないになんでこうなるんやー。 うぅ。。。 : デフォルトの名無しさん [sage] 2018/08/09(木) 20:59:37.47:N7zY56wf メモリ管理の問題ということは、特殊なことをやってたかではなくて、基本的なことが正しくできてないということだよ。 プログラム初心者ならメモリ管理やポインタに煩わされない他の言語の方が良いかと思うよ。 : デフォルトの名無しさん [sage] 2018/08/09(木) 21:08:18.06:pNZUF6kv まずはgoかjavaでもやったらいいんじゃないかね。 : デフォルトの名無しさん [sage] 2018/08/09(木) 21:16:17.87:8qUg7w5I (ひっそりアップロードするんや…) : デフォルトの名無しさん [sage] 2018/08/09(木) 21:21:51.13:2CPDzClL バグって自分が絶対に大丈夫なはずと思っている箇所に潜んでいる しばらく放置してから見つけると、意外に簡単に見つかる : デフォルトの名無しさん [sage] 2018/08/09(木) 21:47:57.57:dPMfUDyX gimpel の PC-LINTお勧め : デフォルトの名無しさん [sage] 2018/08/09(木) 21:58:35.34:jXGj01kj 共有メモリでBSTR型のデータを共有してるのだけど これのデータサイズ取得する方法ある? 対象領域の先頭ポインタを基準にSysStringLen使ってデータサイズとれるかな?って思ったがとれなくて困ってる : デフォルトの名無しさん [sage] 2018/08/09(木) 21:59:33.60:oFkunHGA 正解。慢心してた。 とおった!!俺のせいだった。ごめんなさい。 なんでスマポのインスタンス自動確保されると思い込んでたんやろ。ここだけ。 ごめんなさい。ごめんなさい。ごめんなさい。。。、 : デフォルトの名無しさん [sage] 2018/08/09(木) 22:30:56.92:BtZU6oOJ 慢心と呼ぶべきか、脳内キャッシュを利用した最適化と呼ぶべきか。 しばらく放置することで脳内キャッシュが解放され最新データの利用が可能になる、ありふれた光景。 : ◆QZaw55cn4c [sage] 2018/08/09(木) 22:34:40.62:rS9AJYq6 私の場合は、しばらく放置しただけではダメで、リリース(公開)することを契機に問題点が不思議と浮き彫りになる、という感覚を持っています : デフォルトの名無しさん [sage] 2018/08/09(木) 22:39:20.96:BtZU6oOJ リリース(公開)する時の質問の文章を書くことで、脳内のメモリ配置が変わり、脳内キャッシュが破棄されたのでしょう。 : デフォルトの名無しさん [sage] 2018/08/10(金) 01:22:05.57:W2ty1llG ttps://www.artonx.org/collabo/backyard/?BasicString bstrはちょっと特殊 : デフォルトの名無しさん [sage] 2018/08/10(金) 02:28:33.68:p9jfuJcV ttps://dotup.org/uploda/dotup.org1607631.zip ふー。皆さまのおかげで、最初のAIが階段に到達するまでできました。 とはいっても想像するよりよっぽどチープだけどね。 やっとまともにデバッグできるようになったら、色々仕様変更したい病発動してジレンマに陥ってる。 特にトラップクラスいらねーんじゃね?とか思い出して、根幹を揺るがせつつある・・・。 というわけで、皆様どうもありがとう。 ちなみにgithubにも公開してるけど、ライセンスはmitなので煮るなり焼くなりしていいよ。 そんな酔狂な人間がいるか知らんし、多分同じコンセプトで書き直したほうがいいカモだけど。 githubはソース置き場にしてるだけからgitの操作さっぱりわからん・・・。Orz : デフォルトの名無しさん [sage] 2018/08/10(金) 03:17:37.39:rT8gQk9M URLサンクス もしかしてサイズ取れないと言うことだろうか : デフォルトの名無しさん [sage] 2018/08/10(金) 03:47:22.54:B+R4+INY 左様そう考えて差し支えない ID:rT8gQk9M は近隣住民の安全のために、BSTRをもたず、つくらず、もちこませずを堅持すること : デフォルトの名無しさん [sage] 2018/08/10(金) 03:49:46.96:p9jfuJcV ttps://ideone.com/eDOvCH これで、Next保存する方法ないですか? ダイナミックキャストだけかな? 継承したら自分の型忘れるのホント面倒。 : デフォルトの名無しさん [sage] 2018/08/10(金) 03:49:53.40:beAAeNyA 乙 : デフォルトの名無しさん [sage] 2018/08/10(金) 04:01:00.88:B+R4+INY 保存(シリアライズ)のインターフェースをBaseに持たせてNextでNextの保存処理を実装したらいいんじゃね : デフォルトの名無しさん [sage] 2018/08/10(金) 04:06:44.82:p9jfuJcV ゴメン。ちょっと舌ったらずだった。 各クラスが持ってるTypeに自分の型を保存する方法ないですか? 継承して記憶喪失になっても復元できるようにしたいのです。 システム内でちょくちょく必要になるのは俺がタコだからなんだろけど。 もちろん、ユーザーコードには見せないようにしますよ。 : デフォルトの名無しさん [sage] 2018/08/10(金) 04:18:39.10:B+R4+INY 型を知りたいというならdynamic castが一番可搬性が高いやり方だと思うが 型を知りたいだけ、なんてことがあるのかどうなのか 普通はダウンキャストしたいという要求とセットのはずで、 ダウンキャストはインターフェースをゼロから周到に設計すればポリモーフィズムで解決できる 再設計をゼロからやれないときだけがdynamic_castの出番、という印象 ※ 個人の感想です : デフォルトの名無しさん [sage] 2018/08/10(金) 04:35:15.48:p9jfuJcV static_cast<DeleteAster<decltype(p)>::OldType*>(p)->OldTypeMethod(); 的なことをやりたいのですよ。 システム制作者が完全に意思疎通してて型がどうなってるか周知って前提なんだろうけど、 継承したものをごっちゃにコンテナに入れたら破綻するんだよなぁ。。。 anyもいいなぁと思ったけど、結局キャストする手間は変わらない。むしろキャスト必須。 なくても何とかなるけど、余計なコード書かないといけないからスマートな方法ないもんかなぁ、と。 : デフォルトの名無しさん [sage] 2018/08/10(金) 04:38:40.37:p9jfuJcV 動的に型を保存する型がほしい。 : さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2018/08/10(金) 04:42:20.85:KaDy9gZn スクリプトすればぁ〜? : デフォルトの名無しさん [sage] 2018/08/10(金) 04:45:12.86:p9jfuJcV ですよねぇ。。。はう。 : さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2018/08/10(金) 04:50:41.18:KaDy9gZn usingとかtypedefとかtype traitsとかautoとか使へば、何とかできる気もするが、 さういうコードをなかなか書けぬ人はスクリプト言語へ行くへし。 : デフォルトの名無しさん [sage] 2018/08/10(金) 04:58:16.48:p9jfuJcV rustがレールに乗ればなぁ。 そういえば、anyはtype_infoを返すメソッドがあるのでので動的にチェックができるみたいだねぇ。 ないよりましだけど、確率になっちゃう。ぐぬぬ。 そうそう、できそうな気はするんだよね。うーん。。。 : デフォルトの名無しさん [sage] 2018/08/10(金) 05:13:40.93:B+R4+INY ID:p9jfuJcVの悩みはコンパイル時に解決できないからusingとかtypedefとかtype traitsとかautoでは_ぽ (Base* pを扱うコードのビルドでコンパイラが常に*pの型がNextであることを見抜いたり、Nextの詳細を見通せたりするわけではない というわけでポリモーフィズムでしか解決できん ID:p9jfuJcVは、クラスごとに異なるOldTypeMethod()を呼び出すインターフェースCallOldTypeMethod()を設けて BaseやNextそれぞれ毎に、適切なOldTypeMethod()を呼び出す実装を与えなさい ※ 個人の感想です : デフォルトの名無しさん [sage] 2018/08/10(金) 05:52:46.45:d4sNno4d 実行したいこととオブジェクトの型が一対一対応であるという保証はない。 C++固有のポリモーフィズム機能を使うと他の言語に移植できなくなる。 実行したいことを列挙型なりビットフラグのメンバ変数として保存しておくのが一番楽だろう。 : デフォルトの名無しさん [sage] 2018/08/10(金) 05:53:49.02:0eRJE2kB テンプレートでダックタイピング的なことをするとか : デフォルトの名無しさん [sage] 2018/08/10(金) 05:59:59.43:d4sNno4d 追記。 やりたいことが1種類だけなら型と紐づいていても問題ないが、 やりたいことが複数の組み合わせになったら型と紐づいた設計は破綻する。 何がいいたいかというと、アキラメロンということだ。 : デフォルトの名無しさん [sage] 2018/08/10(金) 06:38:46.33:p9jfuJcV 皆さまありがとうございます。無理ぽいことがよくわかりました。 うーん。 仮想関数との違いがよくわからないなぁ。 プロキシ―オブジェクトってことなんだろうけど。 うーんと、ほしいときって初期化タイミングの調整とかそのへんなのでメインレールはインターフェースでいいんだよなぁ。 どうしてこう融通が利かないのか。設計のせいか・・・Orz 結局そういうことになるんですよねぇ。。。うーん。 コンセプトがいるような気がする。 さっき上げたコードをテンプレートとanyで書けば同じようなことはできるけど、エラー吐いたら地獄な気がする。 でも、そっちの方が高機能かもしれんなぁ。anyのキャスト問題を除けば。 : デフォルトの名無しさん [sage] 2018/08/10(金) 06:40:45.22:p9jfuJcV とりあえず、お付き合いいただきありがとうございました。 今日は寝ます。また。 : デフォルトの名無しさん [sage] 2018/08/10(金) 07:05:11.27:f/eWc4F9 Unicodeの時はwchar_t、マルチバイトのときはcharとして扱ってデータをコピーしたい その切り替えを処理途中にifdef入れまくるのは不適切だと思うからdefineかtypedefを一度することによって 自動で切り替えられるようにしたいけどtypedefだとできない? #ifdef unicode #define tlen wcslen #else #define tlen strlen #endif int main () { TCHAR a; int size = tlen(a); } : デフォルトの名無しさん [sage] 2018/08/10(金) 07:07:47.43:iZqKv3XP コピーだけなら簡単 : デフォルトの名無しさん [sage] 2018/08/10(金) 07:10:21.06:f/eWc4F9 コピー以外も色々と : デフォルトの名無しさん [sage] 2018/08/10(金) 07:19:12.22:iZqKv3XP 色々と じゃ答えようが無い : デフォルトの名無しさん [sage] 2018/08/10(金) 07:19:41.44:iZqKv3XP 色々と 頑張ってね : デフォルトの名無しさん [sage] 2018/08/10(金) 07:31:58.40:d4sNno4d 以下のようなwchar_t, char に応じたオーバーロード関数もある。私は使わないけど。 std::char_traits::length(const T* s) : デフォルトの名無しさん [sage] 2018/08/10(金) 07:31:58.98:PNfVMsqd 色々と間違ってる : デフォルトの名無しさん [sage] 2018/08/10(金) 07:33:16.73:X/p1NsAX コンパイル時に決まってるならテンプレートにすればいい : デフォルトの名無しさん [sage] 2018/08/10(金) 07:40:29.94:f/eWc4F9 文字列長を求める データコピー Stringstream : デフォルトの名無しさん [sage] 2018/08/10(金) 07:44:16.79:f/eWc4F9 これだとLengthに特化したやつだけになるのかな? 他にもあるので切り替え方法が知りたく コンパイル時には決まってます テンプレートを作成するってのはT型を作るってことかな? : デフォルトの名無しさん [sage] 2018/08/10(金) 07:46:33.59:uYApHCeM クラスのインスタンスのコピーさせない方法ってコンストラクタにdeleteをつけるだけで実現可能? それとも違うんかね? 参考を探していてもデフォルトコンストラクターにつけているだけで 複数のコンストラクターがある場合とかがわからない : デフォルトの名無しさん [sage] 2018/08/10(金) 07:59:27.52:iZqKv3XP コピーコンストラクタとoperator = をprivateにして 関数の実体も作らない : デフォルトの名無しさん [sage] 2018/08/10(金) 08:15:19.60:cglfv0MQ 今は=deleteも出来るぜ。 : デフォルトの名無しさん [sage] 2018/08/10(金) 08:48:18.73:uYApHCeM privateにすることでできそう ありがとう : デフォルトの名無しさん [sage] 2018/08/10(金) 08:49:25.57:a+3O8uOm C++極める方法教えてよ : デフォルトの名無しさん [sage] 2018/08/10(金) 08:53:13.90:FVsJ4La+ STLの仕様を見ます 自分で実装します ソースコードをみて答え合わせをします まずはvectorから、ハイ、どうぞ : デフォルトの名無しさん [sage] 2018/08/10(金) 09:02:52.19:I9yy5anA 高位合成toolを入手します。 あなたの思った通りの動きをするCPUを作れば完成 : デフォルトの名無しさん [sage] 2018/08/10(金) 09:44:57.66:UZimlLTI CreateProcess失敗したときのhProcessに何が入るか記載しておいてよmsdn NULLなの!?それとも別なの!? msdn使いこなせるやつすげぇよ本当に : デフォルトの名無しさん [sage] 2018/08/10(金) 09:51:57.65:I9yy5anA そんな引数無い事について以下100レス程 : デフォルトの名無しさん [sage] 2018/08/10(金) 10:25:12.98:NKvoiPPS char_traitsの関数はオーバーロードじゃねえだろ 引数ではなくスコープで区別するんだから : デフォルトの名無しさん [sage] 2018/08/10(金) 12:02:09.34:d4sNno4d スコープ? : デフォルトの名無しさん [sage] 2018/08/10(金) 12:20:52.35:LvXbuhRM CreateProcess()使ったことあれば lpProcessInformation.hProcess ってわかると思うが… 何も書いてない → 何が入っているかわからない ってことだろ : デフォルトの名無しさん [sage] 2018/08/10(金) 12:21:22.72:nFJe7QfE ttps://cpprefjp.github.io/lang/cpp11/defaulted_and_deleted_functions.html : デフォルトの名無しさん [sage] 2018/08/10(金) 13:06:07.39:I9yy5anA HANDLEならINVALID_HANDLE_VALUEがデフォでしょ : デフォルトの名無しさん [sage] 2018/08/10(金) 14:25:58.73:NKvoiPPS std:char_traits<char>::length(const char*) std::char_traits<wchar_t>::length(const wchar_t*) こういう関数の選択は引数によらない wchar_t x[2]; std::char_traits<char>::length(x); //error : デフォルトの名無しさん [sage] 2018/08/10(金) 14:45:17.93:LvXbuhRM だからそんなことを期待しちゃダメってこと : デフォルトの名無しさん [sage] 2018/08/10(金) 15:10:51.55:ayqbPQA0 wchar_tを使うとわかっていてテンプレート引数にcharを入れるのはおかしくない? : デフォルトの名無しさん [sage] 2018/08/10(金) 18:49:42.52:hMB1uQwa 関数が失敗したら新しいプロセス自体作れられないんだから hProcessが不定でも何も困らないと思うが : デフォルトの名無しさん [sage] 2018/08/10(金) 18:53:21.62:NKvoiPPS std::char_traits::length(x); //error : デフォルトの名無しさん [sage] 2018/08/10(金) 19:18:52.44:7XXHmUWL おまいらコミュ障かよ : デフォルトの名無しさん [sage] 2018/08/10(金) 19:19:41.62:JXFPQdyt std::char_traits<wchar_t>::length(x);//0 : ◆QZaw55cn4c [sage] 2018/08/10(金) 19:23:47.91:H9lF8aPc >まずはvectorから、ハイ、どうぞ これ、いちどやってみたいですね… ttps://mevius.5ch.net/test/read.cgi/tech/1434079972/33 : デフォルトの名無しさん [sage] 2018/08/10(金) 21:04:31.61:U4E1U51M このメンツで開発とか地獄だろうな。。 : デフォルトの名無しさん [sage] 2018/08/11(土) 08:11:36.74:dFDFw6X4 ガイジしかおらんやんけ… : デフォルトの名無しさん [sage] 2018/08/11(土) 11:00:44.96:X6Hz/xY3 char_traitsの件、どうも話通じてないなあ : デフォルトの名無しさん [sage] 2018/08/11(土) 11:25:54.74:4zfRZVUI 多重定義, オーバーロード - Wikipedia ttp://https://ja.wikipedia.org/wiki/%E5%A4%9A%E9%87%8D%E5%AE%9A%E7%BE%A9 "> ttps://ja.wikipedia.org/wiki/%E5%A4%9A%E9%87%8D%E5%AE%9A%E7%BE%A9 質問者が解決の糸口を見つけられればそれでいい。 : デフォルトの名無しさん [sage] 2018/08/11(土) 12:18:16.68:X6Hz/xY3 Wikiより規格票な N3337 13 Overloading [over] When two or more different declarations are specified for a single name in the same scope, that name is said to be overloaded. JIS X3014:2003 13. 多重定義 同じ名前を指定した異なる宣言が同一有効範囲内に複数ある場合,その名前は,多重定義されているという。 言わんでも解るだろうから、説教臭いことはあえて黙っておく : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/08/11(土) 13:37:39.73:zO3XAoAm たしかに のいう「オーバーロード」は用語の使い方が誤っているが、 それはそうとしてオーバーロードっていう言葉の中にバーローという言葉が入ってるから、 オーバーロードの話題が出るたびに俺の中のコナン君がバーローとささやくので、 お前らにも同じ呪いをかけてやろう。 : デフォルトの名無しさん [sage] 2018/08/11(土) 13:41:08.56:xFvEQmr2 真実はいつも多重定義されない! : デフォルトの名無しさん [sage] 2018/08/11(土) 13:43:33.49:xFvEQmr2 std::char_traits<char>::length()と std::char_traits<wchar_t>::length()は 互いに同じ名前(a single name)なんやろうか… : デフォルトの名無しさん [sage] 2018/08/11(土) 15:53:50.27:xFvEQmr2 >どうしてこう融通が利かないのか。設計のせいか・・・Orz ユーザーコードにクラスの中で定義された型(Base::TypeやNext::Type)を見せるのはやめて、 NextやBaseのオブジェクトのふるまいとしてだけ見せたら宜しいかと ふるまいだけを見せる抽象化はまず純論理的にはポリモーフィズムで逝ける 次の段階として、呼び出しの度にvtblの間接参照が一発入る遅さを嫌い、高速化したいという要求が生じるかもしれないが そのときは知らん(テンプレートによるダックタイピングでさらに戦うこともできるが同一翻訳短以内でのcloseが前提でありかつクラスの継承の恩恵にはなかなかあずかれない : デフォルトの名無しさん [sage] 2018/08/11(土) 15:58:27.82:xFvEQmr2 なおふるまいだけを見せる抽象化ができないオブジェクト指向言語とか無いから他言語への移植性とかを気にするのは狂気の杞憂 ていうか非オブジェクト指向言語であっても関数ポインタと構造体が使えれば似たようなことはいつでもできる : デフォルトの名無しさん [sage] 2018/08/11(土) 18:59:43.05:X6Hz/xY3 非オブジェクト指向言語とオブジェクト指向言語で 最終的に作れるものと作れないものは その違いによる差は全くないんだが : デフォルトの名無しさん [sage] 2018/08/11(土) 22:22:49.51:xFvEQmr2 ちなは、へのレス。 : デフォルトの名無しさん [sage] 2018/08/11(土) 22:42:05.15:4zfRZVUI 技術系の板でID使い分けする惨めさよ : 707 [sage] 2018/08/12(日) 07:44:03.92:2Xoj+DoI 俺の偽物がいるな : デフォルトの名無しさん [sage] 2018/08/12(日) 20:13:35.92:KnTIebYQ レイトレーシングをやってみたいんですけど、何もない状態から画像を生成するのと、画像処理(opencv)でやろうと思ってます。 前者と後者とも資料は見つけたのですが、どうやって勉強するのがおすすめですか? opencvで例えばアイドルの画像をCGっぽく、またはアニメっぽくはできたりするのでしょうか? : デフォルトの名無しさん [sage] 2018/08/12(日) 22:21:45.58:MDfKI+a6 多分君には無理だからそういったアプリを探しなさい 煽りでも何でもなく実力不足 : デフォルトの名無しさん [sage] 2018/08/12(日) 23:17:59.82:RJjtK8Ko レイトレーシングの本質は三次元空間での光の挙動のシミュレーションであって 既存の画像を加工するような技術じゃないぞ : デフォルトの名無しさん [] 2018/08/13(月) 00:27:19.20:p4qIMBze Late racing. : デフォルトの名無しさん [] 2018/08/13(月) 00:28:37.24:p4qIMBze 視線の追跡したほうが効率よさそうな気がする。 目に入らない光は無いも同然だし。 : デフォルトの名無しさん [sage] 2018/08/13(月) 00:31:27.67:sn7iPKpv 一番シンプルなレイトレの実装は視線追跡だからな : デフォルトの名無しさん [sage] 2018/08/13(月) 00:33:31.73:sn7iPKpv 寝ぼけて謎な用語の用法をしてしまった忘れてくれ 視線側からのレイの追跡だ : デフォルトの名無しさん [sage] 2018/08/13(月) 00:36:44.24:XxWurSAu トイレの覗きかと一瞬勘違いしましたw : デフォルトの名無しさん [sage] 2018/08/13(月) 00:43:21.17:MxL7CAkg ちゃんとミラーボールの映像から抽出しないと : デフォルトの名無しさん [] 2018/08/13(月) 01:42:46.41:+YkMTMKz 遠い昔だが、いい基礎解説本があったんだがタイトルが思い出せない 98用のCのソースコードも附録でついてた 98なんかもってなかったから、Xlibで動かした記憶がある その書籍はサーフェイスモデルもレイトレーシングも基礎から丁寧に書いてある良書だった サーフェイスモデルについては、ものすごい力を入れて書かれてた良い本だった ワイヤーフレームから陰面消去、さらに双三次スプラインでの補間、そしてレンダリング、バンプマッピング さらに3次アフィン変換つかってモーションキーで動くとこまで解説してる 基礎で必要な内容は、ほぼすべて網羅されてて、バカでもチョンでも分かるように書かれてた で、レイトレーシングはサーフェイスモデルより超簡単だからな このスレのアホが難しいといってるだけで むしろレイトレーシングはバカでもチョンでも分かる : デフォルトの名無しさん [sage] 2018/08/13(月) 01:48:30.63:GxmByJ3O せっかく良い質問なのに、 あまり汚い言葉で、アホとかバカとかチョンとか言わなない方がいいよ… : デフォルトの名無しさん [] 2018/08/13(月) 02:07:33.90:Zz4bK/+7 レイトレならこれもおすすめ ttps://qiita.com/mebiusbox2/items/89e2db3b24e4c39502fe : デフォルトの名無しさん [sage] 2018/08/13(月) 02:52:34.70:J+SKK2b0 Oh!Xにソース付きで事細かく書いてあってだな : デフォルトの名無しさん [] 2018/08/13(月) 03:13:41.34:bfksj/4u 多分これだと思う ttps://www.amazon.co.jp/dp/4871481999 3冊とも名著。1と2はBASICだけど : デフォルトの名無しさん [] 2018/08/13(月) 03:39:58.88:p4qIMBze レイトレーシングに限らないけど、アルゴリズムの勉強にはLinuxが良いですよ。 : デフォルトの名無しさん [sage] 2018/08/13(月) 04:00:12.36:3+Hm6Wut 紹介されてる本全部古い... linuxだと何がいいの? : デフォルトの名無しさん [] 2018/08/13(月) 04:14:38.66:p4qIMBze Kernelソースが勉強になります。 : デフォルトの名無しさん [sage] 2018/08/13(月) 04:15:34.47:J+SKK2b0 openclとグラボの勉強したら? レイトレーシングの大量の計算するのがグラボでしょ : デフォルトの名無しさん [sage] 2018/08/13(月) 06:59:52.73:k7xD/gvg アスキーの『応用グラフィックス』か。入門・実習・応用の3冊シリーズだね。 各巻のつながりは緩いから順番に読まなくてもほぼ大丈夫だけど。 確かに良い本だった気がするけど、なにぶん読んだのが昔なんで いくらも理解できなかったわ。今ならもう少しマシだと思いたい。 大学近くの古本屋でなら見つかるかも。 : デフォルトの名無しさん [sage] 2018/08/13(月) 07:05:01.34:JKsq+WjD 畏(おそ)れ多くも森喜朗元帥閣下の有り難いお言葉: 「オレはIT(いっと)のことはよく知らんがぁ 時計をたった2時間早めるだけだろぉ? オレなら1分あれば済ませるぞぉ! サマータイムの何がそんなに難しいんだぁ?」 システム開発現場の勇ましい言葉: 「畏れ多くも森元帥閣下のご下命を賜った以上 現場SEは有り難いお言葉に勇気百倍 デスマーチとバンザイ突撃を敢行いたします!」 「マラソン選手さまが涼しい時間に走るためなら 現場SEの千人や二千人死んでも本望です! 私たちSEの生命など、虫けらと同じです!」 「畏れ多くも森元帥閣下の有り難いご下命にしたがって 最前線システム開発現場で殉職出来るとしたら 現場SEとしてこれに勝る喜びはありません!」 日本という国では 体育会系が一番偉い(森元帥閣下、田中理事長) 文科系がその次で(財務省、教授会) 理科系は最底辺の奴隷とされています(現場SE) : デフォルトの名無しさん [sage] 2018/08/13(月) 07:26:44.37:WtSMvp2C レイトレーシングがサーフェイスモデルより簡単とか 半透明物体内部の散乱表現に踏み込んだらそんな寝言は言えないんじゃ… : デフォルトの名無しさん [sage] 2018/08/13(月) 10:07:11.78:uSgRX9ke みんな例外と戻り値ってどう使い分けてる? 例えば以下みたいな、ファイルからとある要素を抜き出して返す関数とかで std::string extractHogeFromFile(const std::string& file_path) 俺だったら以下みたいにしてるけど、いまいちしっくり来てないとも思ってる ファイルが見つからない→例外 要素が見つからない→例外 要素が見つかるけど空→空 みんな例外クラスとかはstd::exception継承して自作してるのかな? バックトレースやコード行数とれないのが使いにくくて、javaっぽい例外クラスを自作してる : デフォルトの名無しさん [sage] 2018/08/13(月) 10:16:27.95:Z0vFISs/ 例外は発生時の動作が遅い : デフォルトの名無しさん [sage] 2018/08/13(月) 10:17:50.65:gsTSbRo/ exceptionを直に継承ということは滅多にないな system_errorがあるからerror_categoryの派生クラスを作れば大抵足りる __FILE__ や __LINE__ のようなデバッグ情報を入れたくてマクロを作ることはあるけどね 空という概念ならoptionalはいかが? template <typename ELEMENT> std::optional<ELEMENT> extractHogeFromFile(std::path) noexcept(false); : デフォルトの名無しさん [sage] 2018/08/13(月) 10:36:14.97:uSgRX9ke 発生時は確かに遅いね ただ、あくまでも例外的なものだけに利用をとどめておけば、そんなに発生するものでもないし、その場合は戻り値をifで見るより命令数が少なくなるから、結果的に高速になるって俺は考えてる exception直に継承も少し疑問もってるんだけど、std::exceptionのcatchで全部取りやすいからこうしてるんだよね ...でcatchは乱暴な気がするし ただ、調べて見た感じsystem_errorも使いやすそうね。最近開発で使えるようになったC++11だからこんなのあるの気づいてなかったわ std::optionalとかあったんだね、ちょっと調べてみるわありがとう : デフォルトの名無しさん [sage] 2018/08/13(月) 11:20:33.79:NtbFT1j9 レイトレーシングが簡単なのは入り口だけ 20世紀あたりのなんちゃってレイトレーシングは楽だけど本格的にやると解決できない問題が多数出てくる : デフォルトの名無しさん [sage] 2018/08/13(月) 11:32:34.68:D1VtDJH7 ファイル開くのはそれ自体がすっごい遅い操作だから例外のコストなんか無視できるのと 開き損なうとそれ以降の処理が致命的な失敗になりやすい そういう操作のエラー通知が例外に向いてる : デフォルトの名無しさん [sage] 2018/08/13(月) 11:47:23.91:2dORgvS5 例外発生時の速度が問題になるなら例外の使い方を見直した方がいい : デフォルトの名無しさん [sage] 2018/08/13(月) 12:31:28.26:Z0vFISs/ に対して 例外は遅いから例外の時に使いましょう ということを書いたつもりなんだけど 単なる終端マークとか区切りとか そういう頻出する可能性のある用途では使っちゃダメってこと : デフォルトの名無しさん [sage] 2018/08/13(月) 12:35:13.84:Z0vFISs/ 例外は仕組みを入れるだけで、 例外が発生しなくてもオーバーヘッドが発生する環境がほとんどなので 組み込みだとわざと無効にすることも多い x86の64bitはオーバーヘッドが無い代わりに 例外発生時は極端に遅い 一度測定してみるとその遅さがよく分かる そういうことがわかっていれば どこに使うべきかがおのずとわかる : デフォルトの名無しさん [sage] 2018/08/13(月) 12:41:46.34:WtSMvp2C 低水準ライブラリに属するべき関数が例外みたいな高級なしくみに依存するのは美しくないキモス システム設計とかアプリの基本設計レベルで例外の種類とcatch箇所とcatch時の処理を定義して使うなら良い が、呼び出し側でif文を書きたくないからという理由でイミフな例外定義を行うと、結局第三者に正しく使ってもらえない キモス : デフォルトの名無しさん [sage] 2018/08/13(月) 12:48:07.11:WtSMvp2C 例外のオーバーヘッドについてはこれな↓↓↓ ttp://zakkas783-blog-blog.tumblr.com/post/3870295160/c- の例外ハンドリングとパフォーマンス の通り例外処理の裏側の実装には2つの潮流があるんじゃ : デフォルトの名無しさん [sage] 2018/08/13(月) 13:03:58.12:u8inRKlo 制御をすっ飛ばす必然性があるほどの例外的状況に限るのが吉だろうな。 返値で返せないものを返すのに使うなら検査例外のような保証が欲しいところ。 : デフォルトの名無しさん [sage] 2018/08/13(月) 13:22:39.94:BGH31mSy 別スレッドでの関数呼び出し階層が深すぎて安全にスレッド終了させる方法が分からない時に便利でしょ、例外。 : デフォルトの名無しさん [] 2018/08/13(月) 13:37:06.53:hqkLiaZ4 このパーセンテージどうやって表示してるのですか? ttp://aokomoriuta.hateblo.jp/entry/2016/05/05/145810 : デフォルトの名無しさん [] 2018/08/13(月) 13:37:33.57:hqkLiaZ4 すいませんこれです ttps://i.imgur.com/p53FZao.jpg : デフォルトの名無しさん [sage] 2018/08/13(月) 14:16:12.02:uSgRX9ke 前測ったときはアセンブリ言語にしてみると、戻り値ifチェックだと2命令だったのが例外使うと20命令くらいだったなぁ : デフォルトの名無しさん [sage] 2018/08/13(月) 14:27:34.65:uSgRX9ke 自前の文字列操作のUtilとかだと例外にするかすごいその観点で迷うんだよね 賛否両論なjavaの検査例外だけど欲しくなるときはあるね C++の例外指定がもう少し使いやすければよかったんだが すごく同感 : デフォルトの名無しさん [sage] 2018/08/13(月) 14:39:38.06:gsTSbRo/ 困ったことにbasic_iosはexceptionsで頼みもしてないのにEOFで例外を投げる : デフォルトの名無しさん [] 2018/08/13(月) 14:48:44.15:p4qIMBze HTTPで400番台500番台は例外投げればいいのかな。 : デフォルトの名無しさん [] 2018/08/13(月) 14:51:05.76:p4qIMBze 例外を投げるクラスはピッチャーって名前でいいんか? 受け取るクラスはキャッチャー? : デフォルトの名無しさん [sage] 2018/08/13(月) 15:18:30.60:m/ibS17x 甘めの例外を打ちかえすのはバッター : デフォルトの名無しさん [sage] 2018/08/13(月) 15:38:43.20:Twrhv79p C++17では多値が返せるようになりました。 できるならレガシーを切って次へ行きたいものです。 またはstd::optionalなんてものもありますな。 std::tuple<bool,Item> Fun(){return {true,Item()};} auto [F,I] = Fun(); : デフォルトの名無しさん [sage] 2018/08/13(月) 15:41:48.16:Twrhv79p あ、多値自体は返せたけど受け取って初期化できるようになったか。 ちなみにすでに実体化している変数は、std::tie(...);で受け取れます。 : デフォルトの名無しさん [sage] 2018/08/13(月) 16:14:15.10:gsTSbRo/ prvalueでもforward_as_tupleならおk : デフォルトの名無しさん [sage] 2018/08/13(月) 16:15:13.67:gsTSbRo/ auto func() { return forward_as_tuple(123, "456"); } : デフォルトの名無しさん [sage] 2018/08/13(月) 19:17:45.97:Twrhv79p お、なるほど。良いこと聴いた! : デフォルトの名無しさん [sage] 2018/08/13(月) 20:21:18.19:m/ibS17x ただ元からタプルがある言語と比べたら劇的に汚い仕上がりだよね : デフォルトの名無しさん [sage] 2018/08/13(月) 21:43:01.79:3hlPfGdJ ttp://itest.5ch.net/test/read.cgi/tech/1528382412 前スレのURL違うくね これがただしいっしょ : デフォルトの名無しさん [] 2018/08/14(火) 02:06:11.13:41LFYoyc 何と比べてる? : デフォルトの名無しさん [sage] 2018/08/14(火) 02:50:24.34:oCVPQ4uM そんなに汚いかねえタプル : デフォルトの名無しさん [sage] 2018/08/14(火) 03:32:08.59:+lmSJTba 演算子オーバーロードっぽいものを珍重するのはやめた方がいいと思うけどね。 : デフォルトの名無しさん [sage] 2018/08/14(火) 08:20:26.94:8F/Sy9ZI autoでしか受けられないのがイマイチかなあ メインの戻り値は期待する型を明示したいことがある エラーの方が何のenumかは知ったこっちゃないからautoにしたかったりするからややこしい : デフォルトの名無しさん [sage] 2018/08/14(火) 09:31:57.53:oMbBbcEB 無名の共用体と似たようなもので 構造体のメンバをバラで貰えるってだけやん : デフォルトの名無しさん [sage] 2018/08/14(火) 09:44:39.80:fJuFDfsp 型推論のautoを見て嘔吐 : デフォルトの名無しさん [sage] 2018/08/14(火) 12:12:14.83:9UC8tUq9 C++のメタプログラミングって実際にはどうすればあんな複雑に書けるの? 自分は出来ても階乗を求めると型の判別くらいしか出来ない : デフォルトの名無しさん [sage] 2018/08/14(火) 12:16:05.35:aWfB90DT まずは脳内バッファを増やす訓練からだな : デフォルトの名無しさん [sage] 2018/08/14(火) 12:26:17.71:8F/Sy9ZI 関数型言語を勉強するといいよ : デフォルトの名無しさん [sage] 2018/08/14(火) 12:41:59.55:9UC8tUq9 脳内バッファがなぜ必要? そうしてみる‥ Lisp読んで見る : デフォルトの名無しさん [sage] 2018/08/14(火) 13:29:44.46:z3VJK4Uc メタプログラムは今ほとんどconstexprに置き換えれない? : デフォルトの名無しさん [sage] 2018/08/14(火) 14:16:24.99:9UC8tUq9 確かに置き換えられるんだけど、それじゃあ普通のプログラミングと変わらなくて面白みが無いと思って‥ : デフォルトの名無しさん [sage] 2018/08/14(火) 14:39:49.94:vEMT9LA3 型でメタプログラミングするとき困らんか? : デフォルトの名無しさん [] 2018/08/14(火) 14:41:24.25:UlU0qat0 もちろんtemplateも使う : デフォルトの名無しさん [sage] 2018/08/14(火) 16:24:16.29:oKGdiTQg 特に何とは言わないけど return (123, "456"); とか return 123, "456"; みたいに現行のc++ではできないタプル表現のほうがすっきりして見える (個人の感想です) : デフォルトの名無しさん [sage] 2018/08/14(火) 16:31:09.91:fJuFDfsp 123には副作用が無いから最適化でreturn "456";になるんじゃ… : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/08/14(火) 16:32:25.07:EPC9iky2 「できない」って話だから…… : デフォルトの名無しさん [sage] 2018/08/14(火) 17:01:49.73:zHCh+0V6 vector<object*>* list; Fuga fuga; Hoge* hoge; for(int i = 0; i < 5; ++i) { fuga.fugaMethod(hoge->hogeMethod(list->at[i])); fuga.fugaMethod(hoge->hogeMethod((*list)[i])); // エラー } リストの要素に対して全部処理をするっていうよくあるプログラムなんです。 なんですが、上の書き方だと通るのに対して、下の書き方だと「式にはクラス型が必要です。」と出ます。 vectorの要素指定はat(i)を使うか括弧で指定するかの2通り、違いは範囲チェックを行うかどうかだけという認識だったのですが…… 何がまずいんでしょうか? : デフォルトの名無しさん [sage] 2018/08/14(火) 17:10:49.55:oMbBbcEB list->at[i]はまずいだろ typoか? それとも本当にそう書いているのか? : デフォルトの名無しさん [sage] 2018/08/14(火) 17:27:33.05:8F/Sy9ZI typoじゃないとしたら、上は通ってるんだから hogeMethodの引数がobjectかobject&なんだろうな : デフォルトの名無しさん [sage] 2018/08/14(火) 17:31:42.31:zHCh+0V6 えーっとtypoじゃないです。 何がまずいんでしょうか。ポインタだしアロー演算子で問題ないのでは。 それとhogeMethodの引数はobject*ですね。抜けてましたすいません。 : デフォルトの名無しさん [sage] 2018/08/14(火) 17:49:25.24:K29Njy0m listの前の*が邪魔? : ◆QZaw55cn4c [sage] 2018/08/14(火) 18:00:20.07:5K5qKv3G vector<string *>::iterator list; なら理解できるのですが、 vector<string *> *list; というのが、よくわからないのです プログラム例では list にすでに値が入っているようですが、実際には list をどのように初期化しているのでしょうか? : 782 ◆QZaw55cn4c [sage] 2018/08/14(火) 18:19:15.36:5K5qKv3G (*list)[i] (*list).at(i) list->at(i) は等価であることを確認しましたが list->at[i] というのは逆にダメっぽいです ttps://ideone.com/ripLji list->at[i] がどういう文脈なのか? コンパイラがなになのか情報をください : デフォルトの名無しさん [sage] 2018/08/14(火) 18:27:08.03:oMbBbcEB 何がまずいって listはvector<object*>へのポインタ list->atはvector<object*>::atでメンバ関数 ここまではいいが at[i]は関数に添え字だろ こうやってんのと同じだぜ void func(); func[1]; : デフォルトの名無しさん [sage] 2018/08/14(火) 18:32:33.03:9UC8tUq9 なんでメンバ関数を配列にしたいのかかが気になる : デフォルトの名無しさん [] 2018/08/14(火) 18:35:36.38:zHCh+0V6 あ、すいません、確かにat(i)はtypoでしたね。 ごっちゃになってましたすいません : デフォルトの名無しさん [sage] 2018/08/14(火) 19:46:01.17:TB9AjC50 > 確かにat(i)はtypoでしたね。 なら普通に両方コンパイルはできるはず エラーになる最小限のコードにしてどこかにアップして : デフォルトの名無しさん [sage] 2018/08/14(火) 20:00:34.01:aWfB90DT そんでだいたい最小化してるうちに気づくんだよなw : デフォルトの名無しさん [] 2018/08/14(火) 20:01:24.90:UKq+CNIv 関数テンプレートの部分特殊化ってC++17でもできないの? : デフォルトの名無しさん [sage] 2018/08/14(火) 20:08:30.24:HhG+br3u まあ本人気づくのが一番いいから : 782 ◆QZaw55cn4c [sage] 2018/08/14(火) 20:18:07.26:5K5qKv3G 寛大ですね… : デフォルトの名無しさん [sage] 2018/08/15(水) 13:34:49.18:bAZUebux できない # いらんだろ、多重定義で同じ目的を達成できるから : デフォルトの名無しさん [sage] 2018/08/15(水) 15:58:12.56:/VaqEwQY 関数の多重定義もクラステンプレートの部分特殊化でstaticメソッドを特殊化したら代替できるからイラン : デフォルトの名無しさん [sage] 2018/08/15(水) 17:45:56.30:bAZUebux どゆこと? たとえば int abs(int); double abs(double); を、 クラステンプレートの部分特殊化でstaticメソッドを特殊化つーと template <typename A, typename B> struct num; template <typename A> struct num<int> { static int abs(int); }; template <> int num<int, int>::abs(int arg) { return arg < 0 ? -arg : arg; } みたいなことすんのか? : デフォルトの名無しさん [sage] 2018/08/15(水) 18:07:46.14:GkoLimxd 普通は関数オブジェクトにするんじゃね?auto operator()(...); : デフォルトの名無しさん [sage] 2018/08/15(水) 18:46:53.07:GkoLimxd あ、余計なこと言った。 ttps://dotup.org/uploda/dotup.org1613077.zip : デフォルトの名無しさん [sage] 2018/08/15(水) 18:48:12.11:GkoLimxd うご、投稿してモータ。 例のローグのシステムが大分できたのでなんとなく投下してみた。 汎用AIってどうやって書けばいいんや? しかも、まだバトルシステム作ってないし。 : デフォルトの名無しさん [sage] 2018/08/15(水) 19:02:43.98:GkoLimxd ところで質問なんだけど、パスファインディングってサービスとして入れたほうがいいのかなぁ。。。 : デフォルトの名無しさん [sage] 2018/08/15(水) 22:40:01.74:QxvGNpoJ です C++テンプレートメタプログラミングという本を買ってみたのですが、この本C++BoostのMPLの解説本です C++17がある今、この本の価値ってあるんでしょうか? 一応全部読んでみようと思ってるのですが : デフォルトの名無しさん [sage] 2018/08/16(木) 07:25:03.80:t6OwQxX1 > 一応全部読んでみようと思ってるのですが 読んでみてから判断すれば? : デフォルトの名無しさん [sage] 2018/08/16(木) 08:19:40.35:NceGg90N 多分聞きたいのはこれ読んだらオラついていいですか?ってことだと思う。 : デフォルトの名無しさん [sage] 2018/08/16(木) 08:50:47.25:MDl/UAh8 すみません Boostを使わず、mplを使わないのでメタプログラミングするのが目的なので、それがこの本を読んで可能なのか?という質問の趣旨です : デフォルトの名無しさん [sage] 2018/08/16(木) 09:51:57.97:t6OwQxX1 > Boostを使わず、mplを使わないのでメタプログラミングするのが目的 そんな明確な目標あるのになんでこんな本買うかなぁ ちょっとググればこんな意見が見つかるだろうに… ちょっと文章が直訳っぽくてところどころ不自然だけど,丁寧にBoost.MPLの実装(と使い方)について解説してあってとても分かり易い! ttp://d.hatena.ne.jp/eldesh/touch/20100412/1271090614 : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/08/16(木) 10:25:53.58:f3MTrlhW メタプログラミングを活用すればこういうことも出来得るという事例集として見れば無駄ではないと思うが、 それを読んでメタプログラミングが出来るようになるかというと否だと思う。 : デフォルトの名無しさん [sage] 2018/08/16(木) 12:02:41.09:MDl/UAh8 この本を買ったのは高橋晶のC++11対応のテンプレートテクニックって本を読んで、巻末に本の紹介があって、メタプログラミングについて知りたいならこの本を読むべきって書かれてあって、読むことにした そのブログはすでに読んである メタプログラミング自体はどうすれば出来るだろうか? : デフォルトの名無しさん [sage] 2018/08/16(木) 12:37:43.15:jOS7jxfN 魔除けとして重宝している : デフォルトの名無しさん [sage] 2018/08/16(木) 12:41:22.12:lxkNuozk > そのブログはすでに読んである 私はバカです って言われても… : デフォルトの名無しさん [sage] 2018/08/16(木) 13:19:15.31:MDl/UAh8 売ることにします‥ もう日本人に頼るのは辞めました そもそもWG21から情報を検索したほうが有意義かも これからは日本語のプログラミング書籍は買わない方がいいって教訓になりました : デフォルトの名無しさん [sage] 2018/08/16(木) 13:24:07.84:AI90/kCO 捨てゼリフ来たね そろそろご退場かな 総員塩の用意 : デフォルトの名無しさん [sage] 2018/08/16(木) 13:27:57.29:MDl/UAh8 いやだって日本人でC++やってる人少ないじゃないですか(´・ω・`) : はちみつ餃子 ◆8X2XSCHEME [sage] 2018/08/16(木) 13:47:10.99:f3MTrlhW んなこたーない。 : デフォルトの名無しさん [sage] 2018/08/16(木) 14:10:22.64:yO9+GMaw 「少ない」に比較がついてないから何とも言えない : デフォルトの名無しさん [sage] 2018/08/16(木) 14:34:47.46:jOS7jxfN やっぱPerl人口が一番多いと思うのねん その次がPHP : デフォルトの名無しさん [sage] 2018/08/16(木) 16:39:09.24:TxXnQ6gb 英語をスラスラ読めるなら「遅い・高い・分かりにくい」の 和訳版を買うことはないわな。 原書ならPDF版がタダでネット公開されてたりするし。 : デフォルトの名無しさん [sage] 2018/08/16(木) 20:44:21.68:JF8AnYsh 前半とこどこBoost.MPLの設計理念とかどう実装されてるかとか書いてあるから、そこは参考になると思う 後半のTMP関連のテクニックはおそらく求めているものではないかと ExpresionTemplateの実装にあまり踏み込まないけど、どのように誤用されているかは少し参考になった : デフォルトの名無しさん [sage] 2018/08/17(金) 11:29:50.85:lqMuboYf ttps://wandbox.org/permlink/TC3VtzZ4Dd53Z1Y4 こういうコード書きました。 UIはとりあえず置いといて、Jsonの構造ってこんな感じでいいのでしょうか。 ご意見あったら教えてください。 : デフォルトの名無しさん [sage] 2018/08/17(金) 11:54:52.92:BEBC5Dle あの初歩的な質問で申し訳ないんですけど、クラスのメンバ関数のことです 例えばAってクラスがあって、hogehogeって関数があったとします それでhogehogeは内部で関数を3つ呼び出す。ざっとこんなイメージです A.h class A { public: void hogehoge(); } A.cpp void A::hogehoge() { x(); y(); z(); } main.cpp main() { A a; a.hogehoge; } んでこの場合の関数x() y() z()なんですけどクラスAのメンバ関数にすべきなんでしょうか。 それとも単にA.cpp内に関数書くだけでいいんでしょうか。 x()y()z()はhogehoge以外から呼び出されることはありません。 自分は前者だと思うんですが、参考にしろと渡された前任者(今いない)のコードだとなんでもかんでもメンバ関数です。 よろしくおねがいします。 : デフォルトの名無しさん [sage] 2018/08/17(金) 12:01:22.82:BEBC5Dle あ、すいませんhogehogeではxyzを呼び出す以外にも処理を行うものとします そうでないとxyzをメンバ関数にしてhogehogeなくせってことになるので : デフォルトの名無しさん [sage] 2018/08/17(金) 12:17:52.69:TtX4VAeH > x()y()z()はhogehoge以外から呼び出されることはありません。 だったらラムダ式じゃね? auto x = [this]{}; auto y = [this]{}; auto z = [this]{}; : デフォルトの名無しさん [sage] 2018/08/17(金) 12:27:19.70:6wrElEJt どっちでも良い というか時と場合によってどっちにすべきかが違う : デフォルトの名無しさん [] 2018/08/17(金) 12:29:57.76:JC8oBFgD メイヤーズは独立できるならメンバにせずに関数にしろって言ってた : デフォルトの名無しさん [sage] 2018/08/17(金) 12:31:59.93:PQea+QN+ 言語処理ってphythonとC++どっちが向いてる? : デフォルトの名無しさん [sage] 2018/08/17(金) 12:37:52.08:lqMuboYf 処理内容によると思う。 一応、自分は、protectedのメンバ関数にするかなぁ。 : デフォルトの名無しさん [sage] 2018/08/17(金) 12:49:54.76:UZUA85Xq 漠然過ぎてどうとも ゼロから書く気はないんだろうから試行錯誤するのも含めてPythonのほうを勧めるよ : デフォルトの名無しさん [sage] 2018/08/17(金) 13:08:34.93:KaaDwp63 関数にできるってことはメンバ変数の参照とか他のメソッド呼び出しがないんだよね なら関数にした方が微妙に速度が稼げる(thisを渡さずに済むから) 各々一回しか呼ばないなら呼び出し箇所に展開しても良いような気がする : デフォルトの名無しさん [sage] 2018/08/17(金) 13:39:31.71:BEBC5Dle 参考になりました。皆様ありがとうございました。 effective C++のメイヤーズ先生に従い、通常の関数にすることにします。 ……あれ、そうするとその関数群だけで使う共通の変数ってメンバ変数にすべきなのかcpp冒頭で宣言してグローバル変数にすべきなのか いやぁ難しいですね : デフォルトの名無しさん [sage] 2018/08/17(金) 13:59:24.66:IJ2e6Mcr データメンバーにしなさい グローバル変数は悪である : デフォルトの名無しさん [sage] 2018/08/17(金) 14:21:39.44:TtX4VAeH 「共通の変数を使う関数群」をクラス化するんだよ そのためにあるんだから : デフォルトの名無しさん [sage] 2018/08/17(金) 15:10:01.00:ujK6h2XS > ……あれ、そうするとその関数群だけで使う共通の変数 いや、そんなもんがあるならメンバ変数にするか、それらを構造体とかにまとめて引数で渡すとかしなよ ファイルスコープだとしても今時グローバル変数は無いわ : デフォルトの名無しさん [sage] 2018/08/17(金) 17:26:14.63:xjFqJl5K いまどきグローバル変数を使うおとこの人って… : デフォルトの名無しさん [sage] 2018/08/17(金) 17:26:59.41:PQea+QN+ ゼロから書く気はある : デフォルトの名無しさん [sage] 2018/08/17(金) 17:32:51.82:uIPUTYG+ 「すべての男はグローバル変数である」 : デフォルトの名無しさん [sage] 2018/08/17(金) 17:33:46.61:6wrElEJt わたし女だけど : デフォルトの名無しさん [sage] 2018/08/17(金) 17:41:55.00:mGHQIGDT クラスのstaticメンバにすりゃええんちゃうのん? : デフォルトの名無しさん [sage] 2018/08/17(金) 17:52:51.84:TtX4VAeH わざわざstaticにする強い理由があればそうするが 消極的な選択なら非staticのほうが何かと楽だぞ : デフォルトの名無しさん [sage] 2018/08/17(金) 17:54:48.35:xjFqJl5K staticおじさん、再び : デフォルトの名無しさん [sage] 2018/08/17(金) 18:06:46.13:H85EoLGL ちょうど気になる話題だから聞くけど OpenCVで1つの画像データを複数の関数で扱う場合って、引数として渡すのとグローバル変数として定義するのってどっちが良いのかな?(速度とかの面で) 無限ループで毎フレーム毎にWebカメラから読み取った画像を(グローバル)変数に代入するからそこでの速度とかメモリ管理の差とかあるのかな? : デフォルトの名無しさん [sage] 2018/08/17(金) 18:08:23.37:UZUA85Xq そこまでして再発明したいんなら言語なんて何でもいいんじゃね? ちなみに素養はお持ちなの? そういう研究してたとか : デフォルトの名無しさん [sage] 2018/08/17(金) 18:09:24.28:ABziGu/h オカマはだまってろw : デフォルトの名無しさん [sage] 2018/08/17(金) 18:09:55.69:UZUA85Xq あ、読み違えた 自然言語処理ではないんだね 何かのパーサーでも書きたいんですかね? : デフォルトの名無しさん [sage] 2018/08/17(金) 19:04:11.30:/oSEwJ0G OpenCVのMatなら何も考えずにコピーすると浅いコピーになる 浅いコピーのコストが問題になるならグローバルなりメンバなりにする方がいいのでは : デフォルトの名無しさん [sage] 2018/08/17(金) 19:06:50.86:6wrElEJt 何で浅いコピーだよ 普通はポインタか参照だろ : デフォルトの名無しさん [sage] 2018/08/17(金) 19:10:12.86:IJ2e6Mcr cv::Matがスマポみたいなもんだということを知らずにチャチャ入れてるなら黙ってたほうがいいよ : デフォルトの名無しさん [sage] 2018/08/17(金) 19:17:25.23:6wrElEJt そんな事はしっている 目の前に浅いコピーって書いてあるし 浅いコピーよりも当然参照やポインタ渡しの方が速い 当たり前だ sizeofでcv::Matのサイズを調べてみろ 構造体やクラスを渡すのに深い浅いに関わらず コピーなんか使うなよ : デフォルトの名無しさん [sage] 2018/08/17(金) 19:28:06.57:KaaDwp63 > (速度とかの面で) 早すぎる最適化は諸悪の根源である ドナルド・トラン… じゃなくてクヌース : デフォルトの名無しさん [sage] 2018/08/17(金) 19:44:40.54:0e7dWRcF 今更になってで言ってくれたことが理解できた クラス内でメンバ変数使おうとするとメンバ関数じゃないとだめなのね。普通に分けたただの関数からじゃ呼べなかった えーこういうもんなのか : デフォルトの名無しさん [sage] 2018/08/17(金) 19:55:12.57:RgiGOjCt cv::Matとcv::Mat*のコピーコストの差を気にするくらいならデリファレンスのコストも気にしなきゃな。 : デフォルトの名無しさん [sage] 2018/08/17(金) 20:02:22.24:IJ2e6Mcr 844はunique_ptrやshared_ptrも参照渡ししてそう : デフォルトの名無しさん [sage] 2018/08/17(金) 22:11:59.07:6wrElEJt 構造体やクラスだと ポインタや参照がデフォなんだよ とりあえずポインタ、参照で渡す事を考える これでは困る時にはじめて他の方法を考える わざわざ無駄に重くしなくて良い コードサイズも実行時間も使用メモリも増える 悪いことしかない : デフォルトの名無しさん [sage] 2018/08/17(金) 22:28:22.24:p6eculQx 世の中の殆どは再発明の繰り返しではないか そこから新しいものが生まれる 機械学習、音声言語処理に興味ある 生成や知識獲得とかも : デフォルトの名無しさん [sage] 2018/08/17(金) 22:33:47.04:rVfGTX61 とりあえず車輪からだな あっそれロン。大車輪で役満です : デフォルトの名無しさん [sage] 2018/08/17(金) 23:28:39.10:2sBNjScG ユーザーの実行コストを考えたらC++しかありえない : さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2018/08/17(金) 23:29:57.49:L+nRWRoK Rustを知りませんか? : デフォルトの名無しさん [sage] 2018/08/17(金) 23:48:03.15:3Fyou0AL 間違って通常のポインタを引数に指定されないよう、共有ポインタの参照を引数にすることはあり得るでしょ。 : デフォルトの名無しさん [sage] 2018/08/17(金) 23:49:26.53:2sBNjScG RustはいつになったらC++を殺すんだ? : デフォルトの名無しさん [sage] 2018/08/18(土) 02:00:38.26:/pVEXQTC ttps://github.com/rust-lang/rust/issues エラーが4000件だから、しばらく無理。 : デフォルトの名無しさん [sage] 2018/08/18(土) 10:32:16.38:zXZq/jKJ Visual Studioのデバッグ実行ってクラッシュとかしてもコードのどこでクラッシュしたかを示してくれるのですごく便利なんですが、 ただでさえ重めだった実行が、2015から拍車がかかり、かなり使いにくくなってしまいました。 どうもvector等のSTLの範囲チェック等が重たいとのことで、たしかにSTLの使用割合が多いアプリほど重たい傾向にあります。 たしかに範囲チェックはありがたいのですが、多少デバッグ能力を妥協して動作を軽くできないでしょうか? 理想はデバッグ機能をカスタム実装してリリースモードで動作でしょうけど、 予想できないクラッシュ等に対応するのが難しいと思います。 ご助言、よろしくお願いします。 : デフォルトの名無しさん [sage] 2018/08/18(土) 12:38:36.62:C9f4IyR8 IDEに頼るな vimを使え : デフォルトの名無しさん [sage] 2018/08/18(土) 12:58:55.58:qRHlEVCy 理想は平均的な性能のPCを買うことかな : デフォルトの名無しさん [sage] 2018/08/18(土) 13:48:15.95:9bYd+OzJ ttps://msdn.microsoft.com/ja-jp/library/hh697468.aspx : デフォルトの名無しさん [sage] 2018/08/18(土) 15:07:37.45:T6klohyz 質問ですが class Foo { public: int a[100]; Foo(); }; というクラスにおいて、構築時にメンバa[]をゼロ初期化する簡単な書き方はありませんか ちなみに Foo::Foo() : a({ }) { } とやったらエラーになりますた、 : デフォルトの名無しさん [sage] 2018/08/18(土) 15:27:11.61:/pVEXQTC ttps://ideone.com/BuNLLF こう? : デフォルトの名無しさん [sage] 2018/08/18(土) 16:07:29.18:cIuR0GWn 普通に書いたらええがな。 Foo::Foo(){ for(int i=0; i<100; i++){ a[i] = 0; } } : デフォルトの名無しさん [sage] 2018/08/18(土) 16:21:12.10:T6klohyz レスdクス、 申し遅れましたがやpっぱC++11では_ですかそうですか… : デフォルトの名無しさん [sage] 2018/08/18(土) 16:59:01.67:/pVEXQTC 初期化法自体はC言語からある方法だけど。 構文はC++だけどね。 : デフォルトの名無しさん [sage] 2018/08/18(土) 17:03:27.71:/pVEXQTC あー、そうなのね。あれって環境依存だったのか。ゴメン。 ttps://wandbox.org/permlink/ASJ3oCbkha0Ren8B : デフォルトの名無しさん [sage] 2018/08/18(土) 17:32:50.09:dGIgNVTb 平均的じゃ足りんだろ VMwareとか使いまくるには RAMとHDDがたんまりないと心許ない : デフォルトの名無しさん [sage] 2018/08/18(土) 17:34:51.43:WtnFgJ11 Foo::Foo() : a{ } { } でええやん : デフォルトの名無しさん [sage] 2018/08/18(土) 17:36:04.82:dGIgNVTb Foo::Foo() : a{ } { } : デフォルトの名無しさん [sage] 2018/08/18(土) 17:36:29.52:/pVEXQTC そんなことできたのかぁー。うぼぁー。 : デフォルトの名無しさん [sage] 2018/08/18(土) 17:36:36.32:dGIgNVTb あ、被った すまんこ : さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2018/08/18(土) 17:36:58.77:ONgNSdiS 今時はSSDだろ。SSDにデータ移行しなよ。VS2017が数秒で起動するぜ。 : デフォルトの名無しさん [sage] 2018/08/18(土) 18:54:50.29:dGIgNVTb うんC:はSSD一択だね できればSLCのやつ : ◆QZaw55cn4c [sage] 2018/08/18(土) 19:32:14.99:/9y7PjMS 何もかもがめんどくさっくて、C ドライブになんでもたんまりと仕込むのが好きなんですが、 1TB くらいある SSD ってお高いんでしょう? : デフォルトの名無しさん [sage] 2018/08/18(土) 19:49:21.94:Q0JvwYe1 最近は途中にマウント出来るのよ : デフォルトの名無しさん [sage] 2018/08/18(土) 19:55:17.69:gititOy1 例えば、だが Crucial SSD 1000GB MX500 内蔵2.5インチ 7mm ¥23,738 : デフォルトの名無しさん [sage] 2018/08/18(土) 21:21:58.94:F905Yoig 理由はわかるが柔軟性が欲しい class A{ }; class B: public A{ }; temaplate<typename T> void test(T a, T b){ } A a; B b; test(a, b);//Error.型が一致しない。 test<A>(a, b);//ok.明治すればok : さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2018/08/18(土) 21:38:06.56:hlXM+cNJ 型を分けて、共通型を使えば? : デフォルトの名無しさん [sage] 2018/08/18(土) 23:59:13.75:3zCcdQf6 きみなら一時間とは言わないが、一日でそのくらい稼ぎ出すんやろ? : デフォルトの名無しさん [sage] 2018/08/19(日) 00:05:39.35:RqnFNWUi こうすればokというのはわかるけども面倒 template<typename LT, typename RT> void test(LT const& a, RT const& b){ } : 857 [sage] 2018/08/19(日) 01:30:39.96:KCtnHGyc ありがとうございます! これでやってみます! vim、興味深いですが、慣れるまで時間がかかりそうですね^^; : デフォルトの名無しさん [] 2018/08/19(日) 09:02:49.22:qd68oMAq じゃあメモ帳で。 : デフォルトの名無しさん [sage] 2018/08/19(日) 09:12:46.20:qaYG8ur7 notepad++かサクラエディタ ttps://forest.watch.impress.co.jp/library/software/notepadplusp/ ttps://sakura-editor.github.io/download.html : デフォルトの名無しさん [sage] 2018/08/19(日) 09:25:18.62:wM6XArJ0 vim は、 迷ったら、Esc を押して、コマンド入力モードにする。 そこで、a を押せば、append 文字入力モードになる :q! 保存せずに終了 :wq 保存して終了 : デフォルトの名無しさん [sage] 2018/08/19(日) 09:26:24.72:xXXJlhyc 今は spacemacs 以外あり得ないよ 欠点が厳密にゼロ個な完全なチョイス : デフォルトの名無しさん [sage] 2018/08/19(日) 09:40:59.64:0vPM1br5 最近はVSCodeが使い物になってきたぞ CMakeとの連携も賢い 補完がまだ遅いが : 857 [sage] 2018/08/19(日) 10:56:19.69:KCtnHGyc 自分はサクラエディタを10年以上愛用しています。 VisualStudioはコンパイラ兼デバッガとして利用してます。 : デフォルトの名無しさん [sage] 2018/08/19(日) 14:03:03.06:5+hPFDRj 俺の main.cpp が 9万5千行 を超えた ファイルサイズにして2.37MBある クラス内でなら前方参照が可能なC++の盲点をついて 適当な struct でプログラム全体を丸ごと囲って 前方参照しまくり & ヘッダに全部書くスタイルで 一つのファイルに全部押し込めた C++サイコー : デフォルトの名無しさん [sage] 2018/08/19(日) 14:03:58.10:5+hPFDRj ちなみにコンパイルが遅くなるのと コード補完が重くて使い物にならなくなるので 素人にはお勧めしない : デフォルトの名無しさん [sage] 2018/08/19(日) 14:13:18.08:MSEMVqOe キモイコードだなぁ。メンテナーが泣くぞ。 : デフォルトの名無しさん [sage] 2018/08/19(日) 14:20:44.33:5+hPFDRj 大丈夫 サンデープログラマーで俺一人だけしか書かないから ソースコードも公開してないしな : デフォルトの名無しさん [sage] 2018/08/19(日) 14:22:38.72:RqnFNWUi なんのプログラムを書いたらそうなるんだ・・・ : デフォルトの名無しさん [sage] 2018/08/19(日) 14:58:05.30:0c0A7VGq キモすぎやろ… 見してくれ : デフォルトの名無しさん [sage] 2018/08/19(日) 15:04:46.82:5+hPFDRj こういうのは怖いもの見たさみたいなのもあると思うし これだけでコンパイルして動くものでもないので一応ソースコード あまりにもアレで、そっ閉じだろうけど ttp://www.geocities.jp/notenop/tomato_player/main.cpp コンパイル済みのソフトは ttp://www.geocities.jp/notenop/tomato_player/index.html からダウンロードできる 非同期処理に俺が思いついた横断的でトリッキーなアイデア ttps://qiita.com/notenopg/items/40571e69986a58b888a0 ↑が使われている 安全にキャンセル出来なきゃ await の意味ないでしょ!ってなもんで でもなかなか理解されないんだよなぁ、すごいアイデアだと思うんだが それからツリービューのアイテムのピン止めのアイデアは お気に入りやタブの代わりになって画期的だと思うんだが 何故マイクロソフトがエクスプローラに実装しないのか謎 特許関係かね あとはフォルダ階層をそのまま扱える木構造なプレイリストとか そんなことやってたら9万行超えました ちなみにUIはDirectXでちまちまフルスクラッチで手書き その代わりその辺のソフトに負けない速度で、4K対応 : デフォルトの名無しさん [sage] 2018/08/19(日) 15:07:41.51:5+hPFDRj 庶民には理解できなくても プログラマであるあなたたちなら ピン止めできるツリービューが如何に画期的か理解できると思うんだよね タスクバーでも何でもピン止めの時代なのに ツリービューもピン止めできて良いと思うのよね : デフォルトの名無しさん [sage] 2018/08/19(日) 15:09:21.21:5+hPFDRj ああ、ツールバーとかスクロールバーとかのレベルで 全部フルスクラッチでDirectXで手書きだから : デフォルトの名無しさん [sage] 2018/08/19(日) 16:00:06.94:RqnFNWUi 庶民なる俺様にはピン留出来ることの利点がわからん : デフォルトの名無しさん [sage] 2018/08/19(日) 20:23:08.28:qaYG8ur7 サクラエディタが優秀だということは分かった : デフォルトの名無しさん [sage] 2018/08/19(日) 21:38:13.69:Vpx5N+CG 見て欲しくて我慢できなかったんだな : ◆QZaw55cn4c [sage] 2018/08/19(日) 22:28:08.34:bW/fB7v7 ttps://www.amazon.co.jp/dp/4871481689/ : デフォルトの名無しさん [sage] 2018/08/20(月) 08:03:46.47:4c85aa3D Makeって何? : デフォルトの名無しさん [sage] 2018/08/20(月) 14:14:50.32:PcIDGZDw 来年にはSunOSにも移植される予定の超最新自動ビルドツールの紹介だよ! : デフォルトの名無しさん [sage] 2018/08/20(月) 15:49:07.20:YVC1gYT/ オライリーがおかしな実験をする本だよ : ◆QZaw55cn4c [sage] 2018/08/20(月) 18:47:45.43:VU5jvdn2 昔から使われている原始的といってよいビルドツールです makefile に依存関係を書いておいて、コマンドラインで「 make -j」と起動すると、記述した依存関係にしたがってコンパイル・リンクが行われます : デフォルトの名無しさん [sage] 2018/08/20(月) 18:59:55.06:ftO9aq8g Linuxなんかで配布されたソースから実行ファイルを作成したいって時にお世話になります : デフォルトの名無しさん [sage] 2018/08/20(月) 20:29:15.33:MlhHAxXO この本を読めばコンパイルについても分かるの? : ◆QZaw55cn4c [sage] 2018/08/20(月) 20:46:46.88:VU5jvdn2 は make を C で記述するものであり、コンパイル自体について記述するものではありません : デフォルトの名無しさん [sage] 2018/08/20(月) 23:46:22.40:qkN29+U3 クラス生成に挫折したのかな?w : デフォルトの名無しさん [sage] 2018/08/21(火) 00:03:12.90:Y1eCmHG/ C++自体の本はたくさんあるのにビルドやプロジェクト構成について解説した本って全くないよな コピペで受け継いできた秘伝のMakefileやconfigureが蔓延してるのなんとかしてくれ 売れないだろうがCMakeの解説本が一冊欲しい : デフォルトの名無しさん [sage] 2018/08/21(火) 00:06:59.04:FygfW+En cmake はつい最近のVisual Studio 2017アップデートで標準インストールされるようになったから潜在需要あるかもね…。 : デフォルトの名無しさん [sage] 2018/08/21(火) 00:51:54.00:zakr4cIe なんでビルドツールっていつも怪物化しちゃうんだろうな makeがもう誰も手に負えない怪獣のくせにずっと定番に居座ってて、「Makefileを作るツール」が乱立してそれぞれ怪物化してるの勘弁してほしい : ◆QZaw55cn4c [sage] 2018/08/21(火) 01:03:38.38:Wpz7rvAB >makeがもう誰も手に負えない怪獣 make ですら怪獣になるのだったら、他の高機能ビルドツールはとっくに破綻している現状だったのか!と、ふと : デフォルトの名無しさん [sage] 2018/08/21(火) 01:35:58.44:mIqstMqN makefileなんて複雑な事求めないなら手でかけるレベルだよ これが複雑で手に負えないとなると、プログラミングも怪しくなる : デフォルトの名無しさん [sage] 2018/08/21(火) 01:36:31.95:Y1eCmHG/ ビルドについての教育がないがしろにされてるのが全ての元凶 ある程度以上の規模のプロジェクトを構成するベストプラクティスが示されているところを見たことがない 適当に好きなところから取ってきて動けばいいやくらいに改変して使ってるのが現状 : デフォルトの名無しさん [sage] 2018/08/21(火) 07:06:57.27:agJOmNk0 丁寧に書いてるのはこれくらい。 ttp://aegis.sourceforge.net/auug97.pdf : デフォルトの名無しさん [sage] 2018/08/21(火) 11:19:53.91:zakr4cIe 複雑なことをしたいからビルドツールを使うわけでしてねぇ・・・ : デフォルトの名無しさん [sage] 2018/08/21(火) 11:24:41.92:mIqstMqN したいという意思があるなら、がんばって理解も出来るだろう そこまでしなくても、最低限のルール覚えれば使える : デフォルトの名無しさん [sage] 2018/08/21(火) 11:53:12.22:gERn4ySS goto有害説をもじってるんだなw Makefileを書いていていつも思うのは ソースファイルの依存関係はソースファイルの中に書いてあるのに それをまた二度手間で書かねばならないのがイヤ 面倒くさいのはともかく間違えやすいから : デフォルトの名無しさん [sage] 2018/08/21(火) 12:20:54.13:JvEAafEP automake とか gcc -MM とかの話? : デフォルトの名無しさん [sage] 2018/08/21(火) 12:38:18.13:Dn6CvPAP rustとc++どっちも使ってる人いる? : デフォルトの名無しさん [sage] 2018/08/21(火) 12:59:21.72:gERn4ySS gcc -MMか、いいこと聞いた ありがとう : デフォルトの名無しさん [sage] 2018/08/21(火) 13:56:49.24:Y1HyydAv 詳しい解説サンクス こんなのがあったのか : デフォルトの名無しさん [sage] 2018/08/21(火) 16:55:02.40:59eaeAGG ここで根性論とはセンスあるわ もちろんエンジニアでなく笑いの : デフォルトの名無しさん [sage] 2018/08/21(火) 17:26:56.17:/1sxYxCd エンジニアでなく園児にゃ : デフォルトの名無しさん [sage] 2018/08/21(火) 19:40:42.98:Y1eCmHG/ WindowsでCMakeはfind_packageでだいたい詰む vcpkgで対応できなければ結局自分で書くはめになり、面倒くさくなってmingw使うかVSのプロジェクトと同居することになる : デフォルトの名無しさん [sage] 2018/08/22(水) 16:26:31.16:BT6ndhEb C++ とは直接関係ないけど make/Makefile は擬似ターゲットを使って バッチ的な定型処理を1個のファイルでまとめて管理できるのが便利でね。 make find WORD=... 全ソースから WORD= で指定した単語を含む行を検索、みたいな。 自分で作った便利ターゲットの使い方を usage: に書いとくのを忘れるけど。 : デフォルトの名無しさん [sage] 2018/08/22(水) 17:38:28.37:ua+EoSC8 perlでok : デフォルトの名無しさん [sage] 2018/08/22(水) 19:10:59.67:lMaJ9TV4 C言語のビルドシステムならC言語で書けるようにするべきだと思うのだがよく分からない専用の言語を使わされるのは何故 この手のスクリプト言語は可読性がデバッガもないから中身を探るのが難しすぎる : デフォルトの名無しさん [sage] 2018/08/22(水) 19:27:23.21:J6lVaoNe 君がそれを作って公開してみれば良いと思うんだが : デフォルトの名無しさん [sage] 2018/08/22(水) 20:50:10.20:4/HlUcDP C++のビルドツールといえばboostでお馴染みのbjam 実質boost専用に作ってるだけなのにあんな聳え立つ糞の山になっちゃうんだからビルドツールって怖いね : デフォルトの名無しさん [sage] 2018/08/22(水) 22:31:38.77:G7PvCZFg ソフト名がまだ決まっていないけどプログラム開発がスタートするって一般的だと思うんですが、 こういうときってコードネームを付けますよね? このとき、VisualStudioのプロジェクト名もコードネームにしますよね? アプリのウィンドウキャプションとかはアプリ名が決まり次第反映させられますけど、 プロジェクト名は途中で変えられないので、そのままになってしまいますが、しょうがないですよね? 要は社内の開発で問題なければOKで、 リリースしたときにコードネームがどこかに混じってしまわないように気を付ければいいだけですよね? みなさんがどうされてるのか気になったのでお聞きしました。 : デフォルトの名無しさん [sage] 2018/08/22(水) 23:03:51.57:4/HlUcDP 必要なら変えるよ slnやvcxprojはただのxmlだから名前変えるだけならそんなに難しくない : デフォルトの名無しさん [sage] 2018/08/23(木) 00:06:20.88:0/a4zf/K 英国ポエムシリーズでしょう bjam=ブージャムは言うまでも無く、パンジャンドラムすらも無論英国のポエムから採られた 他にも兵器界隈ではスナークとかが存在するのは周知の通り 日本だと仏教用語から採ればいいんじゃあないですかね : 931 [sage] 2018/08/23(木) 00:10:54.70:U43QDDsh なるほど〜、プロジェクト関連ファイルを編集することで名前を変えることはできるんですね。 なら気兼ねなく最初はコードネームにしときます。 ありがとうございました^^ : ◆QZaw55cn4c [sage] 2018/08/23(木) 22:00:21.31:NMfUyUL+ std::ref() について教えてください void f(:ostringstream &os) { ... } int main() { ostringstream s; std::thread(f, std::ref(s)); ... とありましたが、なぜ呼び出し側で「おまじない」のstd::ref() が必要なのか理解できません どんなときに呼び出し側で std::ref() が必要なのでしょうか? テンプレート関係かと思いましたが ttps://ideone.com/7fF53F は問題なく、std::ref() が必要となるプログラム例を思いつくことができません よろしくお願いいたします : さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2018/08/23(木) 22:17:07.10:Z2Fii0dD std::refの規格表とソースを見たか? 余計なコピーを抑制してるんだ。 : さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2018/08/23(木) 22:18:22.48:Z2Fii0dD s/表/票/ : デフォルトの名無しさん [sage] 2018/08/23(木) 22:33:14.61:/6RK1Hlx 非参照なテンプレートな引数に一時変数を作らずに参照を渡せる : ◆QZaw55cn4c [sage] 2018/08/23(木) 22:52:37.79:NMfUyUL+ コメントありがとうございます コピーコンストラクタが禁止されている std::cout をテンプレート引数にわたす場合で理解できました(かもしれません) ttps://ideone.com/3eqEJY 一つ質問ですが、私なら、このプログラム例の y() template<class T> void y((*f)(), T &os) { ... } のように、テンプレートを書く時点で参照に書いてしまうのですが、 あえて非参照なテンプレート引数を書く「便利さ」みたいなものはありますでしょうか? : デフォルトの名無しさん [] 2018/08/24(金) 02:37:15.13:kcQyW4E+ 大阪はいたって平和 しょぼいにもホドがある : ◆QZaw55cn4c [sage] 2018/08/24(金) 03:55:21.10:A5L5xSI8 >あえて非参照なテンプレート引数を書く「便利さ」みたいなもの std::thread のコンストラクタを眺めていて気が付いたこと…これ、可変長テンプレートですね : ◆QZaw55cn4c [sage] 2018/08/24(金) 04:17:14.78:A5L5xSI8 x86 の cmpxchg を使いたくて、gcc 拡張の __sync_val_compare_and_swap() を試していました ttp://shinh.hatenablog.com/entry/20060817/1155781747 ttps://ideone.com/tpefmL c++11 に std::atomic::compare_exchange_weak() を見つけましたが、これは適当に(任意に) new で確保したヒープにも適用できるものでしょうか? : デフォルトの名無しさん [sage] 2018/08/24(金) 07:59:06.64:ZkSPfVdV 何で出来ないと思うの? : デフォルトの名無しさん [sage] 2018/08/25(土) 08:53:09.59:/11s7nnG template <typename T, typename... ARGS> class nested_error : public std::nested_exception, public ARGS... { public: nested_error(T const& t, ARGS const&... args) : T(t), nested_error(args...) //C3511 { } nested_error(T const& t) : T(t) { } }; 何かうまい手ない? : デフォルトの名無しさん [sage] 2018/08/25(土) 13:51:57.64:rL3qzGy6 そりゃまー、実体化した内部ではTは決定済みだろうから無理だろう。 Anyつかうとか・・・。 : デフォルトの名無しさん [sage] 2018/08/25(土) 14:24:43.54:rL3qzGy6 あ、すまん。おかしなこと言った。 えーっと、変数が一個じゃ足りないな。 イニシャライザーリスト使うか、下位関数にキックするか。 : デフォルトの名無しさん [sage] 2018/08/25(土) 15:05:48.05:XmdDRLnv そもそもコンストラクタの委譲は再帰禁止だったと思うが 別のクラステンプレートのメンバ関数とか関数テンプレートで再帰するしかないと思う : デフォルトの名無しさん [sage] 2018/08/25(土) 15:57:42.66:rL3qzGy6 ttps://wandbox.org/permlink/KrUV4MTPdV0l4OoO 興味があったのでそれっぽいコード書いてみた。 これキャッチするの無理だろ。 : デフォルトの名無しさん [sage] 2018/08/25(土) 16:53:35.24:rL3qzGy6 そういえば、例外の時にメモリ確保したらなんか弊害あるんだっけ? 昔、例外投げるときはメモリが足りなかったりとかクリティカルな状況だからやめろって言われたような気がする。 どうやったっけ? : デフォルトの名無しさん [sage] 2018/08/25(土) 18:24:33.46:/11s7nnG なんか面白そうなのうpしてくれてありがとう すまん、今かなり酔っ払ってる 素面に戻ってからじっくり読むから ちょっと待ってて : デフォルトの名無しさん [sage] 2018/08/25(土) 18:56:26.92:5ar3I1wr つ catch(A<B, C> E) : デフォルトの名無しさん [sage] 2018/08/25(土) 19:23:40.93:r5O9PJUC > そういえば、例外の時にメモリ確保したらなんか弊害あるんだっけ? メモリー不足による例外発生時だとその例外処理時のメモリー確保自体が失敗するから例外処理(例えばログ出力)ができなくなるってこと : デフォルトの名無しさん [sage] 2018/08/25(土) 20:44:16.72:rL3qzGy6 そらまー、引数がそれの時はできるけど、必ず把握はしてないでしょ。 あぁ、なるほど。ありがとう。 : デフォルトの名無しさん [sage] 2018/08/25(土) 20:51:49.46:cO/mJ1mq メイヤーズ本に簡単な回避テクが書いてある 希ガス : デフォルトの名無しさん [sage] 2018/08/25(土) 20:52:40.48:cO/mJ1mq 真にご法度なのはデストラクタの中での例外発生なんじゃ… : デフォルトの名無しさん [sage] 2018/08/25(土) 21:06:57.48:tfF8aOe1 951だけど、何したいのか分からない。 catch (decltype(X) E) ならええの? : デフォルトの名無しさん [sage] 2018/08/25(土) 22:12:01.59:rL3qzGy6 ttp://https://wandbox.org/permlink/uEH5L9KBV9L1BdYn "> ttps://wandbox.org/permlink/uEH5L9KBV9L1BdYn うはー、気が向いたから、コンストラクタに推論させようと思ったら手間食った。あー疲れた。 しかし、理解が深まって良かったかな。うえー。 : デフォルトの名無しさん [sage] 2018/08/25(土) 22:26:38.94:rL3qzGy6 しかし、色々試したが結局うまくいかず、解説ページの死角にぽろっとあるのが最高にリアル。 : デフォルトの名無しさん [sage] 2018/08/25(土) 23:19:11.18:5ar3I1wr 例えばA<B, C>とA<D>は全く別の型なのだから、どっちの型が飛んでくるかわからないのに両方catchするのは無理でしょ。 Base型で試そうとした痕跡があるけど、catchした先でA<B, C>またはA<D>の関数を呼び出そうとしているからそれもできない。 「別のところ」から飛んでくる例外の型はコンパイル時には確定しているのだから、メタプログラミングが通常やるように、「別のところ」のテンプレ引数でthrowする型を決定できるようにすればいいんじゃね? : デフォルトの名無しさん [sage] 2018/08/25(土) 23:23:12.69:rL3qzGy6 うん。多分それで困ると思う。が! メタプロやらないから可能性は感じるけど限界がわからない。 まぁ、俺は興味で書いただけだから、がどうするかはシラネ・・・。 : デフォルトの名無しさん [] 2018/08/25(土) 23:24:09.84:Efgla6YW >あえて非参照なテンプレート引数を書く「便利さ」みたいなものはありますでしょうか? threadの場合デフォルトで参照だとdata raceを気づかないで起こす可能性が上がる。 設計としてスレッドの引数はコピーして渡すほうが安全性は高い。 一般論で言えば一時オブジェクトを受け取るならconst&になるけど、 これだとmoveできないので逆に性能が劣化する場合がある。 : デフォルトの名無しさん [] 2018/08/25(土) 23:32:37.06:Efgla6YW 最近の提案なんかではメモリ確保失敗は回復が難しく一般的な例外とは 区別して考えるのが合理的なんじゃないかって話が出てきてる。 んで新しく静的な例外を導入しようっていう話が上がってる。 : デフォルトの名無しさん [sage] 2018/08/25(土) 23:39:53.83:rL3qzGy6 コンパイルタイムで例外わかるんだったら、普通にコンパイルエラーにしよ? : デフォルトの名無しさん [sage] 2018/08/25(土) 23:47:31.99:cO/mJ1mq メメント・メモリ : デフォルトの名無しさん [sage] 2018/08/26(日) 02:56:15.82:zhFpXu2e ヒープが無くなったら、HeapCreateで作れば良いのに。 by マリー・アンチョワネット : デフォルトの名無しさん [sage] 2018/08/26(日) 14:06:36.91:Q8b2w7YQ メモリがどれくらい必要なのか簡単に静的解析できたらいいなあと思うけど 再帰関数のメモリ消費量とか計算難しそう : デフォルトの名無しさん [sage] 2018/08/26(日) 14:10:00.99:BwlGzYMc mcc68kなんかは-Sでアセンブラ出力させると コメントにスタック使用量を入れてくれてたな : デフォルトの名無しさん [sage] 2018/08/26(日) 19:26:38.30:OiuVvKbz 割り込みになるけどちょっと質問させてください struct hoge { int a, b, c; }; auto a = hoge{1, 2, 3}; auto b = int[]{1, 2, 3, 4}; aみたいに型を明示して中括弧でくくった一時オブジェクトは作れるけど、 bみたいに配列を明示して作ることって出来ないですかね? 単に文法上の質問なんで「やる必要あるのか」とか「std::array使え」とか「構造体でラップしろ」は無しでお願いします : デフォルトの名無しさん [sage] 2018/08/26(日) 19:31:13.94:Ws2ZfrVi int[]は int * のシンタックスシュガー : デフォルトの名無しさん [sage] 2018/08/26(日) 19:34:14.95:OiuVvKbz int[4]でもだめだったんですよね・・・・ というか今思いついて(int[4]){1, 2, 3, 4}でやったらいけました お騒がしてすみませそ : デフォルトの名無しさん [sage] 2018/08/26(日) 20:05:48.84:qnZA5cjL auto b ={1, 2, 3, 4}; : デフォルトの名無しさん [sage] 2018/08/26(日) 20:12:01.81:2rP1aXG6 それはC99の複合リテラルになるけど、C++で使ってよかったっけ? : デフォルトの名無しさん [sage] 2018/08/26(日) 20:19:57.43:qnZA5cjL warning: pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression [-Waddress-of-array-temporary] : デフォルトの名無しさん [] 2018/08/26(日) 20:21:33.00:hANAm2gW ttps://ideone.com/A9Bccy #include <stdio.h> int main() { int* b1 = {1, 2, 3, 4}; int b2[4] = {5, 6, 7, 8}; int b3[] = {9, 10, 11, 12}; fprintf(stdout, "b1:%u\n", sizeof(b1)); fprintf(stdout, "b2:%u\n", sizeof(b2)); fprintf(stdout, "b3:%u\n", sizeof(b3)); return 0; } ttps://ideone.com/rJw9cK #include <iostream> using namespace std; int main() { // int* b1 = {1, 2, 3, 4}; コンパイルエラー int b2[4] = {5, 6, 7, 8}; int b3[] = {9, 10, 11, 12}; // cout << "b1:" << sizeof(b1) << std::endl; cout << "b2:" << sizeof(b2) << std::endl; cout << "b3:" << sizeof(b3) << std::endl; return 0; } : デフォルトの名無しさん [] 2018/08/26(日) 20:22:49.21:hANAm2gW c b1:8 b2:16 b3:16 c++ b2:16 b3:16 : デフォルトの名無しさん [] 2018/08/26(日) 20:27:01.66:hANAm2gW うん やっぱり このスレにもアホしかいない : さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2018/08/26(日) 20:28:44.90:Vxoswi+g 自分が天才だと思っているなら、こんなところで遊んでないで、なんか凄いソフトを作ってくれよ。 : デフォルトの名無しさん [sage] 2018/08/26(日) 20:31:31.48:BwlGzYMc レス番が飛んでるなあ : デフォルトの名無しさん [] 2018/08/26(日) 20:31:32.32:hANAm2gW オレは自分を天才とか思ってない オレは天才じゃないが普通の人間だ この板にいる低学歴知恵遅れが まともじゃないのがヤバイといってるワケ 教育の程度や知能に大きな問題があるといってるわけ しかもその自覚がない まずまともな人間になるところから : デフォルトの名無しさん [sage] 2018/08/26(日) 20:44:37.30:qnZA5cjL 誤解したまま帰った? auto a=(int[4]){1,2,3,4}; for(int i=0;i<4;i++) { printf("%d \n",a[i]); } 出力 0 0 0 0 : デフォルトの名無しさん [sage] 2018/08/26(日) 21:13:55.49:OiuVvKbz あー、すみませんautoって書いたのがまずかったですね 試してみたんですが、実際にはコンストラクタに渡すので大丈夫でした autoだと配列の一時オブジェクトへのポインタになるからまずいですね : デフォルトの名無しさん [sage] 2018/08/26(日) 21:54:34.00:7VGl0ROF autoでなくても不味いよ : デフォルトの名無しさん [sage] 2018/08/26(日) 22:13:43.13:zpiwFHmU ほんこれ : デフォルトの名無しさん [sage] 2018/08/26(日) 22:53:29.24:OiuVvKbz なにがどうまずいですかね? : デフォルトの名無しさん [sage] 2018/08/27(月) 08:18:57.12:YiUsgylF まったりとしてコクが無く、魚介類の生臭さを濃縮したような スープと同じぐらい不味い : デフォルトの名無しさん [sage] 2018/08/27(月) 13:42:16.09:QRiCvp9j きも : 944 [sage] 2018/08/27(月) 13:55:56.63:vY3QDx2y お待たせ 俺っちの質問はnested_exceptionを使うケースなので、 948のコードでいうとBaseを多相的クラスにしといて catch(Base&)で捕獲し、dynamic_castでBやCへの アクセスを試みるというようなことだ ところで template<class... Ts> overloaded(Ts...)->overloaded<Ts...>; これが読めん、何やってるのか教えてくれんか : デフォルトの名無しさん [sage] 2018/08/27(月) 14:09:13.11:vY3QDx2y std::uncaught_exceptionというのがあるね : デフォルトの名無しさん [sage] 2018/08/27(月) 14:23:40.86:QRiCvp9j クラステンプレートの引数の推論補助(deduction guide : デフォルトの名無しさん [sage] 2018/08/27(月) 14:26:19.85:vY3QDx2y deduction guideね、thx : さまよえる蟻人間 ◆T6xkBnTXz7B0 [sage] 2018/08/27(月) 15:42:34.96:JbKLTkj/ 次スレ頼む : デフォルトの名無しさん [sage] 2018/08/27(月) 16:02:51.38:r/wp9j7z わたくしがC++で書き上げた超高性能次スレ立てマシーンなら次スレなんて一発ですよ : デフォルトの名無しさん [sage] 2018/08/27(月) 16:03:14.62:vY3QDx2y 立てたよ ttps://mevius.5ch.net/test/read.cgi/tech/1535353320 : デフォルトの名無しさん [sage] 2018/08/28(火) 01:49:58.08:rjIDuLFn スレ番インクリメント機能はC++でも実装不可能なまでに困難な作業だったか : デフォルトの名無しさん [sage] 2018/08/28(火) 06:13:26.80:UQgP5OTn スレ立てが競合した時の排他制御を実装してくれ : デフォルトの名無しさん [sage] 2018/08/28(火) 06:22:11.76:XE/KW9kf 板復帰(OK!:Gather .dat file OK:moving DAT 703 -> 686:Get subject.txt OK:Check subject.txt 703 -> 690:Overwrite OK)0.84, 0.77, 0.74 age subject:690 dat:686 rebuild OK! : デフォルトの名無しさん [sage] 2018/08/28(火) 20:40:17.99:fGjEV9Ei 997 : デフォルトの名無しさん [sage] 2018/08/28(火) 20:40:50.96:fGjEV9Ei 998 : デフォルトの名無しさん [sage] 2018/08/28(火) 20:41:19.69:fGjEV9Ei 999 : デフォルトの名無しさん [sage] 2018/08/28(火) 20:41:56.22:fGjEV9Ei 1000 : 1001 [] Over 1000Thread このスレッドは1000を超えました。 新しいスレッドを立ててください。 life time: 45日 2時間 48分 54秒 : 1002 [] Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。 運営にご協力お願いいたします。 ─────────────────── 《プレミアム会員の主な特典》 ★ 5ちゃんねる専用ブラウザからの広告除去 ★ 5ちゃんねるの過去ログを取得 ★ 書き込み規制の緩和 ─────────────────── 会員登録には個人情報は一切必要ありません。 月300円から匿名でご購入いただけます。 ▼ プレミアム会員登録はこちら ▼ ttps://premium.5ch.net/ ▼ 浪人ログインはこちら ▼ ttps://login.5ch.net/login.php
凡例:
レス番
100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている
名前
名無しさん (青) → sage のレス
名無しさん (緑) → age のレス
ID
ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID
このページは2ch勢いランキング が作成したアーカイブです。削除についてはこちら 。