2ch勢いランキング アーカイブ

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

勢い5万以上のスレをメールでお知らせするサービス、実施中!!
憧れボディをGETしたい!その夢、ボニックで!

2ch勢いランキング アーカイブ プログラム板ランキング

凡例:

レス番

100 (赤) → 2つ以上レスが付いている
100 (紫) → 1つ以上レスが付いている

名前

名無しさん (青) → sage のレス
名無しさん (緑) → age のレス

ID

ID:xxxxxxx (赤) → 発言が3つ以上のID
ID:xxxxxxx (青) → 発言が2つ以上のID

このページは2ch勢いランキングが作成したアーカイブです。削除についてはこちら