◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

C++相談室 part137 ->画像>3枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1531558382/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん
2018/07/14(土) 17:53:02.14ID:FOAGvAbs
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。

前スレ
C++相談室 part135
http://2chb.net/r/tech/1522495206/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
http://2chb.net/r/tech/1509780815/

■長いソースを貼るときはここへ。■
 http://codepad.org/
 https://ideone.com/

[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)

----- テンプレ ここまで -----

VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
2デフォルトの名無しさん
2018/07/14(土) 17:55:20.65ID:FOAGvAbs
スレ作ってみましたが、これ設定間違ってますか?
ワッチョイほにゃららが出てきてない。
3デフォルトの名無しさん
2018/07/14(土) 18:42:45.47ID:p9pW3bxe
>>1
スレの立て方は一番上に書いてある。
前スレや関連スレへのリンクも間違ってるぞ。
4デフォルトの名無しさん
2018/07/14(土) 18:59:13.88ID:tzAF1ivs
ヘタクソかよ
5デフォルトの名無しさん
2018/07/14(土) 20:33:07.04
スレ立て苦手か?
6デフォルトの名無しさん
2018/07/14(土) 20:48:45.99ID:6fifTYMf
>>1
ume
7デフォルトの名無しさん
2018/07/14(土) 21:34:02.24ID:xV7EJA5w
前スレの 1N2GRIlb0
ディスクキャッシュに入ってるってずいぶん前からわかってたのに
何でムダな作業をやらせたの?
8デフォルトの名無しさん
2018/07/14(土) 21:38:31.07ID:1N2GRIlb
このスレの知恵遅れたちが
どんだけ頭悪いのかよおく分かっただろ

同じ計算機で2秒で終わるような読みこみ処理で
数十秒かかるとかいってたワケだからな

相当オツムが弱い
このスレは知恵遅れしかいない
9デフォルトの名無しさん
2018/07/14(土) 21:41:09.27ID:1N2GRIlb
いまになって
分かってたとかいいだしてるしな

ディスク読む時間に知ったかぶって調子こいてた知恵遅れは
どこいったの?
10デフォルトの名無しさん
2018/07/14(土) 21:42:37.85ID:xV7EJA5w
ん?
何度も指摘してたけど
11デフォルトの名無しさん
2018/07/14(土) 21:43:13.23ID:1N2GRIlb
嘘コケ
ハゲ

知恵遅れは前のスレ読んで出直してこいや
12デフォルトの名無しさん
2018/07/14(土) 21:45:09.81ID:1N2GRIlb
ハードディスクの内側読みこんで読みこみ時間がどうとかいってた
バカいる?
13デフォルトの名無しさん
2018/07/14(土) 21:45:30.57ID:xV7EJA5w
測らせるならキャッシュに無い状態にしないとアホだろ
14デフォルトの名無しさん
2018/07/14(土) 21:46:18.02ID:xV7EJA5w
はじめはキャッシュに入って無いんだから
15デフォルトの名無しさん
2018/07/14(土) 21:46:29.73ID:1N2GRIlb
むしろなバカが指南した方法やコードでは
キャッシュのっかても数十秒かかってたってことだぞ
16デフォルトの名無しさん
2018/07/14(土) 21:48:09.38ID:1N2GRIlb
このスレで教えを乞うてるヤツは
何度もデバッグで走らせてるハズのに
知恵遅れの方法やコード数十秒かかるってことだ

オレのは2秒かからない
知恵遅れは息してる?
17デフォルトの名無しさん
2018/07/14(土) 21:48:37.29ID:xV7EJA5w
測定した結果は
fgetsの17秒とreadの1〜2秒しか無い

普通に読むだけで数十秒なんて測定結果は無い
18デフォルトの名無しさん
2018/07/14(土) 21:49:17.53ID:1N2GRIlb
読み方次第で差は歴然と出る
オレの方法は最適な方法だからな
19デフォルトの名無しさん
2018/07/14(土) 21:50:16.06ID:xV7EJA5w
fgetsは速いとか言ってなかった?
今遅いことが証明されてるのはfgetsだけ
20デフォルトの名無しさん
2018/07/14(土) 21:50:39.19ID:1N2GRIlb
やっぱり知恵遅れはなにも分かってないわ
まず自分が呼んでる関数がどんな動作してるか分かってないからな
21デフォルトの名無しさん
2018/07/14(土) 21:51:14.96ID:xV7EJA5w
何の工夫もないただのreadで2秒なら、
他の方法も読むだけなら2秒
22デフォルトの名無しさん
2018/07/14(土) 21:51:37.65ID:1N2GRIlb
やっぱりこのスレは
相当な知恵遅れしかいない
CもC++も何も分かってない

それ以前の問題
23デフォルトの名無しさん
2018/07/14(土) 21:53:57.67ID:1N2GRIlb
測定結果ででてるからな
相当な速度で速く読みこみたいのに標準関数のファイルポインタ使う知恵遅れなんか
まずいない

ファイルポインタ使う標準関数は
このスレにいる知恵遅れにでも簡単に使えるように
openやread使って使いやすく作ってあるだけだからな
24デフォルトの名無しさん
2018/07/14(土) 21:54:36.27ID:xV7EJA5w
fgetsが速いとか言ってたアホが
readとfreadの差を強調する

オーバーヘッドのオーダーは1
読み込みバッファが常識的なサイズであれば無視できる
fgetsのオーバーヘッドのオーダーはn
バッファサイズによらずオーバーヘッドは無視できない
25デフォルトの名無しさん
2018/07/14(土) 21:55:42.62ID:1N2GRIlb
まずfreadもバッファもってるのすら分かってないからな
26デフォルトの名無しさん
2018/07/14(土) 21:56:36.36ID:xV7EJA5w
freadで測定させれば証明出来るが

で、
もともと測りたかったディスクアクセスの時間は?
まさかキャッシュに入った状態が普通と考えてるわけではあるまい
27デフォルトの名無しさん
2018/07/14(土) 21:56:51.40ID:1N2GRIlb
ファイルポインタがもってるバッファから
いちいちこっちのバッファにコピーしてんのに

まずその程度のことすら分かってない
28デフォルトの名無しさん
2018/07/14(土) 21:57:27.49ID:1N2GRIlb
相当頭が悪いのが
知ったかぶってるのは分かる
29デフォルトの名無しさん
2018/07/14(土) 21:58:58.41ID:xV7EJA5w
測って見ればわかるって

で肝心の解析コードはどうした?
糞遅いコードを自信満々にあげてたけど
30デフォルトの名無しさん
2018/07/14(土) 22:00:01.80ID:1N2GRIlb
クソ遅い?
オレのコードを動かして速度測定したの?

オレより10倍以上低速に作る才能がある知恵遅れのくせに
31デフォルトの名無しさん
2018/07/14(土) 22:03:31.04ID:xV7EJA5w
糞遅い
間違い無い

お前の環境で15GBのテキストを作って解析時間を測ってみな
32デフォルトの名無しさん
2018/07/14(土) 22:10:21.76ID:1N2GRIlb
とりあえず
知恵遅れはほっといて

テストデータをジェネレートするコードを
前スレの内容読んでテキトーに作った

 https://ideone.com/cPZvWL

baka_genでコンパイルすれば大量のテストデータを作ってくれる優れものだ
※ 指定ギガバイト数越えたら、1つのセクション書ききったら停止する

 使い方
  Usage:baka_gen <fileparh> <GB size>

出力されてる形式に問題がないかみといてくれ
形式が分からないと解析処理を作りようがない

明日からこのテストデータを解析する処理を作る
33デフォルトの名無しさん
2018/07/14(土) 22:11:40.89ID:1N2GRIlb
まず知恵億れはなにと比較して遅いとか書かないからな
オレは知恵遅れが書いたコードより少なくとも10倍以上速い処理を書いてる
34 ◆QZaw55cn4c
2018/07/14(土) 22:17:02.80ID:CBXc6tpD
>>32
なんか error がいっぱい出ているようだが…
35デフォルトの名無しさん
2018/07/14(土) 22:17:16.55ID:xV7EJA5w
15GBのテキストの解析で8.6秒
これを越えればいい
36デフォルトの名無しさん
2018/07/14(土) 22:17:46.97ID:1N2GRIlb
なんのエラー書けよ
エラーとかいわれても分かるワケがないだろ

ヴォケ
37デフォルトの名無しさん
2018/07/14(土) 22:18:22.90ID:1N2GRIlb
で、そのコードはったのかオマエは
38デフォルトの名無しさん
2018/07/14(土) 22:19:29.69ID:xV7EJA5w
>>33
fgets 17秒
これは俺じゃない

キャッシュに入ったデータの読み込み時間

ディスクからの読み込み時間
とを比べて10倍とか言ってるの?
39 ◆QZaw55cn4c
2018/07/14(土) 22:19:38.05ID:CBXc6tpD
>>36
>>32 https://ideone.com/cPZvWL
の下の方にいっぱい書いてあるぞ?本当にコンパイルの通るコードなのか?
40デフォルトの名無しさん
2018/07/14(土) 22:20:14.44ID:1N2GRIlb
8.6秒とかテキトーなことなら
なんとでもいえるからな

どんなファイル読んで
どんなソース作ったわけ?

ファイル形式ちゃんとわかってんの
41デフォルトの名無しさん
2018/07/14(土) 22:22:08.48ID:1N2GRIlb
適切なインクルードファイルを上に書けば
間違いなく通る

ココで教えを乞うているバカですら
それぐらいのことやってる

オマエはそれ未満だ
42デフォルトの名無しさん
2018/07/14(土) 22:26:38.36ID:xV7EJA5w
テキストのほとんどが数値の行
10%の割合でx, yの行
セクションは全部で100個くらい

数値は乱数で作成した
実際の分布を考えて、
桁数によって出現率を変えてある

異常データでも不正アクセスしない

文字コードはS-JIS
改行はLFのみ
43 ◆QZaw55cn4c
2018/07/14(土) 22:27:16.82ID:CBXc6tpD
>>41
「unknown type name ‘size_t’」がインクルードファイルで直る問題なのか?
ideone に怒られないコードが書けないのか?
44デフォルトの名無しさん
2018/07/14(土) 22:29:41.45ID:xV7EJA5w
数値は符号付き32bitに収まる値で
printf("%d", n);
で出力される文字列と同じ書式
45デフォルトの名無しさん
2018/07/14(土) 22:31:59.85ID:1N2GRIlb
https://ideone.com/hi8bYd

ヘッダファイルを適切にインクルードしたら
普通にエラーメッセージ消えたぞ

バカはなにをいってるのか意味が分からないワケ
46デフォルトの名無しさん
2018/07/14(土) 22:33:55.81ID:1N2GRIlb
なんか知恵遅れがバカみたいなレスをブツブツ書いてるし
ごちゃごちゃいってないでコードあげたらどうだ
47デフォルトの名無しさん
2018/07/14(土) 22:35:19.66ID:xV7EJA5w
シングルスレッド、順番に全文字スキャンの処理で
処理時間は1文字平均約2クロック (Haswell)

最適化的にはこれが出発点
さらに高速化する価値がある処理であれば
マルチスレッド,GPU, AVX ...
まだまだ高速化の余地はある
48デフォルトの名無しさん
2018/07/14(土) 22:36:12.81ID:1N2GRIlb
また知恵遅れがテキトーなこといってるしな
49デフォルトの名無しさん
2018/07/14(土) 23:49:17.06ID:5xFWH4XP
残念ながらクソシンタックスが増えれば増えるほどアホでもテクニカルターム使って
アホと思われない活動が可能になって行くんだよ。
50デフォルトの名無しさん
2018/07/15(日) 00:49:14.70ID:p2p9fdhp
>>32,45
サンプルデータ作成コードありがとうございます。
実行してみましたが面白いですねこれ。
完成したら数十ギガのデータ作って遊んでみたい。
サンプルデータができて説明しやすくなったので色々補足させていただきます。
ちょっと細かい内容になるので、今あるサンプルデータ作成コードを
使用されても問題ありません。

文字コードはutf8 or euc-jpの両方を想定しています。

ファイルの1行目に下記行が一度だけ出てきます。
// タイトル、倍率(mag)。(この係数を使ってCの数値から割る、正の整数。unsigned int)
::fprintf(fp, "%s %d\x0a", "TITLE_NAME", 2000);

具体的には https://ideone.com/hi8bYd の64行目に上記が入ります。


Aのセクション集計値は個数が0のときがある。その時はテキスト行だけで終わり。
0 0 1 Jul〜
TEXT TEXT TEXT TEXT

Bのテキスト行は日本語(2byte)が来ることがある。

>つづく
51デフォルトの名無しさん
2018/07/15(日) 00:54:03.20ID: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

>つづく
52デフォルトの名無しさん
2018/07/15(日) 00:58:25.78ID: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

>つづく
53デフォルトの名無しさん
2018/07/15(日) 01:02:10.59ID: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;
54デフォルトの名無しさん
2018/07/15(日) 01:59:33.70ID:lbsq5rUe
そろそろ「ぼくちんのログ解析ソフトを名無しどもに作らせるスレ」でも立ててそっちでやってくれないか
55デフォルトの名無しさん
2018/07/15(日) 02:07:19.29ID:eimWnm2X
いい加減にしろよお前
土方コーダに発注する気分でてめえのクソログの仕様ドヤ顔で書いてんじゃねえよ
ありったけスレ私物化して相談しまくったんだからそろそろ自分の手と頭を動かしたらどうだ
56デフォルトの名無しさん
2018/07/15(日) 02:58:06.76ID:F1eG7opL
ID:p2p9fdhp さん、別のスレに移動を願います。
57デフォルトの名無しさん
2018/07/15(日) 04:38:00.97ID: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のまちまちな場所をランダムアクセスしだすとたちまち顕在化する(これも上のしくみから導ける
単一ファイルの読込であっても、アプリがファイルの一部を読み込んで考え込む、の繰り返しなパターンならば
アプリ側のマルチスレッド化が有効な「こともある」 今回は該当しないと思うが、、
58デフォルトの名無しさん
2018/07/15(日) 05:01:06.13ID:EFpmUWpC
てな議論はベアメタルでやるならともかく
依存処理系では特定OSの話になるし
抽象化されたハードウエアじゃ特性を仮定すること自体ナンセンス
59デフォルトの名無しさん
2018/07/15(日) 06:33:31.92ID:F1eG7opL
>>57
申し訳ありませんが、C++と関係がない話は、他のスレでやってください。よろしくお願いします。
お気を悪くなされませんよう。
60デフォルトの名無しさん
2018/07/15(日) 11:31:30.36ID: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
61デフォルトの名無しさん
2018/07/15(日) 11:32:24.73ID:Y0/Ay92k
>>60

unsigned int l = -1;
int m = 4294967295;

がエラーにならないのはなぜでしょうか?
62デフォルトの名無しさん
2018/07/15(日) 11:45:15.02ID:Y0/Ay92k
http://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なのでしょうか?
63デフォルトの名無しさん
2018/07/15(日) 11:51:25.65ID:kDEFN2k+
解釈が間違ってる
ValueFactoryの実体を作って返すためにはすでに定義が分かってないといけない(完全型でないといけない
対してfriend宣言は名前だけ分かってればいい(定義がまだ無い(=不完全型)でいい

というだけの話
64はちみつ餃子 ◆8X2XSCHEME
2018/07/15(日) 11:59:00.99ID:HERu1+Fl
>>61
暗黙のキャストのせい。

整数リテラルに型を表す接尾辞がつかない場合は原則として int として解釈されるけど、
int の範囲より大きい場合はそれを表せる最低限の整数型として解釈されるんだったはず。

整数型の初期化 (代入) の右辺に現れた値が左辺の型で表せるときはそのままの値であることが保証されるが、
そうでないときは一定の規則に従って縮小される。

縮小の仕方は、
左辺が unsigned のときは、左辺の型が表せる最大値に 1 足した数で右辺の modulo を取った値が左辺に入る。
左辺が signed のときは未定義。
なので、 (int が 32 ビットの大きさをもつとき) unsigned int l = -1; が 4294967295 になるのは規格通りだが、
int m = 4294967295; が -1 になるのは保証されない。

規格を確認せずに記憶で書いてるので、
もし間違ってたら誰か指摘よろー。
65デフォルトの名無しさん
2018/07/15(日) 12:01:48.69ID: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] << " ";
}

読み込みは、読み込んで表示も出ますが
何かエラーが出ます
どうしてでしょうか
66デフォルトの名無しさん
2018/07/15(日) 12:06:41.50ID:lbsq5rUe
書き込んだものに区切り入れてないけどそれでいいの?
67デフォルトの名無しさん
2018/07/15(日) 12:11:00.69ID:Y0/Ay92k
>>63

ありがとうございます。

ソースコード全体をコンパイラがみれば定義も分かるのに、なぜコンパイルエラーにするのでしょうか?

>>64

ありがとうございました。
68デフォルトの名無しさん
2018/07/15(日) 12:12:20.49ID:Y0/Ay92k
>>63

例えば、 Python では、相互に参照していてもOKです。
69デフォルトの名無しさん
2018/07/15(日) 12:15:07.36ID:Y0/Ay92k
コンパイラーについての知識がないと理解しにくい部分でしょうか?
70デフォルトの名無しさん
2018/07/15(日) 12:15:22.56ID:WB6myqsz
>>66
なにか、ヌル文字を読み込もうとしてるエラーのようで
なるほど、区切り文字というのを入れて
getlineとかを使用して読み込んでいくべきなのかな・・・・
71デフォルトの名無しさん
2018/07/15(日) 12:50:13.08ID: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とかと違って難しいですね
72デフォルトの名無しさん
2018/07/15(日) 13:00:44.43ID:oGr67yTf
>>70
&moji[i]はstringインスタンスの格納先アドレスであって、中に格納されている文字列データの先頭ではないよ。
無理やりやるなら
ifs2.read(const_cast<char*>(&moji[i].data()), moji[i].length());
とかすれば動くと思うけど

>>71
文字列以外も書き込みだしたら\nと競合するけどいいの?
getline使うならbinaryモードは使うべきでないと思うし、そもそも文字列しか書き込まないならbinayモードにする必要ある?
73デフォルトの名無しさん
2018/07/15(日) 13:02:49.96ID:oGr67yTf
あとエラー出力は正確に書いてくれないと、コード全部読まないといけないからしんどいです…
74デフォルトの名無しさん
2018/07/15(日) 13:18:02.66ID:lbsq5rUe
>>67
C++はそういうコンパイルの仕方しないから
cppごとにオブジェクトファイル(クラスのインスタンスとしてのオブジェクトとかとは別の意味)というのを作ってから
オブジェクトファイル同士のリンクという作業をして目的の実行バイナリを作る
オブジェクトファイルは自分自身で完結してないといけないので、
「ValueFactoryとかいうクラスのポインタ」「ValueFactoryとかいうクラスがfriendだという情報」は持つことが出来るけど
(別のファイルがValueFactoryの実体を持ってると期待して)
ValueFactoryの実体作れとか実体使ってなんかやれ(そういう実行コードを保持しろ)と言われたら困ってしまうってこと
75デフォルトの名無しさん
2018/07/15(日) 13:19:42.19ID:WB6myqsz
>>72
数字の配列はバイナリでエラー無いので
やはり、文字列はテキストに出力したほうがいいんかな
>>73
今度からはそうします
すみませんでした
76デフォルトの名無しさん
2018/07/15(日) 13:42:15.67ID:oGr67yTf
もちろんバイナリ形式でもいいのだけど、その場合は文字列を固定長にするとか、tlv形式で作ってみては?
https://en.m.wikipedia.org/wiki/Type-length-value
77デフォルトの名無しさん
2018/07/15(日) 14:56:48.40ID:p2p9fdhp
大規模ファイルの読み込みについて相談しているものです。

以下調査結果です。
ファイルは上記で13GBのファイル生成したものを使用
https://ideone.com/hi8bYd

@下記コードの結果
https://ideone.com/e9iA5m
512,15 →15秒
1024,7 →7秒
2048,5 →5秒
4096,3 →3秒
8192,2 →2秒

>つづく
78デフォルトの名無しさん
2018/07/15(日) 14:58:34.48ID:p2p9fdhp
A作成した下記コードでテスト。 →約2秒
https://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秒に増加しているので、
まずここの作りがおかしいんだろうなとは思いますが、
何がおかしいのかが、まだわかっていません。
79デフォルトの名無しさん
2018/07/15(日) 16:27:56.77ID:Y0/Ay92k
>>74

ありがとうございました。
80デフォルトの名無しさん
2018/07/15(日) 17:27:08.76ID:1ys/w/8R
fseekをつかうのなんか絶対ダメだ

fseekされることで標準関数がFILEポインタでもってるバッファも
めんどいことになってるのが容易に想像がつく
そしてさらにlseekもシステムコールも呼ばれる

標準関数の実装のされかたにもよるが
大きな性能劣化は避けられない

Dの方法でひたすら シ リ ア ル に読まないと遅くなるのは当然
そんな標準関数でやってるようなことを、
こっち側でやるならそもそも標準関数使う意味がない

普通にopen、readでこっちが渡したメモリにそのまま読みこむほうがいい
まずFILEポインタ使ってfreadしか使わないなら、はっきりいってfread使うメリットは
まったくない

関係ないようで関係ある話だが
キャッシュがきいてない状態ではposix_fadviceを呼んでおくと
シ リ ア ル に大きなファイルを読み込むときには、計算機の状態によっては
劇的に改善することがある
81デフォルトの名無しさん
2018/07/15(日) 17:36:56.10ID:1ys/w/8R
ちなみにファイルはUNIXでは
ブロックデバイスだからな

そのブロックデバイスをセクタ単位で
効率的に読み込むためにはどうすればいいか

あとはもう分かるな

このスレにいるサル並の知能しかないようなヤツラ以外なら
わかるハズだからな
82デフォルトの名無しさん
2018/07/15(日) 18:02:19.58ID:1ys/w/8R
まずストレージというハードウェアが
OSでどうやって抽象化されてるか
わかってないからな

こんな頭悪いヤツラが抽象化とかなんとかいってるワケ
きっとな前スレのソースの注釈で書いたwindowsで、キャッシュなしでReadFile呼ぶ時は
セクタの倍数単位でないと使えないという意味も分かってない

ともかくこのスレに居ついてるヤツラは頭悪い
基本的なことが分かってないからな

まずなバカはこのスレで相談することが
バカな行為であることに気付かないといけない
バカななに聞いてもムダ
的外れなコタエしか返ってこない
83デフォルトの名無しさん
2018/07/15(日) 18:16:38.79ID:F1eG7opL
>>80
> FILEポインタ使ってfreadしか使わないなら、はっきりいってfread使うメリットはまったくない

メリットはあるでしょ。システムコールのreadやReadFile()と違い、
FILE*を使ったfread()はアラインメントを無視した小さいバッファサイズで読み込んでも全体としての速度低下が起きにくい恩恵がある。
84デフォルトの名無しさん
2018/07/15(日) 19:07:48.62ID:lbsq5rUe
13Gログ解析野郎と半角野郎が毎度毎度必ずコンビで出てくるのは何なんだろうなー
おっかしいなー

「ぼくちんのログ解析ソフトをぼくちんが考えた最強の名無しが作るスレ」でやってどうぞ
85デフォルトの名無しさん
2018/07/15(日) 20:22:05.00ID:1ys/w/8R
低学歴で知能低いのが答えられる質問の範囲なんかたかがしれてる
知恵遅れでも回答できる質問に限定される

こういうヤツラはYahoo知恵遅れがお似合い
もうね2ちゃんねるのクオリティーも著しく低下したもんだわ

著しくレベルの低い質問なら回答できるワケだからな
情報として保存される価値すらない
ゴミ質問とゴミ回答
86デフォルトの名無しさん
2018/07/15(日) 20:27:33.82ID:1ys/w/8R
昔ならググレカスでおわるような質問を
どやがおで低学歴知恵遅れが回答するスレがココだからな

低学歴知恵遅れが活躍できる場所はココしかない

オレのナワバリを荒らすなと低学歴知恵遅れが
主張している
87デフォルトの名無しさん
2018/07/15(日) 20:39:19.46ID:oGr67yTf
あぼーん設定推奨
[ヲ-゚]
88デフォルトの名無しさん
2018/07/15(日) 22:46:04.59ID:GtfCPRC1
POSIXの制限に起因するパフォーマンス低下を回避するためのドライバをさっき見たばかりだな。
ハイパフォーマンスの世界にはそういうのもあるんだな。
89デフォルトの名無しさん
2018/07/15(日) 23:08:51.14ID:ugn7dRUi
>>85
解析のコード書けたの?
お前が全部作ってアップすればそれで終わる
90デフォルトの名無しさん
2018/07/16(月) 01:21:00.28ID:6luw5g3K
とりあえずファイルすべての字句解析と
最低限のデータ取得できるとこまではできた
※ あとはデータを格納するだけ

テストデータのジェネレータを修正した
https://ideone.com/NWdMmL

で、とりあえず作ってみた解析のコードが↓コレ

https://ideone.com/E6QH2r

プリプロセッサにDEBUG_WRITEの定義を追加してやれば
データ取得できてることがダンプして確認できる

※ ダンプする場合は、ファイルにリダイレクトするにしても
※ 物凄い時間かかるし、物凄いディスク容量をとるから小さいテストデータでやるほうが
※ とりあえず無難

ものすごい単純なコードプロトタイプになってるから
バカでもチョンでも簡単に整理や作りかえができるようにはなってる

※ 処理内容はコードみたまんまのハズだ
※ 同じような処理がひたすら書かれてる
※ QQがなくなればめっちゃコード減るハズ
※ コードのほとんどはQQのムダ処理
91デフォルトの名無しさん
2018/07/16(月) 01:37:37.27ID:RYaEyvne
うわっ
汚いコード
92デフォルトの名無しさん
2018/07/16(月) 10:44:37.38ID:526Z5Rhh
15GBのテキスト解析8.6秒のマシンで
>>90の時間を計ったら54秒でした。
ファイルアクセスの時間は除いた純粋な解析処理です。

これがプロとアマチュアの差ですか。
まあ54秒でも使えるレベルではあると思うんで
これで良いんじゃないですかね?
93デフォルトの名無しさん
2018/07/16(月) 11:29:13.12ID:80hpbb9v
OS のAPI を、直接呼んではいけない。
例えば、1バイト読み込みを千回やれば、千回API が呼ばれる。
ユーザーモードからカーネルモードへの、コンテキストスイッチが千回

一方、バッファリングしている、C のライブラリを使えば、
千バイト1回の読み込みで済む

ライブラリが抽象化している。
buffering stream

ユーザー → (ライブラリ) → API
94デフォルトの名無しさん
2018/07/16(月) 11:39:40.02ID:774eW9FT
>>90
今回相談しているものです。
ありがとうございます。

まず >>78 でAが2秒、Bが25秒の違いを調べました。

>>78 のBで実行するため昨日アップした https://ideone.com/1YhaLR に
「#define READ_MODE 1」を設定し25秒かかることを確認。
ここから後ろの処理からコメントアウトしていくと、下記行の前後で
25秒から2秒に変わりました。

88行目: data = real_data;

real_data(char型)のポインタをdata(char型のポインタ)に代入したつもりだったのですが、
もしかして実体がコピーされているのでしょうか?

>つづく
95デフォルトの名無しさん
2018/07/16(月) 11:41:24.00ID:774eW9FT
続けて >>90 のコードを実行してみました。

データ生成の方は、>>51 の最後に説明している、
「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

みなさんキャッシュの話をされていて、その辺がまだあまり理解できていないのですが、
文字列解析時にはキャッシュから取り出して参照するため時間は増えるということですかね。
96デフォルトの名無しさん
2018/07/16(月) 11:50:33.56ID:774eW9FT
あと、freadだけで2秒のものに、freadの後にからなず fseek(fp, -10000, SEEK_CUR) を実行してみましたが、
処理時間は2秒で変わりはありませんでした。

これらのことから >>94 で書いている

88行目: data = real_data;

のせいで2秒から25秒に増加しているようです。
97デフォルトの名無しさん
2018/07/16(月) 15:13:00.28ID:774eW9FT
>>90 のコードを >>95 と同じ環境で、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
98デフォルトの名無しさん
2018/07/16(月) 15:37:46.05ID:6luw5g3K
かわりがないとか
んなわけがないからな

先にいっておくが
ちなみにオレのコードより
おなじところまで解析できる処理を
速い速度で作れるヤツはまずいないからな

作れるもんなら作ってみればいいわ
99デフォルトの名無しさん
2018/07/16(月) 15:40:29.53ID:6luw5g3K
ちなみにDEBUG_WRITEを定義に追加したら死ぬほど遅いからな
ちゃんとDEBUG_WRITEをとって計測してるのかすら怪しい

バカが書いたコードより間違いないなく速いハズだからな
100デフォルトの名無しさん
2018/07/16(月) 15:48:01.58ID:80hpbb9v
同じデータで、2回テストしても、

1回目は、HDD からメモリへ読み込むけど、
2回目は、既にメモリ上にデータが存在するから、HDDから読み込まない。
メモリキャッシュから読むから、HDDの読み込み速度とは違う

だから、2回目のテストの前に、
メモリキャッシュをすべて破棄しておいてから、テストをしないといけない
101デフォルトの名無しさん
2018/07/16(月) 15:49:56.51ID:6luw5g3K
コレで他のより遅いというなら
オレはもうバカの相談には二度とのらないし
コレ以上のコードは書かない

ほぼ限界まで速度が出るようにチューニングしてるハズだからな

評価のしかたが分かってない
102デフォルトの名無しさん
2018/07/16(月) 15:51:18.48ID:fNWu8+xr
>>98
>>92
103デフォルトの名無しさん
2018/07/16(月) 15:51:33.68ID:6luw5g3K
だからコードあげろよ
104デフォルトの名無しさん
2018/07/16(月) 15:52:15.83ID:fNWu8+xr
ザコ
105デフォルトの名無しさん
2018/07/16(月) 15:52:15.93ID:6luw5g3K
シロウトは口だけだからな
クソニートのシロウトが口をはさむ余地なんかない
106デフォルトの名無しさん
2018/07/16(月) 15:53:09.83ID:6luw5g3K
ザコはオマエだろ
クソニートのザコはコードあげずに
何秒とかいってるだけだからな
107デフォルトの名無しさん
2018/07/16(月) 15:55:20.94ID:fNWu8+xr
数値への変換、何で標準ライブラリ使うのやめたの?
速いんでしょ?
www
108デフォルトの名無しさん
2018/07/16(月) 15:55:41.81ID:fNWu8+xr
fgetsも何で使うのやめたの?
速いんでしょ?
109デフォルトの名無しさん
2018/07/16(月) 15:57:13.10ID:6luw5g3K
読み込み速度で問題
そしてポインタをひたすらインクリメントだけして
ひたすら最小限の参照するだけの処理より速い処理なんか
逆立ちしてもかけるワケがないからな
110デフォルトの名無しさん
2018/07/16(月) 15:58:16.80ID:6luw5g3K
fgetsはシロウトが使っても概ね良好な結果が約束されてる
111デフォルトの名無しさん
2018/07/16(月) 16:01:19.01ID:fNWu8+xr
>>109
だからお前はザコ
112デフォルトの名無しさん
2018/07/16(月) 16:03:00.33ID:6luw5g3K
クソニートがいきがってるしな
オレが書いたコードを超える速度がでるコードを
まずあげてみろよ

話はそこからだからな
113デフォルトの名無しさん
2018/07/16(月) 16:03:52.50ID:6luw5g3K
クソニートはテキトーなことばっかりいって
口だけだからな
114デフォルトの名無しさん
2018/07/16(月) 16:03:56.64ID:fNWu8+xr
糞コードがなぜ糞か
どこで時間がかかるのか
それくらい自分で調べよう
115デフォルトの名無しさん
2018/07/16(月) 16:04:43.29ID:6luw5g3K
だからクソニートはコードあげろよ
オレのコードにムダは一切ない
116デフォルトの名無しさん
2018/07/16(月) 16:05:18.19ID:fNWu8+xr
8.6秒のコードも
まだまだ改善の余地があるから
117デフォルトの名無しさん
2018/07/16(月) 16:05:51.54ID:6luw5g3K
だからクソニートは口だけ8.6秒のコードをあげろよ
118デフォルトの名無しさん
2018/07/16(月) 16:06:30.96ID:fNWu8+xr
まあせいぜい頑張ってね
ザコ
119デフォルトの名無しさん
2018/07/16(月) 16:07:20.43ID:6luw5g3K
オマエはクソニートだからな
クソニートはコードの速度の心配をするまえに
自分の心配をしたほうがいい
120デフォルトの名無しさん
2018/07/16(月) 16:22:48.03ID:6luw5g3K
https://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

バカが試験してシステムコール呼びだしのオーバヘッドの評価なんかすでに評価済
(システムコール呼びだしのオーバヘッドの評価なんか、バッファサイズを変更による推移をみれば簡単に評価できる)
121デフォルトの名無しさん
2018/07/16(月) 16:28:07.89ID:fNWu8+xr
まだキャッシュに入ってる前提でテストしてるの?
アホなの?
122デフォルトの名無しさん
2018/07/16(月) 16:30:26.25ID:6luw5g3K
また低学歴知恵遅れのクソニートがテキトーなこといってるからな

キャッシュにのってるなら
オレのエレガントなコードを除いたすべてのクソコードも同じキャッシュがのった条件で
試験されてるわ
123デフォルトの名無しさん
2018/07/16(月) 16:31:48.69ID:6luw5g3K
低学歴知恵遅れのクソニートってテキトーなこといって
なんかいった気になる

社会参加しないクソニートが2ちゃんねるで政治の話をするのと似てる
124デフォルトの名無しさん
2018/07/16(月) 16:31:59.31ID:fNWu8+xr
まず54秒をどうにかしろよ
125デフォルトの名無しさん
2018/07/16(月) 16:33:40.35ID:fNWu8+xr
1秒〜2秒なんてどうでもいい

キャッシュに無い時の読み込み時間
解析時間

これをどうにかしろよ

意味の無い所に時間をかける典型的なアホ
126デフォルトの名無しさん
2018/07/16(月) 16:34:35.04ID:fNWu8+xr
木を見て森を見ず
127デフォルトの名無しさん
2018/07/16(月) 16:44:07.58ID:774eW9FT
今 >>90 の解析コード見てますがseekを使わずreadで連続して読み込むところがとても参考になります。
こうやって読み込むんですね。
128デフォルトの名無しさん
2018/07/16(月) 16:54:07.55ID:fNWu8+xr
いろいろとパクってるね
129デフォルトの名無しさん
2018/07/16(月) 18:00:25.42ID:6luw5g3K
オマエはまずオレのエレガントなコードを参考するまえにな
この愚かなコードをどうにかしたほうがいい

unsigned char real_data[BUF_SIZE+1];
size = fread( &real_data, sizeof(real_data[0]), BUF_SIZE, fp);
data = real_data;

遅いどころかそもそもちゃんと動作すらするワケがない
マジでな、オマエは今までなにをやってたわけ?

小一時間問い詰めたいわ

はっきりいうわ
オマエ、才能ない
130デフォルトの名無しさん
2018/07/16(月) 18:05:36.68ID:6luw5g3K
オレが引用したオマエのコードが
なんでお話にならないくらいダメなのか
理由が分からないならオマエはCをさわらないほうがいい

コレはいいきれる

速く動作させたいとか以前の問題だからな
131デフォルトの名無しさん
2018/07/16(月) 18:29:34.88ID:fNWu8+xr
エレガントなコードwww
糞汚くて激遅なコード

お前は偉そうに語れるレベルじゃない
132デフォルトの名無しさん
2018/07/16(月) 18:30:40.10ID:fNWu8+xr
ザコはザコらしくしてろ
133デフォルトの名無しさん
2018/07/16(月) 18:34:38.20ID:fNWu8+xr
テキトーに作った1作目
前スレの>>851の24.3秒
の倍以上の時間で
もうネタ切れのザコ
134デフォルトの名無しさん
2018/07/16(月) 18:58:39.51ID:6luw5g3K
ごちゃごちゃいってないでな
クソニートはオレより速くできるコードをあげたらどうだ

クソニートが邪魔でしょうがない
135デフォルトの名無しさん
2018/07/16(月) 19:00:10.74ID:r07bWXyg
何の邪魔?
5chで名を上げようとでも思ってるの?w
136デフォルトの名無しさん
2018/07/16(月) 19:02:42.71ID:6luw5g3K
どうでもいいが
クソニートは邪魔しかしないからな

オレのエレガントなコードに嫉妬してるワケ

まちがいなくオレのコードより速いコードなんかかけるワケがないからな
137デフォルトの名無しさん
2018/07/16(月) 19:04:00.40ID:6luw5g3K
クソニートはこうやって社会と接点ももったつもりになってるワケ
分かりやすい

ニューススレなんかに湧いてくる社会参加してないクソニートとそっくりといっていい
138デフォルトの名無しさん
2018/07/16(月) 19:05:41.08ID:6luw5g3K
ココは相談スレだからな
まちがいなくクソニートは相談スレの邪魔をしてる
139デフォルトの名無しさん
2018/07/16(月) 19:12:14.13ID:r07bWXyg
自己紹介乙
140デフォルトの名無しさん
2018/07/16(月) 19:13:02.52ID:6luw5g3K
もうね図星つかれて
顔真っ赤だからな

ホントな分かりやすいわ

分かってしまうのが怖いわ
141デフォルトの名無しさん
2018/07/16(月) 19:15:40.86ID:6luw5g3K
だいたい分かる
登校拒否児のまま高齢ニートになったようなのが
このスレにはウジャウジャいる

低学歴なまま精神的に大人になってないような知恵遅れの典型的なレスパターンだからな
いわゆるヒキコモリというヤツだ
142デフォルトの名無しさん
2018/07/16(月) 19:20:00.33ID:r07bWXyg
ID真っ赤なのは唯一人
143デフォルトの名無しさん
2018/07/16(月) 19:29:45.75ID:6luw5g3K
クソニートは相談スレに参加できるレベルに達してないからな
いままで参加できてると錯覚してたワケ

参加できないからIDが赤くなるまでレスもできない
ホンモノのプロフェッショナルなオレがくればこうなる
知恵遅れがオレスゲーできない

唯一の自分が社会と接点をもててると錯覚してる唯一の場所が
オレに乗っ取られたワケ

くやしいの?
144デフォルトの名無しさん
2018/07/16(月) 19:32:29.15ID:r07bWXyg
ホンモノのプロフェッショナルなオレ
ホンモノのプロフェッショナルなオレ
ホンモノのプロフェッショナルなオレ
ホンモノのプロフェッショナルなオレ
ホンモノのプロフェッショナルなオレ 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
145デフォルトの名無しさん
2018/07/16(月) 22:04:34.63ID:KaFNK61g
最近バーチャルYouTuberは4,000人を越えています。
そこで今どのVtuberが人気なのか調べてみようと思います。

第二回バーチャルYouTuber人気投票ですが、Vtuber界隈の変化が激しい為、投票受付期間中であれば、
一度投票した内容を変更できるようにしました。

今回は一人三票です。今回からモンスト、鈴木ヒナ、ポン子、アイドル部など強力な新人さんも入っておりますので、
投票をよろしくお願いいたします。

現在830票
あなたの好きなVtuberは?
https://goo.gl/forms/wHUyA3Phxj6y2nu73

・2018/6/5時点でチャンネル登録数10,000人以上のVtuberを対象としています。
・一つのチャンネルでVtuberが複数人いる場合は、それぞれ分けています。
・一人三票です。
・このグーグルフォームに投票するにはグーグルアカウントでログインする必要があります。
・並び順は前回の得票数の高い順と新人は登録者数の多い順に並んでいます。
・今回も1,000人の方が投票するまで継続します。
・受付期間中は何度でも投票内容を変更できます。

第一回バーチャルYouTuber人気投票結果(2018年5月7日〜5月30日、全投票数1,000票)(スプレッドシート)
https://docs.google.com/spreadsheets/d/e/2PACX-1vTpmFxf3MHjezIdvmte2CD6kWk4so-gtI8a9XJVjS_O0aMZhekYnSCj-n4DCLfHGXhke7HZYbJM1TEa/pubhtml?gid=0&;single=true
146デフォルトの名無しさん
2018/07/16(月) 22:56:02.09ID:6luw5g3K
とりあえず、バカでも使えて修正できる
パーザーのクラスのサンプルでも気が向いたら作っといてやるわ

こんなもんデータを全部格納できるワケがないからな

今の解析コードのサンプルでも位置とサイズの情報はガッチリとってるから
いくらでも改良できる
オレみたいなプロフェッショナルになると、こんなことハナから予見できてるワケ
147デフォルトの名無しさん
2018/07/16(月) 23:55:04.74ID:k7Gq2lBS
>>94-97
「ぼくちんのログ解析ソフトを半角さんが作ってくれるスレ」を立ててそっちでやってくれないか
148デフォルトの名無しさん
2018/07/17(火) 04:14:16.72ID:eLk9EV06
パーザーw
149デフォルトの名無しさん
2018/07/17(火) 12:14:32.32ID:laha5pLP
頭がパーザー
150デフォルトの名無しさん
2018/07/17(火) 14:06:01.71ID:I4a/6mEU
>>146
今のサーバはメモリに多少余裕があるから全部メモリに格納しようと
思ってましたが、よく考えると数人同時に使ったり他の低スペックサーバを
使うことを想定すると確かに名称、テキスト、数値の番号と位置など
最低限の情報だけ拾ってその都度ファイルにアクセスした方が
他の人に迷惑がかからず良さそうです。

気が向いたらよろしくお願いします。
自分でも検討してみます。

>>147
相談しっぱなしは悪いと思い、色々調べた結果を出してしまいました、すみません。
151デフォルトの名無しさん
2018/07/17(火) 17:51:00.62ID:rBemJlfB
悪いと思って無いだろ
152デフォルトの名無しさん
2018/07/17(火) 18:31:14.54ID:0lwIt+yt
消えろ
153デフォルトの名無しさん
2018/07/18(水) 18:38:21.90ID:zAL/THKp
ハイ、謝罪と賠償の要求いただきました!
みんなー、謝罪と賠償の要求出たぞー!
154デフォルトの名無しさん
2018/07/18(水) 19:24:54.30ID:xHEVxC3Y
ごめんなさい
100円
155さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/07/18(水) 19:48:18.30ID:IL3iPWys
パーサーもパーザーも間違いではない。
156デフォルトの名無しさん
2018/07/18(水) 19:51:38.49ID:xHEVxC3Y
はいはいwww
157デフォルトの名無しさん
2018/07/18(水) 22:02:52.32ID:L914sbje
int a;
if( hoge ){
const a = 1;
}
else{
const a = 2;
}

とすると不安定な動きをするのですが、
このコードは許されないのでしょうか。
158デフォルトの名無しさん
2018/07/18(水) 22:17:00.15ID:WhjAyW4L
許される
159デフォルトの名無しさん
2018/07/18(水) 22:28:45.28ID:4KYHyXSz
const a = 1; ってなんぞ??と一瞬思ったがintが省略されてるのか
それブロック内ローカル変数だから、外のint a;には関係しないよ
>157に書かれてるところは許されるけど、
書かれてないところでint a;を使ってたらそりゃ不安定だろうね
160デフォルトの名無しさん
2018/07/20(金) 17:29:54.53ID:j7YVAWUD
不安定な動きはしないと思うが
ルールがわかってないだけで
161デフォルトの名無しさん
2018/07/20(金) 18:06:32.94ID:TP/FZeZJ
外側のaを初期化してないから不安定になる可能性はある。
162デフォルトの名無しさん
2018/07/20(金) 18:38:08.70ID:obfOsgMS
aを不定なまま使えば不安定になるかも知れないが
>>157のコードだけならなにも問題ない

>>157の回答としては
「許される」が正解
163デフォルトの名無しさん
2018/07/20(金) 21:07:42.21ID:0P/bZCls
許すのは誰なのかというところから(ry
164デフォルトの名無しさん
2018/07/20(金) 21:08:02.97ID:j7YVAWUD
コンパイラ様
165デフォルトの名無しさん
2018/07/20(金) 21:15:25.57ID: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を使おうとして「不安定な動きをする」
166デフォルトの名無しさん
2018/07/21(土) 03:52:30.13ID:ZZ4YytrN
コンパイラ様は、代金を支払うお客様より偉いのか。
167デフォルトの名無しさん
2018/07/21(土) 07:09:59.33ID:CT2MO4Nk
機械は偉さで動いてはいない
168デフォルトの名無しさん
2018/07/21(土) 07:12:46.06ID:d0oYLoM2
そのうち褒める褒めないで動作が変わるようなAIコンパイラが出てくる
169デフォルトの名無しさん
2018/07/21(土) 07:16:56.35ID:ZZ4YytrN
もうしわけない。金毘羅様に言及すべきだったのにそうしなかったのが情けない。
170デフォルトの名無しさん
2018/07/21(土) 11:56:28.78ID:KXd0ss1Q
警告オプション有効にして助言をもらおう
> warning: variable 'a' is uninitialized when used here [-Wuninitialized]
171デフォルトの名無しさん
2018/07/21(土) 12:20:29.40ID:RLP8Sp1U
C++勉強するたびに嫌いになってきて草
172デフォルトの名無しさん
2018/07/21(土) 12:23:02.98ID:L4ZstKjT
そんなのは道楽でC++やってるあまちゃんのたわごとだ
俺なんかは最初からC++以外に用意されてなかった
173デフォルトの名無しさん
2018/07/21(土) 12:34:14.56ID:Zy/M/93a
c++はできるだけの範囲で出来るだけのことをやればいい
意欲があればさらに進めばいい
むりして難しいことをやらなくてもいい
c関数での文字列の処理が嫌ならstring使えばいい
楽なところは楽でいい
174デフォルトの名無しさん
2018/07/21(土) 13:42:42.85ID:V/L9XjgX
template <typename TypeA, typename TypeB> void TempSet(TypeA* Obj, void (TypeB::*Method)())
{
*Obj->*Method;
}

これがエラーでコンパイルできないんですが、
TypeBのメンバ関数呼び出すのはどうやればいいんでしょうか?
TypeAはインスタンスのオブジェクトポインタです
175デフォルトの名無しさん
2018/07/21(土) 13:44:42.66ID:gIfo2zic
でも++が一番ストレスなく組めると思う。
176デフォルトの名無しさん
2018/07/21(土) 13:53:05.91ID:0t9tN8g5
>>174
TypeA はTypeBの間違いで、
Obj->Method();
でないの?
177デフォルトの名無しさん
2018/07/21(土) 14:00:56.99ID:0t9tN8g5
おっとこうか
(Obj->*Method)();
178デフォルトの名無しさん
2018/07/21(土) 16:20:10.80ID:FasZjosd
>>177
なるほどそれですね、ありがとうございます。
179デフォルトの名無しさん
2018/07/21(土) 18:50:32.76ID:yF+tsqCG
VMWare使ってLinux入れてみた
貧弱なPCでめちゃくちゃ重すぎるがコレで普通にコンパイルはできる
いままで黙ってたがMSのコンパイラでコンパイルしてたからな

やっとオレの芸術的なパーザをコピペで作る準備が整った
180デフォルトの名無しさん
2018/07/21(土) 19:53:50.78ID:IjOYQkhe
やっぱワッチョイ必要だな これ
181デフォルトの名無しさん
2018/07/21(土) 19:54:08.06ID:4OwLAQG2
コンパイルするためだけにVMWarewwwwwwwwwwwwwwwww
182デフォルトの名無しさん
2018/07/21(土) 20:17:49.81ID:Y8T9UzT7
>>179
DELLのPC安いから買うといいよ
183デフォルトの名無しさん
2018/07/21(土) 20:18:57.06ID:ZZ4YytrN
ubuntu on windows は、ウィルス対策ソフトのウィルス・バスターがubuntu上のプロセスを監視対象として認識しないらしく、きびきびと起動・実行できる。
それがいいことか悪いことかは、さておき。
184デフォルトの名無しさん
2018/07/21(土) 21:04:13.24ID:CT2MO4Nk
>>181
何かおかしいか?
185デフォルトの名無しさん
2018/07/21(土) 21:05:35.42ID:o4R9sYuw
botに反応するなよ
186デフォルトの名無しさん
2018/07/21(土) 21:08:08.82ID:CT2MO4Nk
botがそんな反応するか
そういうことにしたいのなら
見逃してやるが
187デフォルトの名無しさん
2018/07/21(土) 21:18:01.24ID:gFGCO6jl
見逃してもらえないとどうなっちゃうの?
188デフォルトの名無しさん
2018/07/21(土) 21:23:00.95ID:CT2MO4Nk
何がおかしいのか聞こうか
189デフォルトの名無しさん
2018/07/21(土) 22:50:00.50ID:yF+tsqCG
32bitのlinuxしか入らんから
それでもいちいちめんどくさいことは分かった
190デフォルトの名無しさん
2018/07/21(土) 23:13:14.47ID:NpMyvs3y
macならdockerでlinux環境作るのもありかなと思ったが、
winだとまだdockerインストールめんどくさげだね。
191デフォルトの名無しさん
2018/07/22(日) 12:08:37.73ID:LuRYHz2h
>>179

自分もvmwareでlinux入れてましたが、メモリ4GB(有効なのは約3GB)の初代i3ノートPCで、vmware割当メモリ700MBくらいで使ってましたが
かなり重かったけど立ち上がったらそこそこスムーズに使えてました。
メモリ8GBくらいあればvmwareに1GB〜2GBくらい割り当てれば、そこそこストレスなく使えそうな気がします。

ちなみにすでに知ってるかもしれませんが、win10だとubuntu?っぽいのを直接インストールできます。
windows内にゴミがたくさんできそうだから個人的には躊躇しますが。

http://www.atmarkit.co.jp/ait/articles/1608/08/news039.html
192デフォルトの名無しさん
2018/07/22(日) 14:07:01.86ID:ST9MozRw
それは入れないほうがいいよ
互換性問題があるしかなり機能を絞られてる
使ってみてわかる誰得機能
容量も十数G必要

VirtualBoxを普通にいれたほうが使い勝手がいい
193デフォルトの名無しさん
2018/07/22(日) 20:18:52.55ID:mbi94QjP
> 容量も十数G必要
いや1GBも要らんよ、どこ確認したんだw

WSL丸ごと%LocalAppData%\Packages\CanonicalGroupLimited.*.ならんちゃらに突っ込まれる形式だから
ホストOSにゴミが残るってのも杞憂

最近はDocker Engineがそれなりに動く程度には互換性も高まってきてるみたいね
エクスプローラのアドレスバーからbashで窓側をカレントディレクトリにして起動できるのが良い
194デフォルトの名無しさん
2018/07/22(日) 20:20:13.96ID:Nia5Zbws
>>192
> 互換性問題があるしかなり機能を絞られてる

WSL(Windows Subsystem for Linux)は、C++やLinuxシステムコールを使ったGNUプログラミング環境としては必要十分だと思うけど、具体的にどんな問題あるの?
195デフォルトの名無しさん
2018/07/22(日) 20:26:16.94ID:tfHLB3F/
>>194
サービス書くときかな。
他はWSLが楽だと思う。
196デフォルトの名無しさん
2018/07/22(日) 20:28:26.39ID:tfHLB3F/
Linuxを使う意図はサーバーか組み込みなので、WSLで足りない場合もあると思うんだけど、ひな形があれば済む話かもしれんね。
197デフォルトの名無しさん
2018/07/22(日) 20:31:49.81ID:ST9MozRw
サーバ系がサポートされてない
使うならVM使ったほうがいいよ
ファイルシステムもwindowsのものの上に作られてるのであれこれ問題が出る

>>193
1Gというのが笑えるw
コンパイルしないのかw
198デフォルトの名無しさん
2018/07/22(日) 20:34:24.26ID:tfHLB3F/
>>197
VMは大げさすぎるかな。
使えるときはWSLを積極的に使っていきましょうよ。
とてもいいものですから。
199デフォルトの名無しさん
2018/07/22(日) 20:41:37.63ID:tfHLB3F/
VMは一つのパソコンで複数のOSを動かすのでOSの数だけメモリーを食うんですよね。
その点、WSLはWindowsがLinuxのようにふるまうだけなのでWindows分のメモリーしか食いません。
そんなわけなので、お財布にやさしいんです。
それでいてサービスの開発以外では全く遜色在りませんし、そもそもサービス開発だって、大詰めを迎えるまではdaemonとして起動することはないでしょう。
200デフォルトの名無しさん
2018/07/22(日) 20:42:00.95ID:ST9MozRw
bash使うだけならわかるけどコンパイルも含めて何か使おうとするなら
既知の問題や互換性に問題もあるものを選ぶのはクレバーだと思わない
201デフォルトの名無しさん
2018/07/22(日) 20:44:34.92ID:ST9MozRw
WSL上のバッドノウハウをひたすら集めたいとか
縛りのある環境のほうが燃えるというなら止めはしない

ただわからない人に勧めるものじゃないなって思う
不具合があった場合それがどこ由来なのか特定できない人間には特にすすめちゃダメ
202デフォルトの名無しさん
2018/07/22(日) 20:45:31.78ID:tfHLB3F/
>>200
ディストリビューターが開発する本物のディストリビューションですからまったく問題ありませんね。
Canonicalが開発した本物のUbuntuがWindowsで動くのです。
もちろんDebianであっても同じことです。
203デフォルトの名無しさん
2018/07/22(日) 20:50:22.91ID:ST9MozRw
>>199
>>202
ディストリビューターが提供しようが
WSLはlinuxでもないwindowsでもない不思議な物
両方の制限の積 windows ∩ linuxでありわざわざ苦労することはないよ

windows上の疑似linuxであってかなりニッチな物
どこかおかしくても不思議じゃない
204デフォルトの名無しさん
2018/07/22(日) 20:56:04.07ID:tfHLB3F/
WSL、CMake、VCPKGがお勧めキーワードです。
C++ユーザーにはUbuntuをお勧めします。
gcc-7を導入してC++-17をご利用ください。
205デフォルトの名無しさん
2018/07/22(日) 20:56:30.30ID:sWlXYLBw
どこかおかしくても不思議じゃない(どこがおかしいのかは知らない)
206デフォルトの名無しさん
2018/07/22(日) 20:57:52.61ID:Nia5Zbws
今のWSLはLinuxのdaemonもサポートしてるから問題ないと思うんだけど、具体的にどんな問題起きたの?
207デフォルトの名無しさん
2018/07/22(日) 20:58:04.83ID:tfHLB3F/
Visual Studio 2017にはLinux DebugとLinux Releaseというターゲットがあり、標準でLinuxをサポートしていますよ。
208デフォルトの名無しさん
2018/07/22(日) 20:58:48.25ID:ST9MozRw
c++使うような厳格さを求める人間がWSL使ってるとは思わなかった
WSLで動いたとして他の環境で動くとは保障されないのに
どこがおかしいのか推定もできない仕組みの上で何故ごみを作るんだ
209デフォルトの名無しさん
2018/07/22(日) 21:01:33.45ID:tfHLB3F/
>>206
init機構がWSL用だから。
それを言い出すと、RedhatとUbuntuだって違うじゃないかということになるけど、Redhatに配備するものはRedhatで開発してたのが今までのスタイルなので、VMのほうが良いという人はその点を指摘してるんじゃないのかな。
それ以外にWSLを使わない理由がないので。
210デフォルトの名無しさん
2018/07/22(日) 21:04:40.18ID:tfHLB3F/
まあ逆に言うと、WSLで動かないのであれば、Linuxディストリビューション間でも可搬性が無いよね。
211デフォルトの名無しさん
2018/07/22(日) 21:05:04.20ID:Nia5Zbws
>>208
実機Linuxならどこがおかしいか推定できるという根拠はないでしょ。
むしろ、WSLのような抽象化された環境でさえ動かない稚拙なものを実機に持っていく気なの?と言い返すことさえできるのだけど。
212デフォルトの名無しさん
2018/07/22(日) 21:07:21.30ID:ST9MozRw
違う違う
普通のlinuxで動くコード書いててもWSL上では動かせない場合があるのが問題だろ
213デフォルトの名無しさん
2018/07/22(日) 21:09:42.72ID:tfHLB3F/
>>212
そういうものがあるのかどうか知らないけど、あるならなおさらWSLで開発したほうが可搬性を担保できてよいのでは。
214デフォルトの名無しさん
2018/07/22(日) 21:10:55.12ID:ST9MozRw
>>211
根拠とかそんなんじゃない
考慮すべきことが多すぎる

自分のコードがおかしいのか
linuxのそもそもの仕組みがおかしいのか
MSのWSLがおかしいのか
ディストリビューターの提供してるイメージがおかしいのか

それぞれが組み合わさっておかしくなってるのか考慮する条件が増えすぎる
215デフォルトの名無しさん
2018/07/22(日) 21:11:03.95ID:Nia5Zbws
>>212
問題なんてほぼないでしょ。
VM上で動いて喜べるレベルならWSLでも同じだから。

あなた、WSLで動作確認したことあるの?もしや憶測で書いてない?
216デフォルトの名無しさん
2018/07/22(日) 21:11:34.45ID:tfHLB3F/
clはかなり寛容なコンパイラなので、gccでコンパイルできるかチェックしとくとより良いコードが書けますよ。
そんな用途でもWSLは素晴らしいと思います。
217デフォルトの名無しさん
2018/07/22(日) 21:13:06.02ID:tfHLB3F/
>>214
それたぶん、自分のコードが悪いと思いますよ。
Linuxは十分安定してるので、Linuxの問題を真っ先に疑うのは、自信ありすぎだろって感じます。
218デフォルトの名無しさん
2018/07/22(日) 21:14:34.32ID:ST9MozRw
>>215
最初のころはめちゃくちゃだったのでもう入れてない
ハードリンクの仕組みもおかしいし
タイムスタンプもおかしいし
TCPなど制限も山盛りあった
すでにあるコードも何故か動かないことが多かった
219デフォルトの名無しさん
2018/07/22(日) 21:16:43.51ID:tfHLB3F/
開発環境はWSLがいいんじゃないですかね。
220デフォルトの名無しさん
2018/07/22(日) 21:19:27.33ID:Nia5Zbws
>>214
抽象化されていると問題特定が容易と考えるのが一般的だと思っていたのだけど、
抽象化された環境は問題特定が難しくなるという考え方は画期的ですね。
221デフォルトの名無しさん
2018/07/22(日) 21:21:02.02ID:ST9MozRw
linuxが安定ってジョークか
linuxカーネルは常にバグがボコボコ出てるよ
222デフォルトの名無しさん
2018/07/22(日) 21:22:41.34ID:tfHLB3F/
クロスプラットフォームを標榜するなら、開発環境としてWindowsを選択するとよいです。
Visual StudioはWindowsとMacで使えます。
WSLによってVisual StudioからLinuxバイナリを構築できます。
MSBuildとCMakeは悩みどころですが、MSBuildはサポートが手厚く、CMakeはVisual Studioが無くても構築できます。
そこらへんで選択するとよいのではないでしょうか。
223デフォルトの名無しさん
2018/07/22(日) 21:28:34.40ID:tfHLB3F/
まあ僕はVisual Studio、WSL、VCPKG、CMakeプロジェクトを使っているので、わかることはお答えしますよ。
224デフォルトの名無しさん
2018/07/22(日) 21:56:04.01ID:Nia5Zbws
悪いことは言わないので、LinuxプログラムはWSLで動くことを優先して書くことをお勧めする。
他人のために時間を使いたくないのは誰でも同じ。おのずと楽に評価できる環境に流れるのは止められない。
225デフォルトの名無しさん
2018/07/22(日) 22:35:05.45ID:Nia5Zbws
イスラームの救貧制度がかえって免罪符の役割を果たしてないか。
イスラームの救貧制度があることで、かえって商業上の強欲が横行していないか。
226デフォルトの名無しさん
2018/07/22(日) 22:37:37.06ID:Nia5Zbws
誤爆したけど、謝罪はしない。

イスラム教は野蛮な宗教である ★4
http://2chb.net/r/whis/1525163440/
227デフォルトの名無しさん
2018/07/22(日) 23:57:15.36ID:g7OD+nvH
だいたいでけてきたわ
コード修正をすることによって効果を簡単に計測できるように修正してる
こっちのが結構大変だったわ
228デフォルトの名無しさん
2018/07/23(月) 01:50:38.00ID:SStA1pnM
というわけでうpした
長い戦いだった
http://fast-uploader.com/file/7087832585811/
baka_source.zip

build.shを実行すると、3つの実行モジュールができる

3つとも少し修正した(解析処理はファイルがものすごい増えたから大きく修正したように見えるハズ)

 ・テストデータジェネレータ(データの出力個数の出方を少し修正した)
 ・ストレージ能力計測プログラム(I/OのアドバイスをOSに与えるように修正)
 ・解析処理(1. 解析の処理方法自体は一切かわってないがコードの構成をバカでも分かるように変更 2. I/OのアドバイスをOSに与えるように修正)
229デフォルトの名無しさん
2018/07/23(月) 01:56:28.48ID: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

詳細な解析処理をする前に
簡易な解析処理をしたい場合(ブロックの位置情報やサイズ情報なんかだけを先に取りたい場合)、
そのクラスにそのレベルの処理を突っ込んどけばいい
解析処理の詳細さの粒度はそこでテキトーにきめればいいと思う
230デフォルトの名無しさん
2018/07/23(月) 02:11:50.60ID:SStA1pnM
一応、parserとsub_parserの違いだけ捕捉しておく
結論からいえばデータの形式がくさってるからそういうのを入れた

parserクラスは最初に一行読んで、必ず次の行頭(LFの次)でポインタが停止するようになってる
sub_parserクラスは行は読まずに、与えられたポインタから行の途中でポインタが停止するようになってる

※ 例外はあるがsub_parserクラスは大体 LF の上(行末)で停止する
※ 停止しない例外は、sub_parserクラスが連続してる箇所が間違いなく該当することになる
231デフォルトの名無しさん
2018/07/23(月) 20:33:09.90ID:SStA1pnM
コードの記述に一箇所誤りがあった
動作に影響は一切ないが記述ルールに問題があるから
修正しといたほうがいい

削除
 baka_sub_parser_section.h
  (L34) ++c_buf_p_; // skip LF

追加
 baka_parser_sections.h
  (L48)++c_buf_p_; // skip LF

ひたすら元のコードをコピペして貼り付けてたから
気付かなかったわ

このスレで相談してたバカはちゃんと動作確認してんのか
232デフォルトの名無しさん
2018/07/23(月) 20:39:12.44ID: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ぐらいの考慮で十分なハズ
233デフォルトの名無しさん
2018/07/23(月) 20:41:46.46ID:i+VNk600
しょぼ
234デフォルトの名無しさん
2018/07/23(月) 20:47:36.06ID:i+VNk600
実行速度は?
235デフォルトの名無しさん
2018/07/23(月) 20:53:16.24ID:SStA1pnM
ほとんどストレージの読み込み時間
パーズはばっちり
これ以上ないデキだ

解析する量を減らせばもっと速くなる

動かせば分かる

印字されるスループットを
どうすれば最大化できるか考えるのはこのスレのバカだ
道具はほぼすべて揃ってる
236デフォルトの名無しさん
2018/07/23(月) 21:36:54.74ID:rtZ7opge
>>231
ブーメラン投げてんじゃねえよバカ
237デフォルトの名無しさん
2018/07/23(月) 21:41:33.21ID:2Wpd7Nw8
パーズ
238デフォルトの名無しさん
2018/07/23(月) 21:56:50.52ID:owbFvtjn
>>228
I/Oのアドバイスとか何言ってるのか分からない。日本語でOk
239デフォルトの名無しさん
2018/07/23(月) 22:01:24.41ID:JOGfItcj
>>228

ありがとうございます。
なぜか下記修正をしないとコンパイルエラーで怒られました。
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内に関数名だけでなく
関数の中身も直接そのまま記述できるのを初めて知ったりと
色々新しい所があるのでじっくり見て勉強したいと思います。

つづけて実行結果を書きます。↓
240デフォルトの名無しさん
2018/07/23(月) 22:02:12.57ID:i+VNk600
他でやれって何度も言われてなかった?
241デフォルトの名無しさん
2018/07/23(月) 22:03:34.73ID:JOGfItcj
取り急ぎ新しいgenツールで13GBを作り、読み込んでみました。
>>231 の修正ままだしてませんが大丈夫ですかね?

## 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)

ついでに前回のコードでも試しました。↓つづく
242デフォルトの名無しさん
2018/07/23(月) 22:04:55.29ID:JOGfItcj
## ついでに https://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秒と >>241 の約20秒の約4秒の差分はざっくり言うと
文字や数値をt_all_db構造体に格納するのに要した時間ということでしょうか?
243デフォルトの名無しさん
2018/07/23(月) 22:09:26.85ID:i+VNk600
読み込み2秒
全部で16秒

ほとんどが読み込み時間?
嘘つき
244デフォルトの名無しさん
2018/07/23(月) 22:18:11.65ID:SW13TXDW
>>243

これは >>242 のことですか?
それぞれは下記のようですが、sys=読み込みのみの時間 となるんですかね。

real プログラムの呼び出しから終了までにかかった実時間(秒)
user プログラム自体の処理時間(秒)(ユーザCPU時間)
sys プログラムを処理するために、OSが処理をした時間(秒)(システム時間)
245デフォルトの名無しさん
2018/07/23(月) 22:23:23.05ID:hE7BXV+L
続きは半角とLINEでも交換してやれよ
246デフォルトの名無しさん
2018/07/23(月) 23:09:13.26ID:SStA1pnM
オレのとこでは
baka_parもbaka_specも
どっちも30〜32MiB/secだから同じだ
つまりほとんど読み込み時間
どっちも8分ぐらいかかる

で、そっちのは

 baka_spec
  turnaround_time ::= 2.27 sec ← 2秒で読み込めてる!

 baka_par
  turnaround time : 20(secs)

そっちでは明らかに解析処理が足をひっぱってる
つまり初回の解析処理をさぼればもっと速くなるハズ
247デフォルトの名無しさん
2018/07/23(月) 23:24:47.71ID:SStA1pnM
http://man7.org/linux/man-pages/man2/posix_fadvise.2.html

posix_fadviseを追加したからな
シーケンシャルリードであると

ちゃんと日本語になってるわ
248デフォルトの名無しさん
2018/07/24(火) 00:12:21.91ID:dbjTOx+1
>>246
par, specともにほぼ同じですか。

すみません。話についていけてないです。。
初回の解析処理をサボるとはどういうことですか?

自分が書いたら40〜50secだったので20secですでにかなり速いと思ってるんですが、まだ高速化の余地があるんですね。
249デフォルトの名無しさん
2018/07/24(火) 01:27:55.10ID:2rkV2Cvq
普通に考えたらこんなもん全部メモリに格納しようというほうが
普通に考えて狂ってると個人的には思うからな、それ専用の計算機ならともかく

ちなみに全部メモリに格納しようとすれば、その格納のオーバーヘッドで
さらに時間がかかることになることは予見できてる
すべてメモリにのせるDBの発想に近いが、そういうDBMSでも起動時のロードにはものすごい時間がかかる

かりにな全部データをメモリに格納しないなら
全部解析する必要はない

過去にセクションは100個ないぐらいといってたと記憶してる
仮定の話になるが、例えば1セクション読みこむのにどれぐらい時間がかかるかということになる

いまぐらいの速度がでるなら
セクションの位置とサイズだけを先に取得して
後で必要な部分のデータを再度読みこんでオンデマンドで解析しても
十分な速度がでるような気がしないでもない
(最初にどこまで解析して取得するかはとりあえず今はおいといて)
250デフォルトの名無しさん
2018/07/24(火) 01:32:16.00ID:2rkV2Cvq
で、やりたいことは、これまでのレスを読むかぎりでは
でっかいファイルの内容を画面に表示するだけだと思う

それだけのことなら実機の高い処理能力を考慮すれば
トップダウン方式で必要な箇所をオンデマンドでロードして取得する方法で十分な気がする
そのほうが計算機にも優しいし、15Gのデータを全部眺めるバカなんかまずいないだろうしな

こんな感じのことをやるのかなあとは思ってる

Ex.

 データ取得の要求が3段階でされると仮定してる

  @セクションの列
  AXY with QQ、RRの列(入力:セクションのSEQ)
  B数値の列(入力:XYのSEQ)

 A) 画面の初期表示では@で十分
 B) セクションを展開して表示するときはAの取得で十分
 C) X、Yを展開して表示するときはBの取得で十分
251デフォルトの名無しさん
2018/07/24(火) 06:39:30.18ID:0yPjFIBM
>>246
解析処理が足を引っ張ってるのは
お前の解析処理が遅いから

>>248
まともに作れば解析自体は8秒で終わる
252デフォルトの名無しさん
2018/07/25(水) 00:09:01.02ID:rOCCX8po
>>249,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の部分なので、そこを分離すれば負荷はかなり減るのではと思います。

>>251

8秒ですか。。
そのようなハイレベルな解析は日曜大工レベルの自分には当分作れそうにないです…
253デフォルトの名無しさん
2018/07/25(水) 01:22:39.02ID:FQQJXzBx
>>252
何をする気か知らんし、読み返す気もないが、
> 日曜大工レベル
なら他言語使えよ。今のC++は君向けではない。
一通りも出来ないのだから、普通はPerl/Ruby/Pythonのどれかだと思うが。

あとここは「ぼくのさいきょうのそふとうぇあ」のスレではないから、
実際埋め立て状態だし、全く終わる気配もないし、
別スレ立ててやるのがマナーだと思うぞ。
254デフォルトの名無しさん
2018/07/25(水) 05:58:28.01ID:5wxx8yDL
A.exeがB.exeを立ち上げる

A.exeがB.exeの起動時に共有メモリ先を渡すのに
その空間を指定するのはどうすれば良いんでしょうか
255デフォルトの名無しさん
2018/07/25(水) 06:13:44.62ID:aR1SGvNs
共有メモリの名前を渡す
256デフォルトの名無しさん
2018/07/25(水) 07:25:34.67ID:5wxx8yDL
winAPIのmemorymapedfileを調べてみたけど
winAPI便利だが触ったことないと敬遠しちゃう
257デフォルトの名無しさん
2018/07/25(水) 13:33:42.64ID:CBV5hJrX
>>253
日曜大工とか書いてるけど、サーバー使ってやるとか言ってたから実務だと思うが
あまり初心者を弾くようなことを言うな

>>252
速度は実用レベルになりゃそれでとりあえずいいんじゃないの
ドヤりたいやつや喧嘩したいやつに惑わされるな
回答は参考にとどめて、自分でやってみてどうしてもわからないところだけ聞きに来い
スレを私物化するな
258デフォルトの名無しさん
2018/07/25(水) 17:57:43.34ID:EWaeEahr
>>254
プロセス間共有メモリはプラットホーム依存でありC++の範疇ではないので、続きは以下スレでどうぞ。

>>256
あなたも。


Win32API質問箱 Build124
http://2chb.net/r/tech/1510395780/
259デフォルトの名無しさん
2018/07/25(水) 19:13:03.63ID:v8CmSWWw
>>257
この程度のことを延々と続けられては、迷惑行為でしかないだろ。
実務なら上司に聞け、でしかないし。

最近アホが大量流入して、このスレは一気にレベルが落ちたよな。
お前らがそれについてどう思っているのかは知らんが。

お前は「プログラミング初心者」をここで飼いたいのか?
「C++初心者」はいいとして、C++は「プログラミング初心者」向けの言語ではない。
そもそも組み方も根本的に間違っている気がするが、
俺はこんな奴に教えてやる気はないし、
他の誰も指摘しないところを見ると、まあそういうことなんだろ。
(俺はソースは見てないが)
260デフォルトの名無しさん
2018/07/25(水) 19:15:56.59ID:h5CHP+XR
確か上級者スレってあったはず
上級者はそちらに移動し、ここを見ないで
261デフォルトの名無しさん
2018/07/25(水) 19:32:17.67ID:Iaq9Mrpc
空気読めないド初心者と、ド初心者相手にマウント取ってイキってる半角雑魚オヤジが二人で傷を舐め合ってるだけ
その二匹をNGすれば平常運転よ
262デフォルトの名無しさん
2018/07/25(水) 19:38:59.40ID:v8CmSWWw
>>260
乗っ取るのではなく、お前が移動しろよ馬鹿タレ

【初心者歓迎】C/C++室 Ver.103【環境依存OK】
http://2chb.net/r/tech/1530384293/
263デフォルトの名無しさん
2018/07/25(水) 20:01:29.95ID:CBV5hJrX
>>259
いやそもそもは速度が必要なのでC++選んだ(C++については素人なので、何故自分のコードが遅いかわからない)、という話
最初の質問は何もおかしくなかったよ
前スレはもう読めないかもしれんが。

もういい加減自分で進められるだろうからいちいち報告しないでほしいが
264デフォルトの名無しさん
2018/07/25(水) 20:20:05.41ID:v8CmSWWw
STLつかうと一気に実行ファイルサイズが10倍に?!

環境によるだろ。
俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力
ランタイムを使用するようにして使っているが、例えばstd::vectorを
使っても使わない時と比べ10Kほどしか増えない

すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。

C1010: プリコンパイル済みヘッダーの検索中に予期しない EOF を検出しました。
とかいうエラーが出るんだけどこれってどうすればいいの?

#include <stdafx.h>
後死ね。

言葉が悪いな。それで教えているつもりか。
まぁヒントぐらいにはなったな。
うむごくろう。

いつまでこの糞テンプレ張り続けるんだおい

---- テンプレ ここまで ----

>>263
なんだかんだでこのテンプレが馬鹿よけとして素晴らしく機能してたって事だよ。
それを嫌う奴が無理に剥がそうとした結果、このザマだ。
このテンプレはこのスレを極めて的確に表現しているし、C++のノリはこれだよ。
しかし、スレ検索するとC++スレって40もあるのな。正直びびったわ。
適切なスレを探すことも出来ない馬鹿にはC++なんて無理だってことでしかないが。
265デフォルトの名無しさん
2018/07/25(水) 20:38:35.94ID:v8CmSWWw
>>263
これか?
(専ブラでは読めないが、今は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ライブラリはありますでしょうか?
> http://2chb.net/r/tech/1528382412/

ならC++選んでいる時点で間違いだろ。
理由は教えてやらないが、当然そうだからこそ、適切なライブラリがない。
というか、本当に初心者でないのなら、
適切なライブラリがない=みんなやってない=地雷臭を感じとれっての。
C++で書けば何でも速くなると思っている馬鹿、最近増えたよな。何故かは知らんが。
266デフォルトの名無しさん
2018/07/25(水) 20:52:15.60ID:MsjPsnRN
くだらない選民思想はやめた方がいいよ、C++をベターCとしてしか使えない人でも
素晴らしいソフトを書き上げてる人は腐るほど居る

大体選民思想に走るやつってC++を実用してないやつなんだよなぁ・・・
267デフォルトの名無しさん
2018/07/25(水) 20:54:27.06ID:MsjPsnRN
>>265
読めるなら読んでから言えよ

>適切なライブラリがない。
>みんなやってない=地雷臭を感じとれ
俺ゲーム屋なんだけど、居た会社はどこもみんな自社でライブラリというかフレームワーク作ってる
全部地雷なのか?
お前アマチュアだろ?
268デフォルトの名無しさん
2018/07/25(水) 20:55:36.48ID:VnR4R5Pj
>>253,257

ご意見ありがとうございます。
自分にはもったいないくらいの洗練されたコードまで出して頂いてとても感謝しています。

アドバイスの通り、頂いたコードを元に自分で調べて見ます。
また色々やってわからないことろがありましたらご相談させてください。

あと、このスレはこれからも拝見させていただきたいと思います。
269デフォルトの名無しさん
2018/07/25(水) 21:34:44.04ID:EWaeEahr
共有ポインタがC++に正式採用されたことで、JavaなどGC機能を持った他言語の優位性が薄れたわな。
コンパイル速度も上がったし、開発機のメモリも増えたしで、昔よりC++を使うストレスが軽くなった。
なので皆、C++に回帰してくる。
270デフォルトの名無しさん
2018/07/25(水) 21:47:04.47ID:WkyhwwwQ
>>265
うわっ
なんだこの初心者丸出し野郎

>>266
> C++をベターCとしてしか使えない人でも
使えない
じゃなくて
いろいろと判断してそういうコードに意図的にするんだよ

そう判断する理由の例としては
互換性
パフォーマンス
コードサイズ
開発工数 / 評価工数
等々
271デフォルトの名無しさん
2018/07/25(水) 21:52:55.17ID:99/tYlRK
>>267
話の内容から読む価値が全くないと分かるから読まないんだよ。
つか、初期はみんなまともな指摘してるじゃねえかよ。
ガン無視して今の有様のようだが。

> お前アマチュアだろ?
お前も無駄マウントするのではなくて、実力は投稿で示せよ。
そもそもC++用ゲームエンジンはありまくりだろ。
C++はその用途に向いているからみんな使ってる。だからそういう現実がある。
俺はそういうことを言ってるんだよ。
(日本の会社は何故かプロプライエタリに拘っているのも事実だが)
272デフォルトの名無しさん
2018/07/25(水) 22:11:44.07ID:MsjPsnRN
>>271
>お前も無駄マウントするのではなくて、実力は投稿で示せよ。
俺は半角のコードでいんじゃね?と思ったんで何も言わんかったw
>C++はその用途に向いているからみんな使ってる
あーそういうことか
でも構文解析をC++でやるのは決して間違いではないと思うけどな
273デフォルトの名無しさん
2018/07/25(水) 22:18:29.68ID:WkyhwwwQ
単純な構文解析を大量に行う
なんて処理はCやC++がぴったりと思う
274デフォルトの名無しさん
2018/07/25(水) 22:25:44.36ID:exbGUQmA
まあ新しい機能がバンバン入る言語やライブラリってのは選民思想が湧きやすいもんよ。
昔からこの業界のそういうところは変わらん。
そしてそういうものがレガシーコードを量産するという現実も変わらん。
275デフォルトの名無しさん
2018/07/25(水) 23:04:43.31ID:99/tYlRK
>>272
> でも構文解析をC++でやるのは決して間違いではないと思うけどな
大昔:yacc/lex
昔:bison/flex
最近さらに何か出てたと思ったが、使う気がないので忘れた。

そもそも元が15GBあって、それを全部目で見るわけないだろ。
単純には grep -i error とか、複雑ならいちいちperl等で切り出して眺めるもの。
やってることが最初から見当違いなんだよ。
仮に15GBのテキストを開けるテキストエディタを作ったとして、
スクロールバー長が1500pxあったとしても10MB単位でしかなく、
ドラッグアンドドロップでのスクロール操作は使い物にならない。
当然、マウスホイールで数行単位、クリックで1画面単位でスクロールしても埒が明かない。
結果的に行数じか打ちのジャンプしかないんだから、sedでいい。

俺が教えてやらねえ、って言ったのはこの件ではないけど、
「誰もそういうことをやらないからそういうもの(ライブラリ等)がない」ってのはあるから、
初心者なりにちゃんと考えろって事だよ。
上記は初心者でも理解できるだろ。気が付かないのは考えてないだけ。
そんな奴は勝手に死んでよし。
276デフォルトの名無しさん
2018/07/25(水) 23:18:30.44ID:MsjPsnRN
>単純には grep -i error とか、複雑ならいちいちperl等で切り出して
確かそれはやりたくないって言ってたと思う
まぁ、俺もテキストのまま扱うのはどうかとは思ったけども

別に内容書き換えるわけじゃないんだしトータルでもメモリ上に残す情報は
大した量にはならないだろうから全部読めばいいじゃん、テキストは内容を理解したそばから捨てていいんだから
(用途が俺もわかってないからどっちがいいか不明だけど、初めて使うウインドウを開いたときに
ファイルアクセスと構文解析のラグを許容できるか、それとも立ち上げ時のラグを許容できるかどうか)

ってまぁ、さんざん既出なんでこのネタはもうやめようw
277デフォルトの名無しさん
2018/07/25(水) 23:21:30.63ID:n4Pkvb3R
オレのコードのエレガントさが分かるようならまだ芽はある
オレのコードのエレガントさが分かるなら、もう一人でコードが書ける
これからも頑張り精進したまえ

低学歴知恵遅れニートのいうことなんかほっとけばいい

>>275 ← こういう低学歴知恵遅れを見れば分かるとおり
相談してる相手がまずなにがやりたいのか全く理解できてない
まず知能に著しい欠陥があるからまずなにごとであれ
要件というもんが理解できないのは間違いない

オマエも人に仕事をたのむだけの立場になったらな
>>275 ← こういうバカには仕事を頼んではダメだ
ということもこのスレで学べたハズだ
コレもこのスレで得た貴重な体験だ

コミュニケーション能力がゼロのニートみたいなヤツだからな

こういうヤツは
間違いなくこっちがお願いしたもんとまったく違うもんあげてくる
つまりこんなヤツには最初から仕事頼んだり関わらないのが吉
こっちの余計な手間と時間だけがかかるからな

このスレは、色々学ぶことができる
これからもちゃんとこのスレ読んで精進しなさい
278デフォルトの名無しさん
2018/07/25(水) 23:28:31.94ID:EWaeEahr
sqliteはメモリ上にデータベースを構築できる。
どうせやるならsqliteに勝てるような車輪の再発明を期待したい。
279デフォルトの名無しさん
2018/07/25(水) 23:31:38.85ID:EWaeEahr
ramdiskで良くね?というのもある。
280デフォルトの名無しさん
2018/07/26(木) 00:14:32.88ID:yqOLTJbQ
>>276
ってかまじな話、正解だと思えるレスも散見されてるぞ。
無視してるんだからどうしようもないが。何がやりたいんだこの馬鹿は?
なお、俺的に正解と思えるのは、以下。(見落としあるかも)
----
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
初めて開くファイルは使いやすいように変換して(キャッシュとして)保存しておいて
次回以降それを使うか
全ファイルバッチ処理で事前に変換しておくか

かな

ファイルを開く度に分オーダーかかるのは使いづらい
どちらが良いかは使い方次第で
281デフォルトの名無しさん
2018/07/26(木) 00:15:01.25ID:yqOLTJbQ
まあ、俺ならperlで15000のファイルにあらかじめパースしてぶった切って、lessで見るね。
テンポラリファイルの有効/無効はタイムスタンプをチェックすればいいだけだし。

初心者は(選択肢を思いつけないから)無駄に難しい選択をしてはまることはよくあるけど、
正解をガン無視しているんだから死ねでしかないね。
これではお前ら的にもどうしようもないわな。

嘘を嘘と(ry は当然だが、
正解を正解と(ry だな今回は。
282デフォルトの名無しさん
2018/07/26(木) 00:27:42.26ID:/19Lz3R7
やっぱりなコレが低学歴底辺の限界
わかるわ

所詮、低学歴底辺のドカタ
低学歴底辺のドカタは自分でログ見るらしいからな

すぐに分かるのが恐ろしい
このスレにはそんなのしかいないわ
283デフォルトの名無しさん
2018/07/26(木) 00:30:53.03ID:/19Lz3R7
クソニートの趣味のぱちょんこん講座の邪魔されて
クソニートどもがイライラしてるのはわかるわ

クソニートのツールなんかクソニートしか使わないからな
クソニートらしい発想といっていい

まず自分がどうするありきだからな
自分以外の人間なんか関係ない

クソニート臭がプンプンする

やっぱりなニオイは隠せないわ
284デフォルトの名無しさん
2018/07/26(木) 05:31:33.95ID:rsKHES0B
自己紹介乙
285デフォルトの名無しさん
2018/07/26(木) 07:10:18.33ID:QCphLLid
前スレからID追うと、このスレ立てたの15Gテキストの質問者で
ワッチョイとテンプレを失敗してる

いっそワッチョイ付きで立て直して、ここは放棄するのもありじゃないかな…
286デフォルトの名無しさん
2018/07/26(木) 08:02:19.67ID:wiCSHgxo
失敗してるワケねーんだよなぁ
ワザとだろ
俺TUEEするためだけに立てられたクソスレだよw
287デフォルトの名無しさん
2018/07/26(木) 08:03:29.18ID:wiCSHgxo
やってることがTUEEとDANZAI、アホなSS未満のクズだろ
だからワッチョイは無いw
288デフォルトの名無しさん
2018/07/26(木) 15:23:01.83ID:MiqKt3xH
世の中のパーサーは入力としてストリームを想定する場合が多い。
一方、OSはストリームを想定しなくなってきている。
IOCP、epoll、kqueue等を想定するプログラムにとって、必要なものは、一文字入力すると状態が変わるようなプッシュ型パーサーではないだろうか。
289デフォルトの名無しさん
2018/07/26(木) 22:05:05.87ID:SqpdcEmq
文字列変換を質問したい
290デフォルトの名無しさん
2018/07/26(木) 22:11:39.16ID:SqpdcEmq
途中で送ってしまった...
キャラポインタをビーストリングに変換したいです
マ ルチバイトトゥーワイドキャラでよい?
今やってるのだけど一切できなくて辛い

環境はウィンドウズです
エヌジーワードのためカタカナ混ぜてます
291デフォルトの名無しさん
2018/07/26(木) 22:43:19.63ID:vMAtbXfy
>>290
C++的な回答をするなら、BSTRをラップしたCComBSTRクラスを使ったほうが楽だしドキュメントも多くていいと思うよ。
292デフォルトの名無しさん
2018/07/26(木) 22:54:29.47ID:ekCvPRG2
>>291
そんなのがあるんですね

コム使うのは良いのかわからんな...
293デフォルトの名無しさん
2018/07/26(木) 23:22:38.59ID:vMAtbXfy
>>292
すでに知らないうちにCOMを使っているはずなので、今更COMを使ってよいか気にしなくていいよ。
294デフォルトの名無しさん
2018/07/26(木) 23:23:33.36ID:JU6NqyqF
>>285
俺は賛成。STLのテンプレもありでよろしく。
(まあ俺が賛成しても大局に影響はないが…)
295 ◆QZaw55cn4c
2018/07/26(木) 23:29:25.64ID:vjtcTWe7
>>294
別にテンプレがあろうとなかろうと、スレに投稿される内容に変わりはしない、と思うのですが?
もしかして「おまじない」とかが好きなんですか?

半角氏は連続して投稿する傾向にあり、IDだけで割合に弾けるのでワッチョイは要らないと思っています
296デフォルトの名無しさん
2018/07/26(木) 23:42:18.00ID:5Jkoyh2A
あんなテンプレいらんだろ…
まさか自分が作ったとか?
297デフォルトの名無しさん
2018/07/26(木) 23:55:55.79ID:JU6NqyqF
>>295
> テンプレがあろうとなかろうと、スレに投稿される内容に変わりはしない
ならあってもいいって事になるが、それに対する反論は?

俺はワッチョイもあのテンプレも機能してたと見ている。
実際、もう初心者要らないんじゃ、って話になってたのは事実だろ。
お前がそれに反対したのも事実だが。
298デフォルトの名無しさん
2018/07/26(木) 23:59:13.70ID:OhRJcz2i
>>280

ご意見ありがとうございます。

SECTIONごとの切り替え目安は下記の時間でSECTIONを切り替えながら別のGUIソフトでマウスを使って改善していきます。

@数値の数が一桁〜二桁程度だと数分で切り替え、
A数百〜数千レベルだと数十分〜数時間で切り替え、
Bそしてまた再実行しファイルを読み込み@に戻る

初期の小さい規模ではSECTION数が数十個で、各SECTIONの数値の個数はせいぜい数百レベルなのでSECTIONの切り替えが頻繁に発生します。
そして@〜Bを回すのが数十分〜数時間くらいでそれをくるくる回します。
数ギガレベルになるのは終盤になってからです。

という感じなのでファイルの再生成が頻繁に行われ、かつGUIでマウスで改善していくので
マウスが手放せず解析表示もGUI操作が必須になる、という感じになっています。

小さい規模では特にSECTION切り替えが頻繁に発生するのでファイル分割で管理がわずらわしくなるのを避けたい。
まずここに重点を置き、そうすると大きい規模では読み込み時間がネックになるので高速化で対応しよう。
という状況で現在に至っているところでした。
299デフォルトの名無しさん
2018/07/27(金) 00:01:55.25ID:wdZoBIJt
>>298
死ねよゴミ。
俺はお前が正解を全部ガン無視したことを咎めてるんだよ。
300デフォルトの名無しさん
2018/07/27(金) 00:03:32.92ID:o3vIRrYt
>>293
そんなもんなんだ

Char**→LPCWSTR変換ってsetlocale使う方法しかない?
301 ◆QZaw55cn4c
2018/07/27(金) 00:13:35.77ID:dNDh2QHO
>>297
>ならあってもいいって事になるが、
そうではなく、すでに在るこのスレを放棄する必要はない、と主張したつもりですが
同様に、例のテンプレが張ってあるスレの存在下で、新たにテンプレなしの新スレを作る必要もない、と考えます
302デフォルトの名無しさん
2018/07/27(金) 00:32:44.94ID:27BaLAkY
>>300
setlocaleは関係ない。setlocaleは、C関連の設定をすべて変えてしまうので、ここでは呼ばないほうがいい。

MultiByteToWideChar() で可能。
出力用のLPWSTR バッファは、スタックなりmalloc, new, std::vector<wchar_t> なりで確保したヒープメモリを使い、
受け取ったLPWSTR バッファの中身をCComBSTRのインスタンスにコピーするのがいいと思う。
303デフォルトの名無しさん
2018/07/27(金) 00:44:14.53ID:wdZoBIJt
>>301
> そうではなく、すでに在るこのスレを放棄する必要はない、と主張したつもりですが
じゃあそう書けよドアホ
そしてその場合は285に安価しろ


まあとにかく、俺は新しくスレを立て直すことに賛成だ。
あのテンプレも機能してたと思う。
そして15GB君と半角キチガイには何も教えてやる気はない。

スレ住民が出来ることは、正答例を提示することのみであり、
今回はこれは複数人から十分為されている。
ゴミなのは質問者および半角キチガイ馬鹿だけであり、
ワッチョイが意図的に落とされたことにより荒らされていると懸念されるのなら、
このスレを破棄して新しくワッチョイスレでやり直すのは極めて妥当だ。

んで、ついでに正解提供者がHDDの速度について知らないようだから教えておいてやる。
サーバーのHDDは一般にRAIDになっており、スループットだけはいくらでも上げられる。
詳しくはググッた方が分かりやすいからそうしろ。
なお一般PCも今時はRAIDを標準装備しているが、
1. そもそも複数HDDを接続しない
2. マザー等HDD以外の故障の場合に余計に死ねる
ので一般PCでRAIDを構成することはあまり無い。
また、SSDが速いのはランダムリードであり、
シーケンシャルライト(ログ吐き)の場合はHDDの方が速かったりしたはず。

質問者と半角キチガイは死ねでしかないが、
正解提供者が疑問に思っていることがあれば、知ってれば答えてやるよ。
スレの質を上げる為に努力した奴らは報われるべきだと思うから。
今回は質問者が悪すぎた。これはご愁傷様。
304デフォルトの名無しさん
2018/07/27(金) 00:49:14.72ID:X8KcH05s
オレが強いワケがないからな
クソニートどもがよわっちいだけだからな
クソニートどもが社会人に勝てるワケがない

クソニートどもがとてつもなく弱いワケ

その自覚がないのが恐ろしい
305デフォルトの名無しさん
2018/07/27(金) 00:50:56.55ID:X8KcH05s
クソニートどもの戯言が正解だって()
身の程知らずもいいところ

クソニートどもはクソニートの狭い世界で
すべてが完結してるからな

その自覚がないから救いようがない
306デフォルトの名無しさん
2018/07/27(金) 00:53:36.63ID:X8KcH05s
このスレに相談してくる人間は
クソニートのアドバイスなんか求めてないわけ?

わかる?

オレみたいなプロフェッショナルに回答を求めてるわけ
クソニートのテキトーな戯言なんかだれも求めてない

わかった?
307 ◆QZaw55cn4c
2018/07/27(金) 00:54:58.75ID:dNDh2QHO
>>303
>あのテンプレも機能してたと思う。
根拠は?

>ワッチョイが意図的に落とされたことにより荒らされていると懸念されるのなら、
>このスレを破棄して新しくワッチョイスレでやり直すのは極めて妥当だ。
新しくスレを立てても、そのスレにて半角君や150G君が発言を継続するのであれば、事態は変わらないのでは?

月並みな話だけれども、単にスルー力が足りないだけなのでは?
5年、10年とスルーし続けることも必要な場合はあると思います
308デフォルトの名無しさん
2018/07/27(金) 00:56:25.04ID:A3iaMhaK
わかった
309デフォルトの名無しさん
2018/07/27(金) 01:18:44.81ID:wdZoBIJt
>>307
なるほどお前とは話が通じないことは分かった。
お前が嫌われるのも納得だ。

> 根拠は?
先に「機能してなかった」根拠を提示してみろ。

> 事態は変わらないのでは?
ワッチョイがあればここまで酷くはならない、というのが彼の見方で、
俺もそう思う、ということ。

というかマジでお前話の内容について来れてないだろ。
無理して食いついてこなくてもいいぞ。邪魔でしかないから。
310デフォルトの名無しさん
2018/07/27(金) 01:25:39.79ID:X8KcH05s
もうねクソニートが必死でしょ
すぐにクソニートなのはレスですぐにバレちゃうからな

コイツの脳内ではインフラとソフトウェアすら組織で分離されてないみたいだからな

クソニートの自作パチョコンの世界を
そのまま脳内で再現してる
311 ◆QZaw55cn4c
2018/07/27(金) 01:33:55.71ID:dNDh2QHO
>>309
>先に「機能してなかった」根拠を提示してみろ。
私は「機能していた」とも「機能していなかった」とも主張していませんが
あなたは >>303 「機能していた」と判断しているのであれば、その理由もおしえていただけませんかね

>ワッチョイがあればここまで酷くはならない、というのが彼の見方で、俺もそう思う
ワッチョイは有効期限が長すぎるし ID とちがって専用ブラウザでの機能が充実していないからね…

私は ID で快適にスルーするべきものはスルーできていて無問題なんですけれどもね
312デフォルトの名無しさん
2018/07/27(金) 04:56:28.85ID:/nUzesew
HTML出力を正解だと思ってるやつや
size_t使ってる場所で出るコンパイルエラー程度で「動くコード書けよ」とか
恥ずかしいこと言った上に、謝りもしなかった初心者が
偉そうに仕切ってるスレって・・・w
313デフォルトの名無しさん
2018/07/27(金) 06:57:19.44ID:Mz+rSfRQ
コンパイルエラーが出るのはまずくない?
314デフォルトの名無しさん
2018/07/27(金) 07:04:43.26ID:m0uy41dr
紙上コードでタイポするぐらいいいだろ!
315デフォルトの名無しさん
2018/07/27(金) 08:03:50.66ID:u6e3tzrN
ワッチョイがあればQz弾けるやん。
316デフォルトの名無しさん
2018/07/27(金) 08:28:06.62ID:NS0U2LcD
>>309
他のスレにはないのだから要るって主張してるほうが根拠を示すべきだろ。
317デフォルトの名無しさん
2018/07/27(金) 08:48:04.76ID:u6e3tzrN
>>316
このスレにはQzが粘着してるやん。
318デフォルトの名無しさん
2018/07/27(金) 08:55:01.54ID:NS0U2LcD
>>317
テンプレが何の役に立つの?
319デフォルトの名無しさん
2018/07/27(金) 09:04:30.33ID:u6e3tzrN
>>318
テンプレは俺が荒らしたから出来たものだし、あのテンプレがあると俺は恥ずかしくて荒らせない。
そこら辺の経緯を知りたいか?
320デフォルトの名無しさん
2018/07/27(金) 11:24:09.66ID:DyyEKTZY
知りたい
321デフォルトの名無しさん
2018/07/27(金) 11:30:38.87ID:NS0U2LcD
>>319
それなら自分の机の上にでもはっとけばよくね?
322デフォルトの名無しさん
2018/07/27(金) 12:40:38.56ID:dsPS3Oy7
すっぽすっぽ先生の日本講演の日なのにくだらねえ話ばっかりだな
323デフォルトの名無しさん
2018/07/27(金) 15:48:27.31ID:u6e3tzrN
すっぽん先生って誰だよ。
324デフォルトの名無しさん
2018/07/27(金) 16:00:10.02ID:454wB1N8
俺には
ビャーネストスト
に聞こえる。
https://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
325デフォルトの名無しさん
2018/07/27(金) 16:06:17.77ID:u6e3tzrN
禿のことかよ。
326デフォルトの名無しさん
2018/07/27(金) 21:27:48.11ID:K5tMY89A
ターミナルでタブキー押すとディレクトリやファイル名が補完されますがプログラム上でそれを起こすにはどうやればいいのでしょうか
327デフォルトの名無しさん
2018/07/27(金) 23:26:03.34ID:yQgFrYID
>>311
> 私は「機能していた」とも「機能していなかった」とも主張していませんが
ならまずお前が俺に絡んできた理由を教えろ。

といってもお前は相当のコミュ障のようだからどうせトンチンカンな答えになるだろう。
続けても意味無いから答えを書いておいてやる。お前には会話の常識がないんだよ。

既に言ったとおり、
> そうではなく、すでに在るこのスレを放棄する必要はない、と主張したつもりですが
なら俺にではなく、285に対してレス『しなければならない。』
そしてこの状況で俺に対して
> >あのテンプレも機能してたと思う。
> 根拠は?
と問いただすのなら、常識的にはお前は「機能してない」と思っていると仮定される。
逆に、この状況で単に
> 私は「機能していた」とも「機能していなかった」とも主張していませんが
という、単純に理由が知りたいだけだというのなら、それを明示『しなければならない。』
(それ以前に、普通に空気読める奴なら、不要不急な質問をここでは控えるが)

お前は相手に自分の意図が正しく伝わるように書けてない。
だから無駄に脱線して空回りし、話が進まない。だから嫌われる。
コミュ障の典型的パターンだ。「自分はそう言ってませんが」で全て通ると思っている。
そうじゃない。
意図を正しく伝えて会話を成功させる努力義務は相互にある。お前は全くそれが出来てない。
おかげで俺は無駄な話を書かされまくってる。大迷惑だ。


というわけでQZは話にならないのでとりあえず放置だ。
>>316
お前は当然「あのテンプレは意味無い」と思っているんだよな?
では逆に聞こう。
何故あのテンプレを剥がしたがっている奴がいるのだと思う?
328デフォルトの名無しさん
2018/07/27(金) 23:31:35.61ID:n6a2xyXf
>>327
逆に聞くなよ。先に答えろアホ
329 ◆QZaw55cn4c
2018/07/27(金) 23:48:50.60ID:dNDh2QHO
>>327
>そしてこの状況で俺に対して
(>>303)
>>>あのテンプレも機能してたと思う。
(>>307)
>> 根拠は?
>と問いただすのなら、常識的にはお前は「機能してない」と思っていると仮定される。

常識とはなんですか?
かりに、あなたのいうところの常識が妥当なものであったとしても、自分で「仮定」といっているんですよね?あくまでも仮定ですよね?
仮定というからには、仮定が成立しない場合もありうるんですよね?

私は、
>>303
>あのテンプレも機能してたと思う。

という結論を、どういう推論を経て導いたのかを聴きたかっただけなんですが。

>単純に理由が知りたいだけだというのなら、それを明示『しなければならない。』
どうして?
330デフォルトの名無しさん
2018/07/27(金) 23:58:28.72ID:u6e3tzrN
>>329
テンプレがあると俺が荒らせないからに決まってんだろ。
331デフォルトの名無しさん
2018/07/28(土) 00:02:12.95ID:jbwKRPPF
タブキーによる補完の仕組みは
compgenを調べればすぐに分かる

つまり
これこそ
ググレカス
332デフォルトの名無しさん
2018/07/28(土) 00:43:14.60ID:/nZLT2uf
>>330
中二病こじらせてんのか
333デフォルトの名無しさん
2018/07/28(土) 01:02:06.96ID:+BSazAb2
もっとメタプログラミング的なテンプレが良いね
334デフォルトの名無しさん
2018/07/28(土) 02:09:39.90ID:cypKnBYi
>>329
回答は既に327に書いてある。
何度でも読み返せ。

>>328
まあお前らゆとりはその程度だとは思っていたさ。
おそらくお前の戦略は、俺が証明できないから無効だと言い張ることだろ。
だからこそ、お前らは先に言い出せない。必ず俺に先に言わせようとする。
それで、俺が証明できたら、どうするつもりだ?

実は逆説的だが証明自体は簡単なんだよ。
嫌がっている奴がいること自体が、効いてる証拠なんだ。
わかるか?

お前があのテンプレを剥がしたがっているしたら、例えばそれはお前にとって不快だからだ。
不快だと思う奴は、そういうスレに来ない、または来にくくなる。
本当に訳の分からないテンプレを貼られてたら、アウェイ感が出るだろ。
そしたら入って行きにくくなるだろ。

だから、積極的にテンプレを改変しようとする奴がいること自体、効いてる証拠なんだよ。
勿論>>1すら読んでいないゆとりレベルの馬鹿>>260には効かないが。

とりあえずかなり長いことあのテンプレは貼られていて、それで質は保たれてた。
最近積極的に剥がし、そしてワッチョイも剥がされてこのザマだ。
ここは元通りに戻して様子見するのが妥当だよ。
長期的影響を考慮できない馬鹿はここは黙って見ているべきなのさ。
お前らはすぐ老害老害と言うが、リアルはさておき、ネットは老害が蔓延れるほど歴史がない。
お前らはもう少し、己の無能さを自覚し、知識がない分野については自重する分別を持つべきだ。
335デフォルトの名無しさん
2018/07/28(土) 02:10:55.23ID:cypKnBYi
2ch全体が、何故か「テンプレは不変」で纏まってるだろ。
俺はこの経緯/歴史は知らないが、可能性があるのは、
1. 全員がテンプレの効果を理解できる知能があって、自然にそうなった
2. どこかで話し合いがもたれて、そうなった
3. 試行錯誤され、結果的に遺伝的アルゴリズムの淘汰により、そうなった
の3つだ。
ひろゆきは「昔は賢い人しかいなかった」と言うから1だと主張するかもしれんが、
俺はこれはさすがにあり得ないと思う。
>>267みたいに無駄に噛みつきまくる馬鹿な奴は、どこにでも居るから。
(噛みつくのではなく、投稿内容で知識レベルを示すべき)
さりとて2ももっとあり得ないから、おそらく3だと思っている。
つまり、テンプレにいちいち不満があるからといって改変許可していると収拾がつかず、
結果的にそういうスレは質が下がり淘汰されてきたと見ている。
そして2ch全体がそう染まったと。

俺自身は「嫌なテンプレを作る」のも効果がある、という考えだ。
それをいちいち外されるようでは駄目なんだよ。効果が無くなるから。
そして、その効果が無くなる=テンプレを自由改変するスレは淘汰されてきたと見ている。

とはいえ、お前らはこれでは納得いかないだろう。
なら、スレ割って実験してみればいいだけだ。単純な話だ。
>>285の言うとおり、ワッチョイ付きで立て直せばいい。
そしてテンプレがいると思う奴は、投稿すればいい。少なくとも前スレ136まではそうだった。
逆にテンプレが要らないと思う奴はこのスレを引き続き盛り上げればいい。
俺はワッチョイ+例のテンプレ付きのスレにしか投稿しないことを約束する。
それでどっちが盛り上がるか勝負すればいい。分かりやすい話だ。
また逆に、これを避けること自体もまた、
「勝てる自信がない」という意味でテンプレが有効だと裏付けていることに気づけ。

ということでいいかね?
何なら俺がスレ立てて割ってやるよ。それで勝負すればいいだけだ。
断る理由も、お前らにはもうないはずだ。
336デフォルトの名無しさん
2018/07/28(土) 02:13:26.66ID:cypKnBYi
なおあれは俺が作ったわけではない。
俺も当初意味不明なテンプレだと思ったが、しばらくすると、
確かにあのテンプレはこのスレの状態を極めて的確に表していると気づいた。
つまり、あれを「クスッ」っと感じれる奴だけ集まれ、ってことだ。
お前らがあれを剥がしたがっているのは、違和感ありまくりだからだろ。
その「違和感」こそが、効いている証拠なんだよ。分かるか?

ただこの際、効いている効いてないは大した問題じゃない。
スレ割って、両方のスレがお互いに競うことが重要であり、それが直接的にスレの質の改善に繋がる。
だから、やればいいだけの話なんだよ。


>>333
ワッチョイ無し例のテンプレ無しなら、このスレを使え。
新しくテンプレが欲しいのなら、みんなで話しあって立て直すんだね。

それが妥当と思えなければ、俺が従来通りのスレを立てて様子見してやるよ。
337デフォルトの名無しさん
2018/07/28(土) 03:02:15.88ID:kbWsXNPG
主観的、思い込みだらけでなんの根拠も示せてない。やり直し

あとワッチョイについてなくても無問題と言ってるのはQzだけだ
338デフォルトの名無しさん
2018/07/28(土) 06:57:01.71ID:dOqiqC/T
IDは日毎に変わってしまうので自分の発言を見直したい時に不便。
ワッチョイ便利よ。
339デフォルトの名無しさん
2018/07/28(土) 07:46:05.56ID:PxykokRm
>>337
まあどうせそう連呼するとは思っていた。
ならスレ割って証明するしかない。
勿論反対はしないよな?

とりあえず数日様子見して、話が纏まらないなら俺がスレ立てるよ。
それまでに、「機能してない」と主張する奴は「例のテンプレがある」スレには投稿しないと約束してくれないかね?
俺の逆で。
それで勝負だ。
「例のテンプレ」を支持する集団と、剥がしたい集団で、
どっちがマトモにスレ運営できるか、白黒つければいい。


>>329
QZ、お前もな。
ここまで絡んできて、僕は質問しただけです、は通らないぞ。
旗幟鮮明にしろ。
340デフォルトの名無しさん
2018/07/28(土) 07:53:22.58ID:Q0sE5Usk
>>338
専ブラ使えよ…
341デフォルトの名無しさん
2018/07/28(土) 09:33:53.70ID:aLrZyGnX
エラー落ちすると自分マーク消えちゃう専ブラあるからなあ
342デフォルトの名無しさん
2018/07/28(土) 09:35:10.36ID:aLrZyGnX
真面目に議論したいなら、強勢IP表示した方が良い
343デフォルトの名無しさん
2018/07/28(土) 10:14:13.47ID:jbwKRPPF
メタプログラムとかにしたら絶対ダメだ
知恵遅れなんかがここぞとばかりに
テキトーなこと書き込めるからな

メタプログラムとか知恵遅れが一番参入しやすい

このスレがなんで低学歴知恵遅れが多いか
その理由がココにある
344デフォルトの名無しさん
2018/07/28(土) 10:17:09.09ID:jbwKRPPF
まじめに議論したいなら
まずクソニートや低学歴知恵遅れ
そして底辺ITドカタをこのスレから排除すること

まずこっから
345デフォルトの名無しさん
2018/07/28(土) 10:18:48.83ID:jbwKRPPF
つまり
バカは書き込み禁止
346デフォルトの名無しさん
2018/07/28(土) 10:20:31.04ID:jbwKRPPF
このスレはバカの自覚がないバカが多い
だから絶対にバカが治らない
一番たちがワルイ

排除するのが一番

そういうことだ
347baka
2018/07/28(土) 10:32:02.99ID:nSNyoduL
メタプログラムはダメだ。つまりマクロは使用禁止!
348デフォルトの名無しさん
2018/07/28(土) 10:36:30.00ID:TrbWuBTr
>>346
ご高説ごもっともです 深く感じ入りました 
以降も発言を注視させていただだきたいと思いますので
お手数ではありますが 固定酉をつけていただけませんか?
ご勘案のうえ ご配慮いただけますようお願いいたします
349デフォルトの名無しさん
2018/07/28(土) 10:37:15.94ID:jbwKRPPF
テンプレ

 このスレは質問や相談にプロフェッショナルが答えます
 クソニート、低学歴知恵遅れ、底辺ITドカタの回答の書き込みはお断り

コレでいい
350 ◆QZaw55cn4c
2018/07/28(土) 10:38:14.68ID:AqK1vkX7
>>339
>旗幟鮮明にしろ。
人間の集団を敵か見方かのいずれか一方に分ける、という人間が自然に持っている心理的限界を常に自覚しなければならないのです
351デフォルトの名無しさん
2018/07/28(土) 10:47:27.41ID:aLrZyGnX
ここがバカ用の隔離スレだからな
他のスレに迷惑かけないようにしろよ
352デフォルトの名無しさん
2018/07/28(土) 10:52:55.97ID:qFm1KF6C
http://zx6z.psbjgiksmdgctp.tokyo/jbkxtir/dgtjj/gf8u34t4tnj/2rt35wgeg
353デフォルトの名無しさん
2018/07/28(土) 12:02:16.12ID:GDMb2Dkw
>>350
相変わらずお前は話が通じないな。
そして論点そらしか。お前もいつの間にパヨクになったんだ?

質問を変えよう。
お前は例のテンプレについて、「機能している」と思うのか、「意味無い」と思うのか、どっちなんだ?
>>295を読んだら「意味無い」と思っていると捉えられるのが普通だが、
お前的には違うつもりなんだろ。
ならさっさと答えろ。
ここまで絡んできて、まさか自分の意見がないとか、あり得ないよな?
354デフォルトの名無しさん
2018/07/28(土) 12:19:46.53ID:aLrZyGnX
相手と話をしたいなら、普通は表現に配慮するものだ
職場や学校でいつもこうやって相手にけんかをふっかけているのかな?
355デフォルトの名無しさん
2018/07/28(土) 12:33:49.69ID:C+3FbN1g
だめだこりゃ
356デフォルトの名無しさん
2018/07/28(土) 12:48:42.42ID:jbwKRPPF
このスレの低学歴知恵遅れは
表現の配慮以前に質問者つまり相手がいってることを理解できないからな
当然、コミュニケーションは成立しない
それ以外にもイロイロなものが欠落している

知能に著しい欠陥があると同時に社会性もない
クソニートヒコモリ特有のレスパターンといっていい
2ちゃんねるにうじゃうじゃいる登校拒否児になったまっま高齢クソニートになったようなヤツのレスパターンそのまんまだからな
精神的にも幼い

で、質問内容となんの関係もないなんの役にも立たない自分が知ってるしょうもないどーでもいいこと(つまり情報価値ゼロ)を
スレに書き込んでオナニーしてるワケ

つまりな社会と接点のないこのスレのクソニートはコレで社会と接点がもてたと錯覚してるワケ

カンペキなプロファイリングをするとこうなる

そうクソニートヒキコモリはどんだけ自分がゴミでクズな存在かその自覚をもてる日はこない
だからクソニートヒキコモリはずっと引きこもってる

結論はこうなる
357デフォルトの名無しさん
2018/07/28(土) 12:54:21.12ID:9n95SirI
自己紹介おつかれさまです。
358デフォルトの名無しさん
2018/07/28(土) 12:56:10.15ID:jbwKRPPF
図星なんだろ
素直になりなさい

クソニートがまともな社会生活を送ってる人間に
勝てるワケがない

クソニートはどんだけ自分がゴミでクズなのか
その自覚をもつのが先だからな
359デフォルトの名無しさん
2018/07/28(土) 12:58:46.04ID:C+3FbN1g
自己紹介おつかれさまです。
360デフォルトの名無しさん
2018/07/28(土) 13:00:33.92ID:jbwKRPPF
今回質問してたヤツとコミュニケーションが成立してたのは
オレだけだったからな

その事実がすべて物語ってる

クソニートしかいないこのスレから
クソニートを排除するのが先というのが
よおく分かったからな
361デフォルトの名無しさん
2018/07/28(土) 13:03:17.62ID:9n95SirI
クソニートしかいないスレにいるお前はクソニート
362デフォルトの名無しさん
2018/07/28(土) 13:03:23.84ID:C+3FbN1g
なんか嫌なことでもあったのか
363デフォルトの名無しさん
2018/07/28(土) 13:04:24.13ID:jbwKRPPF
オレはクソニートをこのスレから排除する
クソニートの居場所はもうない
364デフォルトの名無しさん
2018/07/28(土) 13:07:50.50ID:oI8u94+S
>>343
ETについてここに色々書いたことある者だけど
ドヤりたいだけの馬鹿は確かに多い(ここに限らず)、けどそういうやつは見たらわかるよ
真面目にやってる人もたまにいるから一緒くたに否定しないでくれ
365デフォルトの名無しさん
2018/07/28(土) 13:09:01.74ID:VyODD4HS
プッシュ型スキャナー/パーサーについて考えよう。
366デフォルトの名無しさん
2018/07/28(土) 13:09:51.96ID:aLrZyGnX
面接官に「お前とはコミュニケーションが成立しない!」と罵ってしまったとか
367デフォルトの名無しさん
2018/07/28(土) 13:11:52.48ID:oI8u94+S
ただ俺も、まともにメタプログラミング実用してない癖に「今時のC++はメタプログラミングが主流」みたいな頭悪い大嘘ぬかす馬鹿は
ここから出て行くどころか今すぐプログラミングを辞めてほしいわ
どれだけ周囲に迷惑かけ、C++の発展を邪魔してるのか自覚してほしい
368デフォルトの名無しさん
2018/07/28(土) 13:52:05.63ID:VPkQogVC
>>350
なんで就職しないの?
369デフォルトの名無しさん
2018/07/28(土) 14:06:46.53ID:zJtcAlIu
>366
話し言葉もちゃんと半角なのいいね
370 ◆QZaw55cn4c
2018/07/28(土) 14:29:03.21ID:AqK1vkX7
>>368
なんで就職していないと思ったの?
371デフォルトの名無しさん
2018/07/28(土) 14:43:10.37ID:qPhlaL35
>>370
会社で働いてるの?
372 ◆QZaw55cn4c
2018/07/28(土) 14:54:29.22ID:AqK1vkX7
>>371
税金は払ってますよ…
373デフォルトの名無しさん
2018/07/28(土) 15:14:43.89ID:v07KtwGv
消費税は無職でも払わないといけないわなwww
374デフォルトの名無しさん
2018/07/28(土) 15:25:30.82ID:8G21bbxI
まったく質問に答えてないwww
375デフォルトの名無しさん
2018/07/28(土) 16:23:31.31ID:0C7Daazh
こんなガイキチのロートルを雇ってくれる会社なんかないな
376デフォルトの名無しさん
2018/07/28(土) 16:45:03.65ID:jppVqscf
>>372
所得税は払ってるの?
377デフォルトの名無しさん
2018/07/28(土) 17:37:40.26ID:5Q2+6uj+
ここ、いつから身の上相談スレになったの。話題を変えたい。
EASTL使ってる人いる?
378デフォルトの名無しさん
2018/07/28(土) 18:16:36.03ID:VyODD4HS
>>377
検索してみたけど、C++17で良いのでは?
足りなければBoostで。
379デフォルトの名無しさん
2018/07/28(土) 19:26:09.04ID:jbwKRPPF
このスレのクソニートどもは
C++とかいってる前にな
自分の将来を心配したほうがいいわ
380デフォルトの名無しさん
2018/07/28(土) 19:27:00.82ID:jbwKRPPF
バレてないと思ってるかもしれないけどな
チョンバレなワケ
381デフォルトの名無しさん
2018/07/28(土) 19:27:31.79ID:FnoRf+hv
つまんね
C++の話題やれよ。
382デフォルトの名無しさん
2018/07/28(土) 19:28:10.66ID:jbwKRPPF
まず邪魔なクソニートを排除するのが先だ
383デフォルトの名無しさん
2018/07/28(土) 19:35:03.00ID:jbwKRPPF
低学歴がいくら低学歴を隠そうとしても
書き込みですぐにバレる
クソニートはいくらクソニートを隠そうとしても
書き込みですぐにバレる

残念なことにな

当然、本人たちはそれに気付くことはできない
バレてないと思ってるのは本人たちだけだからな
384デフォルトの名無しさん
2018/07/28(土) 19:38:53.49ID:28wdIWuU
>>377
何度か話題に上ってるけど使ってないな
てか何のために使ってるのか逆に聞きたい
385デフォルトの名無しさん
2018/07/28(土) 20:28:07.43ID:k9DVhb8p
まあとにかく予定を言っておく。

俺は8/1以降に『完全に従来通り』のスレを立てる。
つまり、ワッチョイあり、例のテンプレあり、スレタイも不変で、part138とする。
従来スレがいいと思っているのならそれ以降このスレ廃棄で合流しろ。

あのテンプレが気に入らない等、従来スレよりも良いスレが作れると思っている奴らは、
可能であればそれ以前にこのスレで話しあって、ワッチョイ、テンプレ、スレタイ等も決め、
新しいスレを立ててそっちに移住しろ。
それでその新しいスレが賑わい、従来スレが過疎って落ちるようなら素晴らしい。

この方式(フォーク)の特長は、誰も損をしないことだ。
最悪、従来通りのスレは手に入る。
上手く行けばそれよりよいスレが手に入る。
この手の争いはフォークで解決すべきだというのが、OSS界隈では常識でもあるし。

Part138が存続している限り、俺は君たちが新しく立てたスレには投稿しない。
これは約束する。
俺は君たちにはスレ運営能力なんて無いと思っているが、
もし君たちの新しいスレが成功すれば、俺が過小評価していただけであり、
これくらいのペナルティは受けるべきだ。

ただし逆に、新しいスレを立てた連中は、少なくともそのスレが存続している限り、
従来スレには来るべきではないとも思っている。
これがフェアというものだ。これは君たちの自己に対する過大評価へのペナルティとなる。
だからQZにもその点を問いただしている。

当たり前だが、自由には責任がつきまとう。
お前らが成人しているのなら、自分の行動には責任を持て。
どっちに付くかは自由、したがってその結果がどうなろうとも全てお前の責任だ。
386デフォルトの名無しさん
2018/07/28(土) 20:52:34.59ID:5Q2+6uj+
>>384
自己満足
387デフォルトの名無しさん
2018/07/28(土) 21:01:08.20ID:5Q2+6uj+
EASTLをVS2017とwsl+gccで試した限りでは、あまり速度面でのEASTLの恩恵はない。
EASTLを使うと、知らないうちにstdのSTLに依存してしまっているコードに気づける利点があるといえばある。
388デフォルトの名無しさん
2018/07/28(土) 21:08:19.59ID:VyODD4HS
依存するとまずいの?
389 ◆QZaw55cn4c
2018/07/28(土) 21:10:24.75ID:AqK1vkX7
>>385
スルー力が不足しているだけなのに、また余計なことを…
390はちみつ餃子 ◆8X2XSCHEME
2018/07/28(土) 21:13:34.68ID:36Xz3wmQ
>>340
複数の端末を使っている場合は専ブラを使ってても自分が投稿した投稿を統一的に管理できない。
出来る専ブラもあるんかな?
391デフォルトの名無しさん
2018/07/28(土) 21:17:49.26ID:DyF9e7oq
>>385
ダム版でやれよ
392384
2018/07/28(土) 21:18:22.83ID:oI8u94+S
>>386
すでに言われてるけど最近のコンパイラと最近のC++なら当時の速度面でのデメリットは結構解消されてるだろうし
ゲーム専用機向けの最適化がなされたものをコンパイラも優秀なPCで使う意味があるのかなと思ってね
まぁ両方を眺めるのはもちろん勉強になるだろうけど
393デフォルトの名無しさん
2018/07/28(土) 21:34:13.71ID:5Q2+6uj+
>>388
組み込みの場合はまずいことが多い。組み込みは大抵stdもどきなので。
394デフォルトの名無しさん
2018/07/28(土) 21:40:05.17ID:nhKIzNwX
>>385
結局自分が気に食わない奴らは出てってもらってスレ継承させないと言ってるだけに聞こえるが。
自分の意見がそこまで正しいと信じているなら、part138とせずに新たに1から振り直したスレを作ったらどうなんだ?
きっと賛同者がついていってくれるよ。
395デフォルトの名無しさん
2018/07/28(土) 21:41:26.83ID:VyODD4HS
ここははちみつ餃子さんに一任しようではないか。
396デフォルトの名無しさん
2018/07/28(土) 22:02:48.96ID:K0euPiC+
>>394
ぼくはのっとりたいんです、まで読んだ
397デフォルトの名無しさん
2018/07/28(土) 22:05:04.32ID:VyODD4HS
5chって投票所無かったっけ。
398 ◆QZaw55cn4c
2018/07/28(土) 22:10:16.83ID:AqK1vkX7
>>397
「一人一票」を技術的に実現できないから無意味
399デフォルトの名無しさん
2018/07/28(土) 22:20:07.96ID:aLrZyGnX
実住所と氏名を晒し、郵送による本人確認、
投票用紙を送り、記名投票を実施する
400 ◆QZaw55cn4c
2018/07/28(土) 22:25:17.35ID:AqK1vkX7
>>399
なるほど
メールアドレスを晒して、というのはアリかもしれない
401デフォルトの名無しさん
2018/07/28(土) 22:27:16.84ID:K0euPiC+
あーまあいいや、ちゃんと回答する気になったから書いておいてやる。
なお396は俺な。


>>394
良くも悪くも、俺が立てるスレは『完全に従来通り』だからそのままで行く。

> 結局自分が気に食わない奴らは出てってもらってスレ継承させないと言ってるだけに聞こえるが。
お前も相当のアホパヨクだな。
俺が言っているのは、『従来通り』が嫌な奴は出て行って新スレを作れ、
もしそのスレが成功するならフォーク成功だ、ということ。
『自分が気に食わない奴ら』ではない。
そういうところがお前みたいなパヨクの駄目なところだ。
反対の反対になっているし、論点のすり替えを平気で行っている。

こういう、強制力を発動できないところで意見対立した場合、
現行はフォークで決着するしかない。だからそれを行う。
お前に良い案があるなら堂々とフォークすればいいし、そのブランチに賛同者は付いていくだろう。
俺は特に改善点を持ち合わせていないので、従来側のブランチは俺が担当する。


>>397-398
相変わらずQZは回答なしか。お前も相当ずるい奴だな。
まあそれはさておき、
> 一人一票
ってのは仮に実現できたとしても意味がない。
フォークが成功するかどうかは、アクティブコミッターをどこまで獲得できるかであって、
つまりここで言うと正しく回答できる奴、それは実力と時間も含めて、がどれだけどちらに付くか、
そして結果的にどちらのスレの方がマトモに機能するかであって、
ROMの票があったところで意味がないからだ。
だからスレ割ってどちらが繁盛するかがつまり投票なんだよ。それがフォーク。
402デフォルトの名無しさん
2018/07/28(土) 22:28:51.81ID:jbwKRPPF
やっぱりなクソニートの書き込みってすぐに分かるわ
403デフォルトの名無しさん
2018/07/28(土) 22:43:29.96ID:oI8u94+S
ニートだのパヨクだの(´・ω・`)
404デフォルトの名無しさん
2018/07/28(土) 22:44:52.59ID:C+3FbN1g
わかるはずがないのに分かっちゃった気になるからコケるんやぞ
405デフォルトの名無しさん
2018/07/28(土) 22:45:34.04ID:jbwKRPPF
パヨチョンもクソニートも邪魔

排除が適切
適切な排除が必要
406デフォルトの名無しさん
2018/07/28(土) 22:48:36.99ID:XeXUtcmE
>>401
結局テンプレの必要性は証明できないのに従来通りだからで押し切るつもりか。
スレ分割したら従来タイトルとスレ番継承したほうが圧倒的に有利なのは明らかだろう。なんの検証にもならない。馬鹿なんじゃないか?
407デフォルトの名無しさん
2018/07/28(土) 23:21:40.03ID:VyODD4HS
>>406
テンプレが出来た経緯を知ってるか知らないかだろな。
408デフォルトの名無しさん
2018/07/28(土) 23:23:14.22ID:K0euPiC+
>>406
少なくともアクティブな奴はここを読んでいて経緯は知ってる。
さらに8/1迄の先行件を与えている。
それ以上何が欲しいんだ?

従来通りなんだからスレタイとスレ番は継承するに決まっている。
新しいスレが同じスレタイとスレ番なら紛らわしいだけだ。
見た目分かるように何か変えろ。それは後発の義務だ。

お前が納得してない「テンプレの必要性」を俺はフォークで証明すると言ってるんだよ。
だからお前があのテンプレが悪い方向に寄与すると主張するのなら、
それを外せば勝手にスレは改善し、みんなそっちについて行くんだろ?
試してみろよ。

お前自身が「俺が気に入らないことをやるな」と言ってるだけなんだよ。
お前の考えが正しいことは、お前自身が説明しろ。
そしてどちらのスレが使われるかが、投票になる。
非常に民主的に決まる、良いやり方だと思うぜ、フォークは。

或いは他に良いやり方があるというのなら、提案してみろ。
俺は俺なりの説明はした。
あれで納得いかないのならどうやっても平行線だと分かっているから、
俺はフォークしかないと判断している。
お前は結局文句言ってるだけだ。


というかこの話も同様に平行線なので、もうこれくらいでいいか?
いずれにしても俺は8/1以降に『完全に従来通り』でスレ立てる。
それをどう捉えるかは君らが決めることだ。
409デフォルトの名無しさん
2018/07/28(土) 23:23:17.95ID:VyODD4HS
争いとは無縁そうなはちみつ餃子さんに仕切ってもらえばいいんじゃないのか。
410デフォルトの名無しさん
2018/07/28(土) 23:28:59.65ID:aLrZyGnX
従来通りで良いなら、こんな大騒ぎしなくて良いだろう
いつものようにスレを使い切りそうになってから立てる
住民も変わらない。内容も今まで通り
これに不満な奴は、己の作りたい趣旨にそって
新しいスレを立てれば良いだけ
411デフォルトの名無しさん
2018/07/29(日) 00:45:26.42ID:j115Aqon
>>410
> こんな大騒ぎしなくて良いだろう
お前がな。

俺は従来通りで立て直そうとしている。
必死に抵抗しているのは、例のテンプレを相当嫌っている奴か、
ワッチョイがあったら困る奴だろ。
従来通りでいい奴は、反対する理由がない。
412デフォルトの名無しさん
2018/07/29(日) 00:52:42.16ID:Yg/enGwg
テンプレ登場人物で煽ったやつが俺なんだが、もしかして煽られた奴もここにいるのかい?
413デフォルトの名無しさん
2018/07/29(日) 00:55:43.16ID:uqiXbB1D
>>408
こっちはそんな条件じゃなんの検証にもならないと主張しているのに、フォークで証明すると繰り返すばかり。もはや反論になってない。
結局"おまもり"の有効性なんて証明できるわけがないから公平なふりして無理やり押し通そうとしている。
非論理的で話にならん。
414デフォルトの名無しさん
2018/07/29(日) 01:02:15.71ID:rd1wRLD1
この暑さでとうとう脳がやられたキチガイが出てきたなw
415デフォルトの名無しさん
2018/07/29(日) 01:04:47.05ID:fkvLqjPx
c++やってるやつは案の定融通の利かない頭きちきちの奴ら何だろうな
テンプレがどうしたって言うんだか
416デフォルトの名無しさん
2018/07/29(日) 01:06:57.02ID:1hBCvnSx
>>411
ワッチョイ付きでいいよ。賛成する。
それが従来通りって意味であってる。
これでいい?
417デフォルトの名無しさん
2018/07/29(日) 01:11:44.35ID:fkvLqjPx
どの板でもスレの立て直しはたまにある
でも、余程理不尽なことがない限り新しいスレに人は移動しない
テンプレがないとかスレの番号が間違っているとかいう理由で人は移動しない

嵐が変なテンプレをつけたりおかしなスレタイに改変されてたら移動するぐらい
418デフォルトの名無しさん
2018/07/29(日) 01:41:26.98ID:Yg/enGwg
ぶっちゃけどっちでもいいしどうでもいいんだけどね。
419はちみつ餃子 ◆8X2XSCHEME
2018/07/29(日) 03:10:55.83ID:bQEgGaK2
>>409
争ったら駄目なんだよ。 交渉すべき。
だが、どうせこういう手合いは何を言っても聞きゃしねぇから無駄。
420 ◆QZaw55cn4c
2018/07/29(日) 06:18:22.84ID:bwtbjTxx
>>413
そうそう、キーワード「お守り」「非論理的」、いいですねえ
421デフォルトの名無しさん
2018/07/29(日) 07:02:10.69ID:8jVIjsgO
>>413
>>419
>>420
ではお前らなりに論理的に検証になる方法を提案し、実行しろ。
「出来ないから出来ない」というのは止めろ。

>>417
元々はワッチョイの話だったのに、
都合が悪くなったからといってテンプレのみの話にすり替えるのは止めろ。

>>416
従来通り=ワッチョイあり、例のテンプレは2に投下。
part136の1+3相当。
422デフォルトの名無しさん
2018/07/29(日) 07:25:09.88ID:eV2zeRLd
なんでも良いけどC++の話題やれよ。
戯言は無視でええ。
423デフォルトの名無しさん
2018/07/29(日) 11:44:38.77ID:LQAkWqzt
クソニートを駆除するために
はよバルサン焚けよ

こいつら害虫だからな
424デフォルトの名無しさん
2018/07/29(日) 11:51:12.53ID:LQAkWqzt
ちなみに知恵遅れどものテキトーな回答のどこがおかしいか
オレはすべて回答してる
425デフォルトの名無しさん
2018/07/29(日) 12:37:46.37ID:Yg/enGwg
プッシュ型スキャナ/パーサーはつなぎこみが楽だし、C++のテンプレートで使いやすい。
C++ Wayの一つとして研究されていいはず。
426デフォルトの名無しさん
2018/07/29(日) 13:09:38.19ID:Yg/enGwg
Qiita落ちてる?
427デフォルトの名無しさん
2018/07/29(日) 14:24:58.96ID:OHU95624
そこらじゅうで暴れてるな
半角ニート

初心者のくせに強がっちゃって
428デフォルトの名無しさん
2018/07/29(日) 16:40:38.92ID:Yg/enGwg
雑談も桶になるといいよな。
429 ◆QZaw55cn4c
2018/07/29(日) 17:23:58.49ID:bwtbjTxx
>>353
>お前もいつの間にパヨクになったんだ?
これは興味深い、>>350 のどこに、パヨク=馬鹿左翼、を感じたのか、ちょっと教えていただけませんでしょうか?
430デフォルトの名無しさん
2018/07/29(日) 20:05:51.80ID:L9bR4BuX
C++掲示板も終わりか。

糞なくせに自己主張だけは一人前のお坊ちゃまばかり。
メスもいるだろうが...

あんまり糞な事言ってると、後はわかってるだろうな
431デフォルトの名無しさん
2018/07/29(日) 20:08:42.56ID:1hBCvnSx
こういう人に限って何度も蘇ってくる
432デフォルトの名無しさん
2018/07/29(日) 20:13:22.07ID:LQAkWqzt
クソはただのクソ袋
コイツラはただのウンコ製造機だからな

レス見ればすぐに分かる
433デフォルトの名無しさん
2018/07/29(日) 20:15:29.45ID:LQAkWqzt
クソニートどもがなんで
こんなしょうもないスレの存続で必死なのか分かるだろ

居場所がココしかないから
現実逃避の場所がココだけだからな

簡単簡単
434デフォルトの名無しさん
2018/07/29(日) 21:17:20.23ID:UevmDhbi
イカれを演じて暴言吐いてないと日常の不安に耐えきれないんだろうな……
なんかひどく可哀想な人だ……
435デフォルトの名無しさん
2018/07/30(月) 00:40:10.37ID:yV+7/MBa
デストラクタで
型Tのメンバ変数Aのデストラクタ(cout等記述)が呼びされるはずなのに
型Tのメンバ変数Aと同じアドレスを持ったデストラクタ(解放だけ行う)が呼びされるんだが
こんなバグ何が原因かわからないんだ助けてください

もちろん型Tのデストラクタは一種類しか宣言してないし
virtualもつけてるんだが…
436デフォルトの名無しさん
2018/07/30(月) 00:58:21.77ID:CKgR1uCb
コードで示してくれ
437デフォルトの名無しさん
2018/07/30(月) 06:36:20.73ID:qFKbkkH1
Linuxでベースクラスで持たせてて元の型にキャストしてたりする?
438デフォルトの名無しさん
2018/07/30(月) 08:41:35.39ID:qnQc5JET
C++で今まで作ったものってなんですか?
自分はとにかく競プロしかしてないので、なにか作りたいんですけどC++という言語でしかできないことがあまり思いつかなくて
439デフォルトの名無しさん
2018/07/30(月) 08:51:39.47ID:yNVCdeG4
>>438
言語処理系はCで書くより楽だよ
440デフォルトの名無しさん
2018/07/30(月) 08:56:56.06ID:qnQc5JET
>>439
ありがとうございます!
系統で答えてもらって助かります
441はちみつ餃子 ◆8X2XSCHEME
2018/07/30(月) 14:21:10.33ID:pFBrx3WW
>>438
「できること」という意味では C と大差ないわ。
でも、プログラムの部品 (ライブラリ) に高度な抽象化を被せることが出来る。
要するに高レイヤでは楽できる可能性が高い。

レイヤを分ける必要もないような小さなプログラムでは
ありがたみを感じにくいかもね。
442デフォルトの名無しさん
2018/07/30(月) 19:42:11.85ID:qnQc5JET
>>441
ありがとうございます
確かにC++はそういう要素大きいですよね!
そこがいい部分で好きなんですけど、やっぱり難しい部分ですよね
443デフォルトの名無しさん
2018/07/30(月) 21:47:15.09ID:hbo0m8kQ
上のほうで、唇がメンタイコの欲深そうなのがいるな。

2chに引っ込んでいろや。屑が
444デフォルトの名無しさん
2018/07/31(火) 20:27:14.08ID:jvSfH+BG
たらこじゃなくてか。
445デフォルトの名無しさん
2018/07/31(火) 21:48:26.82ID:f0EnkAzQ
明太子はたらこのこと
唐辛子を塗したやつは辛子明太子
446デフォルトの名無しさん
2018/07/31(火) 22:24:08.58ID:jvSfH+BG
そっかw
素で辛子明太子と間違えたわ。
447デフォルトの名無しさん
2018/08/01(水) 00:24:00.80ID:VquDbSfz
アルゴリズム辞典みたいなものを手元に置いときたいんだが、最も支持されてるのってどれ?


・網羅性が高い
・支持されている(売れている)
・日本語版がある
・コード例はあってもなくても良くて、あるとしたら C/C++ か擬似コードで
という条件で
テーマ別に「どれとどれとどれを持っとけばまず問題ない」という言い方でもありがたい
とにかく網羅性を重視してる
448デフォルトの名無しさん
2018/08/01(水) 00:35:56.57ID:/iJJIMGp
会社でC++書くことになったんですがコードが(ダブル)ポインタの嵐で読みにくいことこの上なくて辛いです
他にもstring使わずにchar配列だったり、vector使わずに配列だったり
Cのスタイルで書ける部分はできるだけCのスタイルで書くほうがやはり好まれるものなのでしょうか
前に個人でちょろっと書いたときはもうポインタ使わなくて済むならできるだけ使わないように!なんて思いながら書いてたんですが
449デフォルトの名無しさん
2018/08/01(水) 00:42:34.65ID:hfBYO5dB
色々な事情があるのかも

Cからの移植とか

小規模だとヒープはトラブルの元なので極力使わないとか
そもそもヒープが無いとか
450デフォルトの名無しさん
2018/08/01(水) 00:56:47.14ID:8dN6QsuX
>>448
ポインタ使わなくてもイテレータの嵐を渡り歩いたり
スマートポインタが何をしているのかを理解するには
ポインタを使う場合のノウハウ知識が必須だよ

stringやvectorを避けている箇所にはそれなりの理由があるから
極力思い込みを排除して状況をよく見たほうがいい
451デフォルトの名無しさん
2018/08/01(水) 01:01:22.52ID:uLizLGZM
>>447

合計\7,000--

珠玉のプログラミング 本質を見抜いたアルゴリズムとデータ構造 | ジョン・ベントリー, 小林 健一郎 |本 | 通販 | Amazon
https://www.amazon.co.jp/dp/4621066072

O'Reilly Japan - アルゴリズムクイックリファレンス 第2版
https://www.oreilly.co.jp/books/9784873117850/

C言語による最新アルゴリズム事典の詳細情報 : Vector ソフトを探す!
https://www.vector.co.jp/soft/data/prog/se002453.html
452デフォルトの名無しさん
2018/08/01(水) 02:12:56.94ID:VquDbSfz
>>451
ありがとうございます。
最初のも辞典的なものなんでしょうか。

複数冊持つならばテーマ毎が良いかなとも思いましたが、特定のテーマに集中したものだと翻訳されているものが少ないのかもしれませんね。
2つ目と3つ目が部分的に補完しあっていることを期待して、両者とも購入しようかと思います。
453デフォルトの名無しさん
2018/08/01(水) 02:19:31.07ID:Bdxs44t0
the art of computer programming
numerical recipes

コレしかないわ
454はちみつ餃子 ◆8X2XSCHEME
2018/08/01(水) 02:25:19.38ID:oNWxQcbM
>>451
「C言語による最新アルゴリズム事典」はこないだ改定されて「C言語による標準アルゴリズム事典」という表題で売ってるぞ。
http://amzn.asia/cgZYRrQ
ロングセラーになりすぎたせいで「いつまで最新やねん」というのは常々言われづづけてたからなぁ。
455デフォルトの名無しさん
2018/08/01(水) 02:49:17.77ID:GZaAdjmn
>>448-450
多分そいつは、Scott Meyers を知らないし、
ほとんどの言語に「Effective 何々」があることも知らないのだろうw

そいつに、Scott Meyers を知っていますかって聞けば?
プロで、江添亮とかScott Meyers を知らん奴は、いない
456デフォルトの名無しさん
2018/08/01(水) 06:52:26.90ID:l9oYGZY2
会社に対してそいつ?
457デフォルトの名無しさん
2018/08/01(水) 07:00:43.17ID:0Pfosj1X
stringやvectorはヒープなので、呼び出し回数の多い関数で毎回インスタンスを作る場合は処理時間に注意したいところ。
458はちみつ餃子 ◆8X2XSCHEME
2018/08/01(水) 07:02:13.71ID:oNWxQcbM
まあ状況によるわなー。
後から伸長 (または縮小) が必要ないような固定長のデータを std::vector に入れるのは豪華すぎるので、
避けれるなら避けたいということは有りうる。

それでも今どきなら std::array を使って欲しいけど、
古いプログラムをツギハギしながら使ってるような場合にはなかなかそうもいかない事情があるのかもしれん。

単純には判断できないので、わかんないことはそれを書いてるやつに聞けとしか言いようがないんじゃない?
459デフォルトの名無しさん
2018/08/01(水) 07:40:49.09ID:OccwPm6d
stl使うと同バージョンのライブラリを実行環境にインストールするという考慮も増える
460デフォルトの名無しさん
2018/08/01(水) 07:53:02.77ID:hfBYO5dB
えっ?
何か勘違いしてないか?
461デフォルトの名無しさん
2018/08/01(水) 18:55:57.40ID:4hR5DucF
やっぱり通になると、明太子ひとつ、辛子抜きで・・・とか注文するんだろな。
462 ◆QZaw55cn4c
2018/08/01(水) 19:05:43.34ID:6NCuGzpD
>>447
https://www.amazon.co.jp/dp/4774196908
今年になって改訂版が出たらしい、だれかレビュー頼みます
463デフォルトの名無しさん
2018/08/01(水) 19:11:49.62ID:a1G0tkY3
>>462
第2刷買ったっけな。役に立ったと思う。
464デフォルトの名無しさん
2018/08/01(水) 19:41:42.72ID:7TmTR3QV
>>462
板を荒らすのやめろよ
465デフォルトの名無しさん
2018/08/01(水) 20:37:51.59ID:/iJJIMGp
ポインタの件ですが参考になりました。まぁこっちはほぼ初心者で相手はベテランの上司なので何も言えない聞けないってとこですね
stackoverflowとか読んで生ポインタあんま使うなスマポ使えオブジェクト使えるときは使えみたいなこと書いてあるの見るとこれでいいのかなって思いますねええ
466はちみつ餃子 ◆8X2XSCHEME
2018/08/01(水) 23:13:55.56ID:oNWxQcbM
std::unique_ptr は実行時の速度ペナルティもほとんどないので、避ける理由はあんまりないよな。
例外がとんだ時のロールバックについても面倒なことを考えなくて良いし。
467デフォルトの名無しさん
2018/08/01(水) 23:34:41.68ID:GZaAdjmn
たぶん、Scott Meyers とか「Effective 何々」とか、知らんのだろ

たぶん正常に動作する、過去の資産を持っていて、それをコピーして使う作り方なのかも

現場でよくあるのは、サンプル欲しいと言うと、過去のソースコードを持ってきて、
これは動くから、そのままコピーして使って下さいと言われる

新しい事をしようと思うと、環境構築やらで、動かない部分が出てくるので、非常に面倒

それに過去のソースコードは、あちこちで使われているから、バグが少ないという実績があるけど、
新しく作ったものは、バグ出しが大変。
安定するまで、かなりの期間が必要

よほどの理由がない限り、新しく作らない
468デフォルトの名無しさん
2018/08/02(木) 03:53:49.14ID:iSPNCiYK
>>451
どれか一つで良くね
ほとんど被ってるっしょ
あえて選ぶならアルゴリズムクイックリファレンス

網羅性ってヤツを追及するなら、同じようなもんいくつも買うんじゃなくて自分で言ってるようにテーマに特化したものを買うしかない
名前忘れたけど文字列アルゴリズムのアレとか
469はちみつ餃子 ◆8X2XSCHEME
2018/08/02(木) 06:10:43.23ID:ksgx4qMg
>>447
Knuth の 「The Art of Computer Programming」もその条件に当てはまると思う。
470デフォルトの名無しさん
2018/08/02(木) 07:12:52.80ID:NSwKZwuS
圧縮アルゴリズムなんか、本で憶えたんじゃなく
FAXだとかモデムみたいな具体的なブツで憶えたな

その他のアルゴリズムも単行本より雑誌で
憶えたのが多いし
471デフォルトの名無しさん
2018/08/02(木) 10:20:23.60ID:KhTk1OQU
そのあたりのアルゴリズムはCマガで覚えた
472デフォルトの名無しさん
2018/08/02(木) 10:41:45.24ID:zFALVR92
>>468

これ?

高速文字列解析の世界――データ圧縮・全文検索・テキストマイニング (確率と情報の科学) | 岡野原 大輔 |本 | 通販 | Amazon
https://www.amazon.co.jp/dp/4000069748

「高速文字列解析の世界」サポートページ - daisuke.okanohara
https://sites.google.com/site/daisukeokanohara/iwanami_string_world
473デフォルトの名無しさん
2018/08/02(木) 11:27:51.52ID:KhTk1OQU
そのジャンルは大体の場合は条件固定じゃないからツール類を使ったほうがいい
474デフォルトの名無しさん
2018/08/02(木) 17:47:42.68ID:QC+SfWnq
>>447,451,468
蟻本の参考文献揃えるのがおすすめ
475デフォルトの名無しさん
2018/08/02(木) 17:50:02.28ID:QC+SfWnq
って思って確認したらそんな良くなかったスマン
476 ◆QZaw55cn4c
2018/08/02(木) 19:12:17.99ID:hFhSdR7O
>>470
文書圧縮について手元に置いていつも参照しているのは
https://www.amazon.co.jp/dp/478983672X/
今は、jpg の本が欲しいと思っていますが、なにかいいのはありますか?
477デフォルトの名無しさん
2018/08/02(木) 19:38:11.37ID:nAUx6Lke
C++極めたいんだけど、どうすれば極められる?
仕事はJavaScriptが主です
今はアルゴリズムの本読んでるのですが、個人的にはC++ドラフトの間違いを指摘できるレベルになりたいです
478デフォルトの名無しさん
2018/08/02(木) 19:48:55.00ID:1EegAYN5
そんな事を人に聞いてる様じゃ一生無理
479デフォルトの名無しさん
2018/08/02(木) 19:57:10.95ID:Ro0F3mb9
>>477
oracle Solaris Studio の開発者になるとか
ホワイトスミスに弟子入りするとか
じゃね?
480デフォルトの名無しさん
2018/08/02(木) 20:52:27.89ID:jf+aoeV/
>>478
いや実際C++使ってる職場少ないし、どうやってレベルを上げればいいのか分からん
オープンソースを読むくらいしか思いつかない
>>479
ジョークはいい
481デフォルトの名無しさん
2018/08/02(木) 21:22:49.70ID:EkY0QbOC
コンパイラ読めないと話にならんのじゃないか?
482デフォルトの名無しさん
2018/08/02(木) 21:53:24.64ID:0KRWeg2T
>>480
職場に何を頼るの?
483デフォルトの名無しさん
2018/08/02(木) 22:18:49.50ID:NSwKZwuS
>>476
jpegが赤に弱いなんてのも
ギョーカイの人とのおつきあいで
ホーソレデ氏になった
484デフォルトの名無しさん
2018/08/02(木) 22:24:42.73ID:Ar8oKNDv
>>480
読んでばかりじゃなくて自発的に自分で実際に書いてみないことには、いつまでたってもたいして身に付かないだろう。
極めたいなら、言語仕様の一つ一つを実際に使ってみて具体的に役立つケースや制限、制約、限界を体感して、メリットデメリットを洗い出すくらいのつもりで試してみたら?
485デフォルトの名無しさん
2018/08/02(木) 23:26:26.75ID:jf+aoeV/
>>482
嫌‥
>>484の言うとおり実践的な立場かな
>>484
それはもちろん分かる
486デフォルトの名無しさん
2018/08/03(金) 02:17:39.89ID:gpdbLiuq
>>485
まずは仕事で使う自作ツールをC++で書くとか
千里の道も一歩から
487デフォルトの名無しさん
2018/08/03(金) 02:23:34.66ID:Ja3muTb1
自作ツールはまず、スクリプト言語でやってみて、速度面などで不満があった時だけC・C++に置き換えるのがいいと思うけどどうなの。
スクリプト言語とコンパイル言語の使い分けを覚える良い機会になる。
488デフォルトの名無しさん
2018/08/03(金) 02:28:52.17ID:gpdbLiuq
>>487
目的が自作ツールを作ることならそれで間違ってないが
C++を極めることが目的みたいよ
489デフォルトの名無しさん
2018/08/03(金) 07:41:26.05ID:jYMqs03L
極めると言うても、次の規格が出たらもう過去の知識だし、
いくら頑張っても到達できないゴールのような気がするなぁ。
規格を作る側に入り込めるなら話は違うかも知れんが。

C++は、自分より後ろにいる人をバカにするのが好きな人も多い感じだけど、
「そんな奴にはならん方がええ」
490はちみつ餃子 ◆8X2XSCHEME
2018/08/03(金) 08:11:10.53ID:KKWcqInB
ある程度の言語機能しか使わない範囲でも使い物になるように C++ は設計されてる。
ある程度を学めばその範囲内でも実務に使える。
もちろん深い理解があればプログラムをよりよく構成できるので、
実務に使いながら平行して段階的に学ぶということが出来る。
このことは設計者が著した D&E に書かれてる基礎理念のひとつだ。

地に足の着いた、現実的なものとして設計されてるんだよ。
だから、言語としての C++ だけに偏って学ぶのはお勧めできない。
言語として不格好な部分も現実の中では相応の合理性があったりして、
それを学習するのに適しているのは現実のプログラミングだと思う。

ただ、余談だけど、段階的に学べるようにというのはスタート地点として C を想定しているように思う。
C が当然の基礎知識としてあった時代には
そこからシームレスに C++ を学んでいけるように設計するのは妥当な選択だったかもしれないが、
今の時代には C++ の中の C の部分は色々と足を引っ張ってもいるので
歴史が長いと泥臭い部分も積み重なっていくものだなぁと思いました。 (小並感)
491デフォルトの名無しさん
2018/08/03(金) 10:14:53.94ID:lq/KEYA1
20年近く使ってるけど、ドラフトとか目にしても
「こんな機能来るんや!」ってwktkするだけだな
規格を知ってれば極めてる、みたいな風潮が最近あるけど間違いやで
言語はあくまで道具だから使ってなんぼ
492デフォルトの名無しさん
2018/08/03(金) 10:29:03.00ID:cfhQf2V5
みんな深いレスありがとう
ただ自分はどうしても諦めきれないので、仕事以外の時間は、C++に関するサイトや書籍やコーディングに費やすことになると思う
Pythonは学ぼうとは思ってるけどね
493デフォルトの名無しさん
2018/08/03(金) 10:49:41.39ID:TY6Sib0f
https://github.com/python/cpython/tree/master/Python

今ならpythonのソースコードもオマケで学べるよ
494デフォルトの名無しさん
2018/08/03(金) 12:16:04.74ID:cfhQf2V5
>>493
ありがとう
こういうのはいいですね
495デフォルトの名無しさん
2018/08/03(金) 15:41:42.81ID:Ja3muTb1
スクリプト言語には、ハッシュテーブルやディクショナリなどと呼ばれるキーと値の組を保存するコンテナ機能が存在する。
一般に高速とされるC++だが、実は、ハッシュテーブルだけはスクリプト言語の方がアクセス速度が速かった。
ただし、C++におけるstd::mapだけがハッシュテーブルに該当した頃の話。

今は、std::unordered_mapがあるのでスクリプト言語と同等以上の速度でハッシュテーブルにアクセス可能になっている。
496デフォルトの名無しさん
2018/08/03(金) 18:32:37.47ID:j4paKoWq
mapはハッシュテーブルに該当しないだろ。
そういうときは辞書とかマップとか連想配列とかと呼ぶべきだ。
497デフォルトの名無しさん
2018/08/03(金) 18:52:42.14ID:9KGEdKKU
mapは連想コンテナだが
498デフォルトの名無しさん
2018/08/03(金) 19:03:27.95ID:j4paKoWq
ハッシュテーブルじゃない
499デフォルトの名無しさん
2018/08/03(金) 23:13:28.65ID: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()コピペで!
→これはまあ論外かな、時間が全くないときの最終手段
500デフォルトの名無しさん
2018/08/03(金) 23:20:08.01ID:cWBuX5k9
Child3をChild2の子にすれば?
501デフォルトの名無しさん
2018/08/03(金) 23:22:51.86ID:Ja3muTb1
共通処理を継承関係と無縁なtemplate関数にできないか検討してみては?
502デフォルトの名無しさん
2018/08/03(金) 23:26:40.59ID:Xb0+UQnK
>>500
それは多分なんらか整列の問題でやりたくないんだと推測
俺なら4かな・・・
503デフォルトの名無しさん
2018/08/03(金) 23:28:34.49ID:Xb0+UQnK
4の改良?として
実装ファイルの無名スコープにvoid method1(const Parent& p)かな
504デフォルトの名無しさん
2018/08/03(金) 23:36:56.13ID:xr+Hum6X
派生させるんじゃなくてメソッドの処理を別クラスにして移譲させるんじゃないの?
505デフォルトの名無しさん
2018/08/04(土) 00:12:06.53ID:AH7fLvgn
>>499
> 実装のために継承関係を作るのはあまりよくない気がする
と言いつつ
> 親クラスに共通メソッドを作って、Child2::method1()とChild3::method1()はそれを呼ぶ
とか意味わからん
全然関係ないのにたまたま一緒になったと言うなら
> しゃーないChild2::method1()コピペで!
しかないと思うが
506デフォルトの名無しさん
2018/08/04(土) 00:38:11.84ID:hQAAmMi0
コーディング規約で、引数や戻り値に参照型は使うな。わかりにくくなるから。ポインタで渡してポインタで返せ
ってことになってるんですけどこれ一般的な考え方なんですかね。生ポインタ使いまくりの方がよっぽどわかりにくいと思うんですけど
507デフォルトの名無しさん
2018/08/04(土) 00:53:09.47ID:CpwGeL+S
そんなことよりメソッドでクラスのインスタンスが変更されない場合
そのメソッドにちゃんとconstつけろよ

引数でクラス使う場合も、そのクラスのインスタンスが変更されない場合
その引数にちゃんとconstつけろよ

わかった?
508デフォルトの名無しさん
2018/08/04(土) 00:58:03.49ID:0clFfLhT
>>506
言ってることがわからなくはないが一般的ではないと思う
むしろ参照のほうが一般的な気がするな
509デフォルトの名無しさん
2018/08/04(土) 01:05:30.18ID:Xh+3QD0k
引数については、読み書きする引数は注意をひくためにポインタ渡しにして、読み取りだけの引数は参照渡しにするといいのでは。
戻り値については、失敗したことを意味するNULLを使えるのでポインタのほうがうれしいかも。
510デフォルトの名無しさん
2018/08/04(土) 01:06:58.94ID:QByQ49xB
>>499
execute が virtual でないってことは
Parentを基底にしてコレクションしなくてもいいってことでOK?

>>501 の言うように template で mixin 的に書いたら こんな感じになったー
https://ideone.com/CcRHnO
ChildがKlassになって兄弟関係がなくなってる
511デフォルトの名無しさん
2018/08/04(土) 01:12:24.24ID:CpwGeL+S
戻り値なんか全部intでいい
0未満ならすべて一貫してすべてエラー
失敗がありえないブーリアンだけはかろうじてあり

引数をポインタで渡せないとNULLを渡して処理したい場合の処理ができない
そういうとき困るから全部ポインタで
512デフォルトの名無しさん
2018/08/04(土) 05:12:55.60ID:iUNKVgUH
素人ばっかりかw
「More Effective C++」の項目1 だろ

Effectiveも読んでいない奴が、プログラミングやってるのが不思議。
どの言語でも、Effectiveは、入門書の次に読む本やぞ

参照は、確実にNULL じゃない場合。
また、参照に再代入はしない事
513デフォルトの名無しさん
2018/08/04(土) 05:25:27.41ID:YA1hWK5Y
HRESULTも知らないヒヨッ子がいきってるな
514デフォルトの名無しさん
2018/08/04(土) 06:40:25.30ID:O/qEXyQX
参照に再代入ってどうやんの
515デフォルトの名無しさん
2018/08/04(土) 07:29:12.24ID:o+LfwS0J
cからのコードが多い場合は統一のために参照渡しにしないってのはあるかな。
516デフォルトの名無しさん
2018/08/04(土) 07:33:54.06ID:YA1hWK5Y
extern "C"に参照渡しなんかするかよ
517デフォルトの名無しさん
2018/08/04(土) 07:42:44.96ID:Xh+3QD0k
たかが参照にストレスを感じるようになったら、C/C++プログラマをやめた方がいい。引退時。
518デフォルトの名無しさん
2018/08/04(土) 08:00:44.90ID:mQQzn2Q+
>>506
C++を知らない老害が自分の為に決めた規約
積極的に逆らおう
519デフォルトの名無しさん
2018/08/04(土) 08:29:49.29ID:Xh+3QD0k
私見を言わせてもらうと、多様性を受け入れ状況に合わせて柔軟に合わせていくのもプログラマあるいは技術者の重要なスキルなので、
一神教的な偏狭な人は若年性認知症とまで言ってのける気はないがかなり情報処理能力が低くなっているはずなので、プログラミングをやめた方がいい。
520デフォルトの名無しさん
2018/08/04(土) 09:34:28.56ID:0uMuTyGR
プログラミングがどうこういうより国語を勉強しろ。
521デフォルトの名無しさん
2018/08/04(土) 09:35:16.17ID:o+LfwS0J
柔軟なのと規約を決めないのはまた別だけどね。
多様性といって新しい言語使って同じ過ちを繰り返している人を何人も見てると
色々バカバカしくなるってところはある。
老害と同じくらい歴史を見ない若造も有害という現実を見るのも良い。
522デフォルトの名無しさん
2018/08/04(土) 09:50:53.54ID:2dadGiC9
まあ少なくとも>>506が老害であるのは確か
実務経験が少ない若者が多いのも当たり前
523デフォルトの名無しさん
2018/08/04(土) 09:53:11.49ID:F7vd0ILk
老害なんて言っている奴、10年後に自分がそう呼ばれるって事気がついてないのかな・・・
524デフォルトの名無しさん
2018/08/04(土) 09:55:58.68ID:2dadGiC9
老人全てが老害になるわけではない
害があるから老害と呼ばれる
525デフォルトの名無しさん
2018/08/04(土) 09:59:13.29ID:2dadGiC9
>>521
歴史?

過去発生した問題点や注意点を伝えるのは上司や先輩の役目

言語自体の歴史、CPU自体の歴史なんか
興味があるヤツだけ勉強すれば良い
526デフォルトの名無しさん
2018/08/04(土) 10:02:32.30ID:F7vd0ILk
数人のグループで開発しているなら、あえてコーディング規約を設けずしても出来るだろうが
100人、1000人規模で開発しているなら、工業製品としての品質管理として必要になるでしょう
527デフォルトの名無しさん
2018/08/04(土) 10:03:35.96ID:pDxZw3/e
>>525
ぼくがしらないのはまわりがおしえないから
さすがゆとり
528デフォルトの名無しさん
2018/08/04(土) 10:08:29.90ID:2dadGiC9
ん?
おれは伝える側の人間だが
529デフォルトの名無しさん
2018/08/04(土) 10:11:50.81ID:2dadGiC9
100人規模1000人規模のソフト開発で
若者に言語の決定権があるってのは
すごい会社だね
530デフォルトの名無しさん
2018/08/04(土) 10:20:39.15ID:+vznLLf6
おかしくはない

好きにやれ動くブツだけもってこい
531デフォルトの名無しさん
2018/08/04(土) 10:27:14.97ID:UzBGgsy3
いや別に好きにすればいいとは思うのだが
勝手に自分で選んだ言語固有の問題にぶち当たって
人に泣きつくなっつー馬鹿みたいな話があまりに多いんで。
>>525
まともに聞いてくれれば問題ない。
532デフォルトの名無しさん
2018/08/04(土) 10:54:42.16ID:VXqPvtUW
出来たばかりの最新規格の機能ならともかく
C++98以前からずーっとある言語の基本機能を大した理由もなく縛ってるのは阿呆でしょ
(「大した理由」があるなら縛ってもいいのよ、本当に大した理由ならな)
533デフォルトの名無しさん
2018/08/04(土) 11:09:59.74ID:9+U//wQd
>>460
横だがDLLにstd::stringとかSTLのオブジェクトを渡したり返したりする設計ェ、、、
std::string程度なら現実には動くが、STLの内部動作のバージョン間の整合を誰も保証してくれない以上、
そういう設計をされるともはや誰も動作を保証できなくなる

STLに限らずOpenCVやCRT絡みのオブジェクトでもそう、
というわけでこういうライブラリのバージョンの統一を担保できない状況ではchar[]の登場と相成りぬ、
534デフォルトの名無しさん
2018/08/04(土) 11:20:42.46ID:Xh+3QD0k
char[]を使う関数をDLLにして、その関数をstd::string版関数オーバーロード的なラッパーをヘッダーに記述するでしょ、普通。
というか、std::string専用である必要はなく、template関数にしとけばSTLportだろうかstdだろうかEASTLだろうが対応可能になる。
535はちみつ餃子 ◆8X2XSCHEME
2018/08/04(土) 11:23:58.97ID:SzDDeCK/
バイナリでの保証を考えると STL を使いにくいってのは確かにあるよな。
COM のような形式を使えばオブジェクト指向をバイナリレベルで管理することも出来るが、
それはそれで別の規約に縛られてしまうわけで。

どんな規約にするにせよ不満は有るよ。
一貫した規約が無い不満よりは規約に不満を持つ方がマシな世界になりがちなのが現実。
536デフォルトの名無しさん
2018/08/04(土) 11:33:14.55ID:CpwGeL+S
そんなもん文字列のポインタ渡せばしまい
頭悪いのって悩む必要がないどーでもいい事で悩むからな

それぞれの完結したモジュールでどのバージョンのSTL使おうが関係ないからな

string ahoをaho.c_str()で渡すだけ
537デフォルトの名無しさん
2018/08/04(土) 11:50:08.73ID:9+U//wQd
>>534
ワカル
それは全く普通の設計でおすなあ、
538デフォルトの名無しさん
2018/08/04(土) 11:54:01.62ID:CpwGeL+S
頭悪いシロウトほど可変長の文字列クラスをいちいち使いたがるからな
539デフォルトの名無しさん
2018/08/04(土) 11:57:27.88ID:CpwGeL+S
もしかしてvectorとかもいちいち自分で全部ラップしってんの
とにかく頭が悪すぎるわ
540デフォルトの名無しさん
2018/08/04(土) 11:59:57.25ID:9+U//wQd
ここで問題なのは可変長の文字列クラスを使いたがる類の素人なのではなくて、
DLLのcallerとcalleeでSTLやCRTのバージョン相違しているケースを想像できない類の素人なのでは…
541デフォルトの名無しさん
2018/08/04(土) 12:07:08.58ID: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_) {
}

なにが問題になるわけ?
もうね知恵遅れのいうことは意味が分からないわけ
542デフォルトの名無しさん
2018/08/04(土) 12:08:24.92ID:73YctOjT
>>484
極めて同意
仕事だと、過去のしがらみや、コーディングルール等に縛られて、思い通りにできない。
自分で地道に実験してゆくしかない
543デフォルトの名無しさん
2018/08/04(土) 12:16:41.91ID:9+U//wQd
いやほんと
呼び出し元と同じ完結したモジュール内で定義された関数にはconst std::string& ahoやconst std::vector &vecで渡し、
DLLで定義された関数にはaho.c_str()や&(vec[0])で渡す、と区別すればwrapperは要りませんなあ、
いやはや>>541は便利なやり方をいろいろご存知ですなあ、、
544 ◆QZaw55cn4c
2018/08/04(土) 12:54:24.58ID:Rdsot1y5
>>519
「〜なので、〜なので、○○だ」
読んでとまどいを覚える日本語文ですね
545 ◆QZaw55cn4c
2018/08/04(土) 12:56:26.35ID:Rdsot1y5
>>532
K&R2 の世界の人にとっては、十分に未知な領域なのでしょう…
私は K&R2 自体がすでに「堕落したもの」と考えております
546デフォルトの名無しさん
2018/08/04(土) 13:59:14.93ID:f+sj1d72
>>506
某エディタにこの宗教にご執心の開発者がいるな
547デフォルトの名無しさん
2018/08/04(土) 18:05:43.06ID:Xh+3QD0k
ポリモーフィズム(多態性)を可読性を下げる欠点ではなく、可読性を上げる長所と考えるのがC++プログラマとしての信仰の基本なので、
様々な記述方法を許す多態性を嫌うのなら、C++を棄教せねばならないでしょう。
演算子オーバーロードを耐えられる情報処理能力があるなら、参照渡しにも耐えられるはずで、参照渡しだけ目の敵にするのはただの原理主義ですね。
548デフォルトの名無しさん
2018/08/04(土) 18:58:53.47ID:YA1hWK5Y
原理主義なんて高尚なもんじゃなくただのバカ
549デフォルトの名無しさん
2018/08/04(土) 20:01:37.83ID:5qDWXahz
>>547
なのでなのでは?
550はちみつ餃子 ◆8X2XSCHEME
2018/08/05(日) 00:20:51.12ID:Sl8YWqHi
>>547
言葉のニュアンス的には原理主義というより教条主義と言った方がこの場合は近いかも
551デフォルトの名無しさん
2018/08/05(日) 05:07:56.69ID:xG+zmDln
だれかたすけてください。
https://dotup.org/uploda/dotup.org1602882.zip
こういうプロジェクトを作ったんですよ。
一応、ゲームっぽいものですが本質はそこじゃなくて。
えーっと、前方参照の解決がよくわからないので直し方教えてください。
普段小さなコードしか扱ってないのでソース分割あまりしないのでわけがわかりません。
コンパイルが通るにはどうしたらよいでしょうか。

お願いします。
552デフォルトの名無しさん
2018/08/05(日) 08:56:46.93ID:WhsUmrtL
ツッコミどころはいっぱいあるけど
とりあえずGameIssue.hの中でRougeStageの定義が見えてないからincludeしろ
553 ◆QZaw55cn4c
2018/08/05(日) 17:21:41.90ID:JAQP+wl+
>>506
http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html
「変数を参照しているのか逆参照しているのかがいつもわからなくなる、だから必ずポインタを使う。アスタリスクが思い出させてくれるから」

C++ の参照は、呼び出し元の記述では参照として渡しているつもりなのか、実体を渡しているのかは区別できず、
呼び出し先の宣言で、はじめて参照か実体かがわかるんですね

個人的には C# のように、呼び出し側でも参照渡しを明示するのがスマートだと思います
そのコーディング規約は良心的だと思います
554デフォルトの名無しさん
2018/08/05(日) 17:44:24.77ID:kXrZdLCy
>>553
参照渡しを明示、とは具体的にどんな方法でしょう?
555デフォルトの名無しさん
2018/08/05(日) 17:48:52.51ID:3KDX12Zf
ref とかoutとかじゃね?
556 ◆QZaw55cn4c
2018/08/05(日) 17:55:52.90ID:JAQP+wl+
>>554
https://ideone.com/FMEesh
呼び出し側にもキーワード "ref" を記述します
557デフォルトの名無しさん
2018/08/05(日) 18:07:51.68ID:lZNE8En/
ゲーム的にはコレか?

Rog-O-Matic - Wikipedia
https://en.wikipedia.org/wiki/Rog-O-Matic
558デフォルトの名無しさん
2018/08/05(日) 18:26:33.87ID:kXrZdLCy
>>556
C#ではなくC++での方法を聞きたかったのですが (^_^;)
559デフォルトの名無しさん
2018/08/05(日) 18:32:14.36ID:yKLkGD1M
>>506
constなしで参照渡しするなっていうコーディング規約ならgoogleも採用してるよ
560デフォルトの名無しさん
2018/08/05(日) 18:34:25.86ID:QdoPuPH9
立てました。移動はご自由に。

C++相談室 part138
http://2chb.net/r/tech/1533459756/
561デフォルトの名無しさん
2018/08/05(日) 18:35:44.95ID:C8NdcnMU
>>558
お前はC++とかより日本語の勉強しなよ…
562デフォルトの名無しさん
2018/08/05(日) 18:56:17.20ID:K/INtz2h
単純にc++だけで閉じてれば参照で統一ってのもありだろうけれど
c++ってそういう言語じゃないんだよね。
大抵大規模なコードは過去のcソースとごっちゃになってる。
563デフォルトの名無しさん
2018/08/05(日) 19:04:35.58ID:lZNE8En/
>>551
まずは非常にどうでもいいことだが、AddBug(SharedItem I) こういうモノがあると非常に縁起が悪い

他、小姑みたいなスペルミスの指摘は以下

Sheld盾の綴りはshield (Fieldと同じ原理)
Acsessとaccess、
CollectoerとCollector
TyleとTile
InfmationとMakeTemporaryInfomationとinformation
Initilaize、Initialize
PraramA、parameterA

RougeStage.hとRogue
564デフォルトの名無しさん
2018/08/05(日) 22:24:16.29ID: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個定義されているのでどちらかを消す。
565551
2018/08/05(日) 23:51:00.40ID:xG+zmDln
こんにちは。色々ご指摘ありがとうございます。
これまだ、脳内コーディングでシステム組んだだけでコンパイルが通って無いように、デバッグさえしてません。
なんとなーく、ローグのAI書いたら面白いんじゃないかと思って書き始めたのですが、沼にハマってしまいました。
とりあえず、前方参照の件は解決したみたいです。
その後大量のエラーと格闘していますが、支離滅裂なエラー(?)が大量に出ていて吐きそうです。

とりあえず、この件については閉めます。
ありがとうございました。
566デフォルトの名無しさん
2018/08/06(月) 00:29:53.59ID:b7eNDjo0
>>553-556
/* ref */

引数内で、コメントを使えば?
567デフォルトの名無しさん
2018/08/06(月) 04:28:30.45ID:EZAi1/yQ
>>559
templateの右辺値参照もダメとか
さすがに修正が必要だな
568デフォルトの名無しさん
2018/08/06(月) 11:34:49.72ID:aJPEpevk
>>567
別の項にmoveコンストラクタ、move代入演算子、perfect forwardingするときは右辺値参照使ってええよって書いてあるから、右辺値参照は対象外なんだと思う。

>>565
できたら遊ばせてねー
569デフォルトの名無しさん
2018/08/06(月) 12:01:58.56ID:aJPEpevk
aiでautoってことは遊ぶんじゃなくて遊ばれちゃうのか…
570デフォルトの名無しさん
2018/08/06(月) 13:00:05.48ID:6LLA+7Q/
Googleコーディング規約は古臭くてオワコンだからみんなはISOで作ってる規約を使おうね!
って禿先生が講演で言ってた
571551
2018/08/06(月) 18:02:56.58ID:L/6qyfUO
>>596
ステージ生成してAIに解いてもらおうと。
そのAI書かないといけないんですけどね。
572デフォルトの名無しさん
2018/08/06(月) 18:04:44.92ID:L/6qyfUO
しかし、ロジカルなことしたいのに、それ以外のエラーで死にかけるのは困ったなぁ。。。
573デフォルトの名無しさん
2018/08/06(月) 18:26:13.93ID:0lSQ8xAg
>>572
アルゴリズムの間違いの発見や修正に比べたら、コンパイルエラーの解消なんてコンパイラさんが親切に教えてくれてるんだから、簡単なことだよ。
ロジカルなことしたいなら、コードの記述もロジカルに頑張れ
574デフォルトの名無しさん
2018/08/06(月) 19:18:24.62ID:L/6qyfUO
はい。がんばります。
575デフォルトの名無しさん
2018/08/06(月) 19:34:04.04ID:ykSda89u
>>570
今現在コード書いてないオワコン禿げのいう事のが信用ねーわ。
江添とかも同類。
コードをまともに書いてないやつが言語仕様決めてるってのがc++のクソなところ。
576デフォルトの名無しさん
2018/08/06(月) 19:45:02.37ID:Xt7Beabr
>>575
コードがマトモに書ける人は書く方が忙しいので仕様どころではないって割とありそう
577 ◆QZaw55cn4c
2018/08/06(月) 22:20:17.51ID:zDoA3miN
ryzen threadripper 2950X 16C32T 3.5GHz〜4.4GHz !!
なんだか最近急にすごくなっていませんか?
578デフォルトの名無しさん
2018/08/06(月) 23:09:33.16ID:L/6qyfUO
今までのAMDが怠けてただけだよ!
579デフォルトの名無しさん
2018/08/06(月) 23:12:22.15ID:zQ2KZFwb
floatのゼロ割りって、infになるものの、別にそれ自体が問題ではなくて、
それがクラッシュに繋がるような演算を行うことが問題であって、
例えば条件分岐で一定の大きさ以下の場合のみ参照するようにしているなら問題ないですよね?
580デフォルトの名無しさん
2018/08/06(月) 23:30:48.85ID:Xt7Beabr
ゼロで割り算したい意図は?
581デフォルトの名無しさん
2018/08/06(月) 23:38:20.39ID:wPUCa9qR
>>579
うん
>>580
ゼロで割りたいなんて一言も書いてない
582579
2018/08/06(月) 23:40:51.75ID:zQ2KZFwb
>>580
物体の速度なのでゼロのときがあるんです。
例えば、ある距離に到達する時間を求めるとなると、その距離を速度で割るのでゼロ割りがあり得ます。
583579
2018/08/06(月) 23:43:04.07ID:zQ2KZFwb
>>581
ありがとうございます。
ゼロで割ること自体を回避するのって、けっこう厄介なんですよね・・・。
ある程度小さい場合は演算しないとか、どれくらい小さかったらいいの?みたいなことを考えないといけないので・・・。
無限大のときにどうする?という考え方の方が対処し易いように思います。
584デフォルトの名無しさん
2018/08/07(火) 06:50:16.11ID:PssQ1NSH
今Python + Opencvで画像処理をしているのですが、速度の問題でこれをC++に書き換えたいです
Pythonのnumpyみたいなものはc++にも有りますか?
OpencvのMatを(多次元配列に格納するなりして)C++で弄くれると嬉しいのですが
585デフォルトの名無しさん
2018/08/07(火) 07:05:01.46ID:rmdm0Ojo
まずOpenCVはもともとC++で書かれてるライブラリであってPythonのはラッパーだって所から始めようか
586デフォルトの名無しさん
2018/08/07(火) 08:33:46.01ID:dagdXeyj
>>575
めっちゃコード書いてんじゃん
587はちみつ餃子 ◆8X2XSCHEME
2018/08/07(火) 15:24:28.59ID:pMC2Ofi2
江添っちはコード例はたくさん書いてるけど、
アプリケーションとして完成したものはひとつだけしか見たことねぇ。

今はドワンゴにいるし、社内で使うツールを書いたりすることもあるのかなぁ?
588デフォルトの名無しさん
2018/08/07(火) 15:40:59.13ID:3k81+fEr
snprintfには第一引数をNULLにすることで本来何文字の領域があればよかったかを判断できるみたいだけど
wchar_tにはそのようなものはないだろうか?
589デフォルトの名無しさん
2018/08/07(火) 15:59:59.84ID:8+yE0dxd
>>570
もしかして先月の27日、行ってきたの?
590デフォルトの名無しさん
2018/08/07(火) 16:51:22.86ID:rmdm0Ojo
おう行ってきたぞ
内容は知ってる話が多かったけど本人の口から聞けて楽しかった
591デフォルトの名無しさん
2018/08/07(火) 20:17:28.47ID:7soFSQAi
int main(int argc, char** argv)
このchar**って他に変えれたりする?tcharとかwchar_tとか
592さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/08/07(火) 20:20:21.90ID:p+v0mQmH
Win32では、int wmain(int, wchar_t**)に変えられるよ。環境変数の引数も付けるのは変態かも知れん。
593デフォルトの名無しさん
2018/08/07(火) 20:21:20.30ID:7soFSQAi
>>592
wmainになるのね
助かります
594デフォルトの名無しさん
2018/08/07(火) 20:28:56.24ID:rmdm0Ojo
標準で認められてるmain関数はint main();とint main(int argc, char** argv);だけ
それ以外は処理系の独自拡張
595デフォルトの名無しさん
2018/08/07(火) 20:40:16.10ID:8+yE0dxd
>>590
何か変わったこと言ってたらレビューplz
596デフォルトの名無しさん
2018/08/08(水) 00:08:10.74ID:N8tx/Inn
実は宗教的な会合ではなかろうか
教祖もしくは弟子・伝道者・教皇の御言葉を拝聴する、それが宗教だ

現状、全ての教祖・開祖が生きている時代なので、それを感じないだけだ
10年後くらいにはぼつぼつ死にはじめる
そこからが正念場だ

サイモン&ガーファンクルも生きてるし、K&Rも生きてる、ついでに、ビャーネ・ストロヴストルップとかESRも生きてる
21世紀の今がそういう時代というだけだ
597 ◆QZaw55cn4c
2018/08/08(水) 00:15:12.33ID:35SEMuEM
>>596
デニス・リッチーは2011年に亡くなった
598デフォルトの名無しさん
2018/08/08(水) 00:32:10.97ID:bKO8QxvP
イタコがふえるんやなぁ・・・。
599デフォルトの名無しさん
2018/08/08(水) 05:08:18.88ID:d90b/R1Y
宗教だと? 失礼だな
俺は禿を盲信なんかしてねえよ
newなんかいらねえと俺は初版の当時から思っていたし
動的例外指定なんぞISOで否定されてんだぞ
600デフォルトの名無しさん
2018/08/08(水) 05:53:47.96ID:bKO8QxvP
ジェネリックなメモリ確保はどのみち必要だと思うよ。構文がどうであれ。
あと、動的にコンストラクタとか呼ばないといけないし必要だと思うよ。
個人的にnewはライブラリ屋さんが使えばいいものだと思ってる。
601デフォルトの名無しさん
2018/08/08(水) 06:09:55.58ID:d90b/R1Y
placementみたいのがあれば充分
602デフォルトの名無しさん
2018/08/08(水) 06:18:49.25ID:bKO8QxvP
タイプ量増えて嫌カモ。
new T[] ってできるのは結構強いと思う。
まぁ、自分でやる事はないけど。
603デフォルトの名無しさん
2018/08/08(水) 07:00:42.37ID:/7C7gkY0
A, Bそれぞれコンソールアプリケーションで作成
AがBをCreateProcessする状況を作成しました

Aを実行したらBの専用のコマンドプロンプトが立ち上がって次々に処理をするのかな?って思ってたのですが
実際はAが立ち上げたコマンドプロンプトにBも出力などしてます
これ分離することできないのでしょうか
604デフォルトの名無しさん
2018/08/08(水) 07:11:53.05ID:d90b/R1Y
タイプ量って、それは現状の構文での話やん
コンストラクタを実行する構文がたとえば3文字のキーワードでできるなら
その主張は崩れる
605デフォルトの名無しさん
2018/08/08(水) 07:12:46.84ID:HlzHxdvD
startコマンド
606デフォルトの名無しさん
2018/08/08(水) 07:13:58.46ID:EhLv0UZk
CreateProcess で "start cmd /c B.exe" を起動するんじゃだめ?
607デフォルトの名無しさん
2018/08/08(水) 07:16:30.26ID:d90b/R1Y
template <typename T, typename ...ARGS>
T* create(ARGS ...args)
{
auto ptr = (T*)malloc(sizeof(T));
ptr->T(args...);
return ptr;
}
今C++をリメイクするならnewはクビだろ
608デフォルトの名無しさん
2018/08/08(水) 07:29:04.25ID:eb4eIp4R
>>603
AllocConsole
609デフォルトの名無しさん
2018/08/08(水) 08:30:47.37ID:lcYbehB0
メタプログラミングをやってみたいんだけど、テンプレートが中々難しい
みんなどうやって駆使してる?
610デフォルトの名無しさん
2018/08/08(水) 08:31:50.27ID:jzgqxY6J
慣れ
611デフォルトの名無しさん
2018/08/08(水) 12:14:27.90ID:rnBqZLRU
LPCTSTRをマルチバイトでもUnicodeでも対応して文字列操作するコードってどう書けば宜しいのでしょうか
612デフォルトの名無しさん
2018/08/08(水) 12:22:29.48ID:oJrY5QK4
>>611
関数名オーバーロード。それを応用するtemplate。の2つかな。
613さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/08/08(水) 12:22:37.74ID:NS40+Y1c
>>611
まず、#include <tchar.h>。
次にTEXTマクロ、_Tマクロの使い方を学ぶ。
さらに、<tchar.h>を見ながら、文字列関数呼び出しをジェネリックなものに置き換える。
614さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/08/08(水) 12:24:54.57ID:NS40+Y1c
必要に応じて#ifdef UNICODEを使う。
615デフォルトの名無しさん
2018/08/08(水) 14:22:56.63ID:oRJqApyO
>>577
お前は未だにPhenomなんてガラクタ使ってるんだっけ
お前は無職だからそれでも恵まれすぎだけどな
616デフォルトの名無しさん
2018/08/08(水) 14:33:18.94ID:y2s3oWVB
Phenomってガラクタだったんだっけ?
使い始めてそろそろ10年になるが
現在Windows10が動いているけどな
617デフォルトの名無しさん
2018/08/08(水) 17:05:37.41ID:5Rj4GrBF
プログラムの板で、相手の使ってるハードウェアをネタに
悪口を言うのはよろしくないんじゃないか、と思ったけど、
アンカーの先を見たらそうでもないって気になった。

どうやら「固定ハンドルの人への攻撃はルール無用」という
より上位のルールがあるようだ(あくまで個人的な基準)。
618デフォルトの名無しさん
2018/08/08(水) 17:11:27.46ID:7VVPJa90
>>617
ちょっとコテハンつけてくれないか?
619デフォルトの名無しさん
2018/08/08(水) 18:09:52.75ID:d90b/R1Y
5ちゃんから入ったニワカ君だな
コテハン様は名無しより偉いんだよ
失礼のないようにね
620 ◆QZaw55cn4c
2018/08/08(水) 19:20:38.29ID:35SEMuEM
>>615
よく知っているね、phenomIIx6 1090 で粘っていますよ、zen2 7nm にて大人買いしようと資金を積んでいます…
621デフォルトの名無しさん
2018/08/08(水) 19:47:33.67ID:y2s3oWVB
>>620
おれはそのちょっと前のやつ

C++相談室 part137 	->画像>3枚
622 ◆QZaw55cn4c
2018/08/08(水) 20:17:40.85ID:35SEMuEM
>>617
>固定ハンドル
固定ハンドルじゃありません、トリップです!!
623デフォルトの名無しさん
2018/08/08(水) 20:31:08.79ID:foEj61l6
ぬるぽ
624デフォルトの名無しさん
2018/08/08(水) 20:33:39.72ID:y2s3oWVB
トリップ生成の種も後悔されているから、誰でもなりすませるかと
625デフォルトの名無しさん
2018/08/08(水) 20:35:12.86ID:foEj61l6
好きな文字列をトリップにする枝
626デフォルトの名無しさん
2018/08/08(水) 21:20:41.90ID:IxvHxUWv
>>611
Tに対応した文字列操作関数だけを使って操作するか、CT2W/CW2TでWに変換して操作するか実質二択。
627はちみつ餃子 ◆8X2XSCHEME
2018/08/08(水) 21:45:50.76ID:X2pKT1V6
>>623
ガッ
628デフォルトの名無しさん
2018/08/09(木) 06:46:59.99ID:YmSdriT+
>>622
ヌル文字列を固定ハンドルにして、
それに QZaw... ってトリップをつけてるのかと。
629 ◆QZaw55cn4c
2018/08/09(木) 06:59:20.10ID:pqAEhCoO
テスト
◆QZaw55cn4c の酉って割れてるよね?
630はちみつ餃子 ◆8X2XSCHEME
2018/08/09(木) 17:44:07.59ID:HZcgpX+K
ワシのトリップもな。
631デフォルトの名無しさん
2018/08/09(木) 19:14:37.37ID:oFkunHGA
この前のローグ、標準ライブラリにメモリ確保お願いしてるのに中でNULLオブジェクトを操作して落ちるようになって詰んだ。。。
もういやー。
632デフォルトの名無しさん
2018/08/09(木) 19:46:32.29ID:pqAEhCoO
>>631
cpplintとかInferとかかければある程度は原因絞り込めると思うけど
Winじゃ導入が面倒か
633デフォルトの名無しさん
2018/08/09(木) 20:25:08.47ID:oFkunHGA
>>632
返信ありがとう。ヤル気がゴッソリぬけのたのでしばらく放置します。
特殊なこと全くやってないになんでこうなるんやー。
うぅ。。。
634デフォルトの名無しさん
2018/08/09(木) 20:59:37.47ID:N7zY56wf
>>633
メモリ管理の問題ということは、特殊なことをやってたかではなくて、基本的なことが正しくできてないということだよ。
プログラム初心者ならメモリ管理やポインタに煩わされない他の言語の方が良いかと思うよ。
635デフォルトの名無しさん
2018/08/09(木) 21:08:18.06ID:pNZUF6kv
まずはgoかjavaでもやったらいいんじゃないかね。
636デフォルトの名無しさん
2018/08/09(木) 21:16:17.87ID:8qUg7w5I
(ひっそりアップロードするんや…)
637デフォルトの名無しさん
2018/08/09(木) 21:21:51.13ID:2CPDzClL
>>633
バグって自分が絶対に大丈夫なはずと思っている箇所に潜んでいる
しばらく放置してから見つけると、意外に簡単に見つかる
638デフォルトの名無しさん
2018/08/09(木) 21:47:57.57ID:dPMfUDyX
gimpel の PC-LINTお勧め
639デフォルトの名無しさん
2018/08/09(木) 21:58:35.34ID:jXGj01kj
共有メモリでBSTR型のデータを共有してるのだけど
これのデータサイズ取得する方法ある?
対象領域の先頭ポインタを基準にSysStringLen使ってデータサイズとれるかな?って思ったがとれなくて困ってる
640デフォルトの名無しさん
2018/08/09(木) 21:59:33.60ID:oFkunHGA
>>637
正解。慢心してた。
とおった!!俺のせいだった。ごめんなさい。
なんでスマポのインスタンス自動確保されると思い込んでたんやろ。ここだけ。
ごめんなさい。ごめんなさい。ごめんなさい。。。、
641デフォルトの名無しさん
2018/08/09(木) 22:30:56.92ID:BtZU6oOJ
慢心と呼ぶべきか、脳内キャッシュを利用した最適化と呼ぶべきか。
しばらく放置することで脳内キャッシュが解放され最新データの利用が可能になる、ありふれた光景。
642 ◆QZaw55cn4c
2018/08/09(木) 22:34:40.62ID:rS9AJYq6
>>641
私の場合は、しばらく放置しただけではダメで、リリース(公開)することを契機に問題点が不思議と浮き彫りになる、という感覚を持っています
643デフォルトの名無しさん
2018/08/09(木) 22:39:20.96ID:BtZU6oOJ
>>642
リリース(公開)する時の質問の文章を書くことで、脳内のメモリ配置が変わり、脳内キャッシュが破棄されたのでしょう。
644デフォルトの名無しさん
2018/08/10(金) 01:22:05.57ID:W2ty1llG
>>639
https://www.artonx.org/collabo/backyard/?BasicString
bstrはちょっと特殊
645デフォルトの名無しさん
2018/08/10(金) 02:28:33.68ID:p9jfuJcV
https://dotup.org/uploda/dotup.org1607631.zip
ふー。皆さまのおかげで、最初のAIが階段に到達するまでできました。
とはいっても想像するよりよっぽどチープだけどね。
やっとまともにデバッグできるようになったら、色々仕様変更したい病発動してジレンマに陥ってる。
特にトラップクラスいらねーんじゃね?とか思い出して、根幹を揺るがせつつある・・・。
というわけで、皆様どうもありがとう。

ちなみにgithubにも公開してるけど、ライセンスはmitなので煮るなり焼くなりしていいよ。
そんな酔狂な人間がいるか知らんし、多分同じコンセプトで書き直したほうがいいカモだけど。
githubはソース置き場にしてるだけからgitの操作さっぱりわからん・・・。Orz
646デフォルトの名無しさん
2018/08/10(金) 03:17:37.39ID:rT8gQk9M
>>644
URLサンクス
もしかしてサイズ取れないと言うことだろうか
647デフォルトの名無しさん
2018/08/10(金) 03:47:22.54ID:B+R4+INY
左様そう考えて差し支えない
ID:rT8gQk9M は近隣住民の安全のために、BSTRをもたず、つくらず、もちこませずを堅持すること
648デフォルトの名無しさん
2018/08/10(金) 03:49:46.96ID:p9jfuJcV
https://ideone.com/eDOvCH
これで、Next保存する方法ないですか?
ダイナミックキャストだけかな?
継承したら自分の型忘れるのホント面倒。
649デフォルトの名無しさん
2018/08/10(金) 03:49:53.40ID:beAAeNyA
>>645
650デフォルトの名無しさん
2018/08/10(金) 04:01:00.88ID:B+R4+INY
>>648
保存(シリアライズ)のインターフェースをBaseに持たせてNextでNextの保存処理を実装したらいいんじゃね
651デフォルトの名無しさん
2018/08/10(金) 04:06:44.82ID:p9jfuJcV
>>650
ゴメン。ちょっと舌ったらずだった。
各クラスが持ってるTypeに自分の型を保存する方法ないですか?
継承して記憶喪失になっても復元できるようにしたいのです。
システム内でちょくちょく必要になるのは俺がタコだからなんだろけど。
もちろん、ユーザーコードには見せないようにしますよ。
652デフォルトの名無しさん
2018/08/10(金) 04:18:39.10ID:B+R4+INY
型を知りたいというならdynamic castが一番可搬性が高いやり方だと思うが
型を知りたいだけ、なんてことがあるのかどうなのか

普通はダウンキャストしたいという要求とセットのはずで、
ダウンキャストはインターフェースをゼロから周到に設計すればポリモーフィズムで解決できる
再設計をゼロからやれないときだけがdynamic_castの出番、という印象

※ 個人の感想です
653デフォルトの名無しさん
2018/08/10(金) 04:35:15.48ID:p9jfuJcV
static_cast<DeleteAster<decltype(p)>::OldType*>(p)->OldTypeMethod();
的なことをやりたいのですよ。
システム制作者が完全に意思疎通してて型がどうなってるか周知って前提なんだろうけど、
継承したものをごっちゃにコンテナに入れたら破綻するんだよなぁ。。。
anyもいいなぁと思ったけど、結局キャストする手間は変わらない。むしろキャスト必須。
なくても何とかなるけど、余計なコード書かないといけないからスマートな方法ないもんかなぁ、と。
654デフォルトの名無しさん
2018/08/10(金) 04:38:40.37ID:p9jfuJcV
動的に型を保存する型がほしい。
655さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/08/10(金) 04:42:20.85ID:KaDy9gZn
スクリプトすればぁ〜?
656デフォルトの名無しさん
2018/08/10(金) 04:45:12.86ID:p9jfuJcV
ですよねぇ。。。はう。
657さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/08/10(金) 04:50:41.18ID:KaDy9gZn
usingとかtypedefとかtype traitsとかautoとか使へば、何とかできる気もするが、
さういうコードをなかなか書けぬ人はスクリプト言語へ行くへし。
658デフォルトの名無しさん
2018/08/10(金) 04:58:16.48ID:p9jfuJcV
rustがレールに乗ればなぁ。
そういえば、anyはtype_infoを返すメソッドがあるのでので動的にチェックができるみたいだねぇ。
ないよりましだけど、確率になっちゃう。ぐぬぬ。

>>657
そうそう、できそうな気はするんだよね。うーん。。。
659デフォルトの名無しさん
2018/08/10(金) 05:13:40.93ID:B+R4+INY
>>657
ID:p9jfuJcVの悩みはコンパイル時に解決できないからusingとかtypedefとかtype traitsとかautoでは_ぽ
(Base* pを扱うコードのビルドでコンパイラが常に*pの型がNextであることを見抜いたり、Nextの詳細を見通せたりするわけではない

というわけでポリモーフィズムでしか解決できん
ID:p9jfuJcVは、クラスごとに異なるOldTypeMethod()を呼び出すインターフェースCallOldTypeMethod()を設けて
BaseやNextそれぞれ毎に、適切なOldTypeMethod()を呼び出す実装を与えなさい

※ 個人の感想です
660デフォルトの名無しさん
2018/08/10(金) 05:52:46.45ID:d4sNno4d
実行したいこととオブジェクトの型が一対一対応であるという保証はない。
C++固有のポリモーフィズム機能を使うと他の言語に移植できなくなる。
実行したいことを列挙型なりビットフラグのメンバ変数として保存しておくのが一番楽だろう。
661デフォルトの名無しさん
2018/08/10(金) 05:53:49.02ID:0eRJE2kB
テンプレートでダックタイピング的なことをするとか
662デフォルトの名無しさん
2018/08/10(金) 05:59:59.43ID:d4sNno4d
追記。
やりたいことが1種類だけなら型と紐づいていても問題ないが、
やりたいことが複数の組み合わせになったら型と紐づいた設計は破綻する。
何がいいたいかというと、アキラメロンということだ。
663デフォルトの名無しさん
2018/08/10(金) 06:38:46.33ID:p9jfuJcV
皆さまありがとうございます。無理ぽいことがよくわかりました。

>>659
うーん。
仮想関数との違いがよくわからないなぁ。
プロキシ―オブジェクトってことなんだろうけど。
うーんと、ほしいときって初期化タイミングの調整とかそのへんなのでメインレールはインターフェースでいいんだよなぁ。
どうしてこう融通が利かないのか。設計のせいか・・・Orz

>>660
結局そういうことになるんですよねぇ。。。うーん。

>>661
コンセプトがいるような気がする。
さっき上げたコードをテンプレートとanyで書けば同じようなことはできるけど、エラー吐いたら地獄な気がする。
でも、そっちの方が高機能かもしれんなぁ。anyのキャスト問題を除けば。
664デフォルトの名無しさん
2018/08/10(金) 06:40:45.22ID:p9jfuJcV
とりあえず、お付き合いいただきありがとうございました。
今日は寝ます。また。
665デフォルトの名無しさん
2018/08/10(金) 07:05:11.27ID: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);
}
666デフォルトの名無しさん
2018/08/10(金) 07:07:47.43ID:iZqKv3XP
コピーだけなら簡単
667デフォルトの名無しさん
2018/08/10(金) 07:10:21.06ID:f/eWc4F9
>>666
コピー以外も色々と
668デフォルトの名無しさん
2018/08/10(金) 07:19:12.22ID:iZqKv3XP
色々と
じゃ答えようが無い
669デフォルトの名無しさん
2018/08/10(金) 07:19:41.44ID:iZqKv3XP
色々と
頑張ってね
670デフォルトの名無しさん
2018/08/10(金) 07:31:58.40ID:d4sNno4d
>>665
以下のようなwchar_t, char に応じたオーバーロード関数もある。私は使わないけど。

std::char_traits::length(const T* s)
671デフォルトの名無しさん
2018/08/10(金) 07:31:58.98ID:PNfVMsqd
色々と間違ってる
672デフォルトの名無しさん
2018/08/10(金) 07:33:16.73ID:X/p1NsAX
コンパイル時に決まってるならテンプレートにすればいい
673デフォルトの名無しさん
2018/08/10(金) 07:40:29.94ID:f/eWc4F9
>>668
文字列長を求める
データコピー
Stringstream
674デフォルトの名無しさん
2018/08/10(金) 07:44:16.79ID:f/eWc4F9
>>670
これだとLengthに特化したやつだけになるのかな?
他にもあるので切り替え方法が知りたく

>>672
コンパイル時には決まってます
テンプレートを作成するってのはT型を作るってことかな?
675デフォルトの名無しさん
2018/08/10(金) 07:46:33.59ID:uYApHCeM
クラスのインスタンスのコピーさせない方法ってコンストラクタにdeleteをつけるだけで実現可能?
それとも違うんかね?
参考を探していてもデフォルトコンストラクターにつけているだけで
複数のコンストラクターがある場合とかがわからない
676デフォルトの名無しさん
2018/08/10(金) 07:59:27.52ID:iZqKv3XP
コピーコンストラクタとoperator = をprivateにして
関数の実体も作らない
677デフォルトの名無しさん
2018/08/10(金) 08:15:19.60ID:cglfv0MQ
今は=deleteも出来るぜ。
678デフォルトの名無しさん
2018/08/10(金) 08:48:18.73ID:uYApHCeM
privateにすることでできそう
ありがとう
679デフォルトの名無しさん
2018/08/10(金) 08:49:25.57ID:a+3O8uOm
C++極める方法教えてよ
680デフォルトの名無しさん
2018/08/10(金) 08:53:13.90ID:FVsJ4La+
STLの仕様を見ます
自分で実装します
ソースコードをみて答え合わせをします

まずはvectorから、ハイ、どうぞ
681デフォルトの名無しさん
2018/08/10(金) 09:02:52.19ID:I9yy5anA
高位合成toolを入手します。
あなたの思った通りの動きをするCPUを作れば完成
682デフォルトの名無しさん
2018/08/10(金) 09:44:57.66ID:UZimlLTI
CreateProcess失敗したときのhProcessに何が入るか記載しておいてよmsdn
NULLなの!?それとも別なの!?
msdn使いこなせるやつすげぇよ本当に
683デフォルトの名無しさん
2018/08/10(金) 09:51:57.65ID:I9yy5anA
そんな引数無い事について以下100レス程
684デフォルトの名無しさん
2018/08/10(金) 10:25:12.98ID:NKvoiPPS
>>670
char_traitsの関数はオーバーロードじゃねえだろ
引数ではなくスコープで区別するんだから
685デフォルトの名無しさん
2018/08/10(金) 12:02:09.34ID:d4sNno4d
>>684
スコープ?
686デフォルトの名無しさん
2018/08/10(金) 12:20:52.35ID:LvXbuhRM
>>683
CreateProcess()使ったことあれば lpProcessInformation.hProcess ってわかると思うが…

>>682
何も書いてない → 何が入っているかわからない
ってことだろ
687デフォルトの名無しさん
2018/08/10(金) 12:21:22.72ID:nFJe7QfE
>>675
https://cpprefjp.github.io/lang/cpp11/defaulted_and_deleted_functions.html
688デフォルトの名無しさん
2018/08/10(金) 13:06:07.39ID:I9yy5anA
>>686
HANDLEならINVALID_HANDLE_VALUEがデフォでしょ
689デフォルトの名無しさん
2018/08/10(金) 14:25:58.73ID:NKvoiPPS
>>685
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
690デフォルトの名無しさん
2018/08/10(金) 14:45:17.93ID:LvXbuhRM
>>688
だからそんなことを期待しちゃダメってこと
691デフォルトの名無しさん
2018/08/10(金) 15:10:51.55ID:ayqbPQA0
>>689
wchar_tを使うとわかっていてテンプレート引数にcharを入れるのはおかしくない?
692デフォルトの名無しさん
2018/08/10(金) 18:49:42.52ID:hMB1uQwa
>>682
関数が失敗したら新しいプロセス自体作れられないんだから
hProcessが不定でも何も困らないと思うが
693デフォルトの名無しさん
2018/08/10(金) 18:53:21.62ID:NKvoiPPS
>>691
std::char_traits::length(x); //error
694デフォルトの名無しさん
2018/08/10(金) 19:18:52.44ID:7XXHmUWL
おまいらコミュ障かよ
695デフォルトの名無しさん
2018/08/10(金) 19:19:41.62ID:JXFPQdyt
std::char_traits<wchar_t>::length(x);//0
696 ◆QZaw55cn4c
2018/08/10(金) 19:23:47.91ID:H9lF8aPc
>>680
>まずはvectorから、ハイ、どうぞ
これ、いちどやってみたいですね…
http://2chb.net/r/tech/1434079972/33
697デフォルトの名無しさん
2018/08/10(金) 21:04:31.61ID:U4E1U51M
このメンツで開発とか地獄だろうな。。
698デフォルトの名無しさん
2018/08/11(土) 08:11:36.74ID:dFDFw6X4
ガイジしかおらんやんけ…
699デフォルトの名無しさん
2018/08/11(土) 11:00:44.96ID:X6Hz/xY3
char_traitsの件、どうも話通じてないなあ
700デフォルトの名無しさん
2018/08/11(土) 11:25:54.74ID:4zfRZVUI
多重定義, オーバーロード - Wikipedia
https://ja.wikipedia.org/wiki/%E5%A4%9A%E9%87%8D%E5%AE%9A%E7%BE%A9

質問者が解決の糸口を見つけられればそれでいい。
>>684 のような間違った用語定義を主張して、何の生産性にも貢献しない ID:NKvoiPPS みたいな人は迷惑。
701デフォルトの名無しさん
2018/08/11(土) 12:18:16.68ID:X6Hz/xY3
>>700
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. 多重定義
同じ名前を指定した異なる宣言が同一有効範囲内に複数ある場合,その名前は,多重定義されているという。

言わんでも解るだろうから、説教臭いことはあえて黙っておく
702はちみつ餃子 ◆8X2XSCHEME
2018/08/11(土) 13:37:39.73ID:zO3XAoAm
たしかに >>670 のいう「オーバーロード」は用語の使い方が誤っているが、
それはそうとしてオーバーロードっていう言葉の中にバーローという言葉が入ってるから、
オーバーロードの話題が出るたびに俺の中のコナン君がバーローとささやくので、
お前らにも同じ呪いをかけてやろう。
703デフォルトの名無しさん
2018/08/11(土) 13:41:08.56ID:xFvEQmr2
真実はいつも多重定義されない!
704デフォルトの名無しさん
2018/08/11(土) 13:43:33.49ID:xFvEQmr2
std::char_traits<char>::length()と
std::char_traits<wchar_t>::length()は
互いに同じ名前(a single name)なんやろうか…
705デフォルトの名無しさん
2018/08/11(土) 15:53:50.27ID:xFvEQmr2
>>663
>どうしてこう融通が利かないのか。設計のせいか・・・Orz
ユーザーコードにクラスの中で定義された型(Base::TypeやNext::Type)を見せるのはやめて、
NextやBaseのオブジェクトのふるまいとしてだけ見せたら宜しいかと

ふるまいだけを見せる抽象化はまず純論理的にはポリモーフィズムで逝ける
次の段階として、呼び出しの度にvtblの間接参照が一発入る遅さを嫌い、高速化したいという要求が生じるかもしれないが
そのときは知らん(テンプレートによるダックタイピングでさらに戦うこともできるが同一翻訳短以内でのcloseが前提でありかつクラスの継承の恩恵にはなかなかあずかれない
706デフォルトの名無しさん
2018/08/11(土) 15:58:27.82ID:xFvEQmr2
なおふるまいだけを見せる抽象化ができないオブジェクト指向言語とか無いから他言語への移植性とかを気にするのは狂気の杞憂
ていうか非オブジェクト指向言語であっても関数ポインタと構造体が使えれば似たようなことはいつでもできる
707デフォルトの名無しさん
2018/08/11(土) 18:59:43.05ID:X6Hz/xY3
非オブジェクト指向言語とオブジェクト指向言語で
最終的に作れるものと作れないものは
その違いによる差は全くないんだが
708デフォルトの名無しさん
2018/08/11(土) 22:22:49.51ID:xFvEQmr2
ちな>>707は、>>660へのレス。
709デフォルトの名無しさん
2018/08/11(土) 22:42:05.15ID:4zfRZVUI
技術系の板でID使い分けする惨めさよ
710707
2018/08/12(日) 07:44:03.92ID:2Xoj+DoI
俺の偽物がいるな
711デフォルトの名無しさん
2018/08/12(日) 20:13:35.92ID:KnTIebYQ
レイトレーシングをやってみたいんですけど、何もない状態から画像を生成するのと、画像処理(opencv)でやろうと思ってます。
前者と後者とも資料は見つけたのですが、どうやって勉強するのがおすすめですか?
opencvで例えばアイドルの画像をCGっぽく、またはアニメっぽくはできたりするのでしょうか?
712デフォルトの名無しさん
2018/08/12(日) 22:21:45.58ID:MDfKI+a6
>>711
多分君には無理だからそういったアプリを探しなさい
煽りでも何でもなく実力不足
713デフォルトの名無しさん
2018/08/12(日) 23:17:59.82ID:RJjtK8Ko
>>711
レイトレーシングの本質は三次元空間での光の挙動のシミュレーションであって
既存の画像を加工するような技術じゃないぞ
714デフォルトの名無しさん
2018/08/13(月) 00:27:19.20ID:p4qIMBze
Late racing.
715デフォルトの名無しさん
2018/08/13(月) 00:28:37.24ID:p4qIMBze
視線の追跡したほうが効率よさそうな気がする。
目に入らない光は無いも同然だし。
716デフォルトの名無しさん
2018/08/13(月) 00:31:27.67ID:sn7iPKpv
一番シンプルなレイトレの実装は視線追跡だからな
717デフォルトの名無しさん
2018/08/13(月) 00:33:31.73ID:sn7iPKpv
>>716
寝ぼけて謎な用語の用法をしてしまった忘れてくれ
視線側からのレイの追跡だ
718デフォルトの名無しさん
2018/08/13(月) 00:36:44.24ID:XxWurSAu
トイレの覗きかと一瞬勘違いしましたw
719デフォルトの名無しさん
2018/08/13(月) 00:43:21.17ID:MxL7CAkg
ちゃんとミラーボールの映像から抽出しないと
720デフォルトの名無しさん
2018/08/13(月) 01:42:46.41ID:+YkMTMKz
遠い昔だが、いい基礎解説本があったんだがタイトルが思い出せない
98用のCのソースコードも附録でついてた
98なんかもってなかったから、Xlibで動かした記憶がある

その書籍はサーフェイスモデルもレイトレーシングも基礎から丁寧に書いてある良書だった
サーフェイスモデルについては、ものすごい力を入れて書かれてた良い本だった

ワイヤーフレームから陰面消去、さらに双三次スプラインでの補間、そしてレンダリング、バンプマッピング
さらに3次アフィン変換つかってモーションキーで動くとこまで解説してる
基礎で必要な内容は、ほぼすべて網羅されてて、バカでもチョンでも分かるように書かれてた

で、レイトレーシングはサーフェイスモデルより超簡単だからな
このスレのアホが難しいといってるだけで
むしろレイトレーシングはバカでもチョンでも分かる
721デフォルトの名無しさん
2018/08/13(月) 01:48:30.63ID:GxmByJ3O
せっかく良い質問なのに、
あまり汚い言葉で、アホとかバカとかチョンとか言わなない方がいいよ…
722デフォルトの名無しさん
2018/08/13(月) 02:07:33.90ID:Zz4bK/+7
レイトレならこれもおすすめ
https://qiita.com/mebiusbox2/items/89e2db3b24e4c39502fe
723デフォルトの名無しさん
2018/08/13(月) 02:52:34.70ID:J+SKK2b0
Oh!Xにソース付きで事細かく書いてあってだな
724デフォルトの名無しさん
2018/08/13(月) 03:13:41.34ID:bfksj/4u
多分これだと思う
https://www.amazon.co.jp/dp/4871481999
3冊とも名著。1と2はBASICだけど
725デフォルトの名無しさん
2018/08/13(月) 03:39:58.88ID:p4qIMBze
レイトレーシングに限らないけど、アルゴリズムの勉強にはLinuxが良いですよ。
726デフォルトの名無しさん
2018/08/13(月) 04:00:12.36ID:3+Hm6Wut
紹介されてる本全部古い...

linuxだと何がいいの?
727デフォルトの名無しさん
2018/08/13(月) 04:14:38.66ID:p4qIMBze
Kernelソースが勉強になります。
728デフォルトの名無しさん
2018/08/13(月) 04:15:34.47ID:J+SKK2b0
openclとグラボの勉強したら?
レイトレーシングの大量の計算するのがグラボでしょ
729デフォルトの名無しさん
2018/08/13(月) 06:59:52.73ID:k7xD/gvg
>>724
アスキーの『応用グラフィックス』か。入門・実習・応用の3冊シリーズだね。
各巻のつながりは緩いから順番に読まなくてもほぼ大丈夫だけど。

確かに良い本だった気がするけど、なにぶん読んだのが昔なんで
いくらも理解できなかったわ。今ならもう少しマシだと思いたい。
大学近くの古本屋でなら見つかるかも。
730デフォルトの名無しさん
2018/08/13(月) 07:05:01.34ID:JKsq+WjD
 
畏(おそ)れ多くも森喜朗元帥閣下の有り難いお言葉:
 「オレはIT(いっと)のことはよく知らんがぁ
   時計をたった2時間早めるだけだろぉ?
  オレなら1分あれば済ませるぞぉ!
   サマータイムの何がそんなに難しいんだぁ?」
 
システム開発現場の勇ましい言葉:
 「畏れ多くも森元帥閣下のご下命を賜った以上
   現場SEは有り難いお言葉に勇気百倍
  デスマーチとバンザイ突撃を敢行いたします!」
  
 「マラソン選手さまが涼しい時間に走るためなら
   現場SEの千人や二千人死んでも本望です!
  私たちSEの生命など、虫けらと同じです!」
 
 「畏れ多くも森元帥閣下の有り難いご下命にしたがって
   最前線システム開発現場で殉職出来るとしたら
  現場SEとしてこれに勝る喜びはありません!」
 
日本という国では
 体育会系が一番偉い(森元帥閣下、田中理事長)
  文科系がその次で(財務省、教授会)
 理科系は最底辺の奴隷とされています(現場SE)
 
731デフォルトの名無しさん
2018/08/13(月) 07:26:44.37ID:WtSMvp2C
レイトレーシングがサーフェイスモデルより簡単とか
半透明物体内部の散乱表現に踏み込んだらそんな寝言は言えないんじゃ…
732デフォルトの名無しさん
2018/08/13(月) 10:07:11.78ID:uSgRX9ke
みんな例外と戻り値ってどう使い分けてる?
例えば以下みたいな、ファイルからとある要素を抜き出して返す関数とかで

std::string extractHogeFromFile(const std::string& file_path)

俺だったら以下みたいにしてるけど、いまいちしっくり来てないとも思ってる

ファイルが見つからない→例外
要素が見つからない→例外
要素が見つかるけど空→空

みんな例外クラスとかはstd::exception継承して自作してるのかな?
バックトレースやコード行数とれないのが使いにくくて、javaっぽい例外クラスを自作してる
733デフォルトの名無しさん
2018/08/13(月) 10:16:27.95ID:Z0vFISs/
例外は発生時の動作が遅い
734デフォルトの名無しさん
2018/08/13(月) 10:17:50.65ID:gsTSbRo/
exceptionを直に継承ということは滅多にないな
system_errorがあるからerror_categoryの派生クラスを作れば大抵足りる
__FILE__ や __LINE__ のようなデバッグ情報を入れたくてマクロを作ることはあるけどね

空という概念ならoptionalはいかが?
template <typename ELEMENT>
std::optional<ELEMENT> extractHogeFromFile(std::path) noexcept(false);
735デフォルトの名無しさん
2018/08/13(月) 10:36:14.97ID:uSgRX9ke
>>733
発生時は確かに遅いね
ただ、あくまでも例外的なものだけに利用をとどめておけば、そんなに発生するものでもないし、その場合は戻り値をifで見るより命令数が少なくなるから、結果的に高速になるって俺は考えてる

>>734
exception直に継承も少し疑問もってるんだけど、std::exceptionのcatchで全部取りやすいからこうしてるんだよね
...でcatchは乱暴な気がするし

ただ、調べて見た感じsystem_errorも使いやすそうね。最近開発で使えるようになったC++11だからこんなのあるの気づいてなかったわ
std::optionalとかあったんだね、ちょっと調べてみるわありがとう
736デフォルトの名無しさん
2018/08/13(月) 11:20:33.79ID:NtbFT1j9
>>720
レイトレーシングが簡単なのは入り口だけ
20世紀あたりのなんちゃってレイトレーシングは楽だけど本格的にやると解決できない問題が多数出てくる
737デフォルトの名無しさん
2018/08/13(月) 11:32:34.68ID:D1VtDJH7
ファイル開くのはそれ自体がすっごい遅い操作だから例外のコストなんか無視できるのと
開き損なうとそれ以降の処理が致命的な失敗になりやすい
そういう操作のエラー通知が例外に向いてる
738デフォルトの名無しさん
2018/08/13(月) 11:47:23.91ID:2dORgvS5
>>733
例外発生時の速度が問題になるなら例外の使い方を見直した方がいい
739デフォルトの名無しさん
2018/08/13(月) 12:31:28.26ID:Z0vFISs/
>>832に対して
例外は遅いから例外の時に使いましょう
ということを書いたつもりなんだけど

単なる終端マークとか区切りとか
そういう頻出する可能性のある用途では使っちゃダメってこと
740デフォルトの名無しさん
2018/08/13(月) 12:35:13.84ID:Z0vFISs/
例外は仕組みを入れるだけで、
例外が発生しなくてもオーバーヘッドが発生する環境がほとんどなので
組み込みだとわざと無効にすることも多い

x86の64bitはオーバーヘッドが無い代わりに
例外発生時は極端に遅い
一度測定してみるとその遅さがよく分かる

そういうことがわかっていれば
どこに使うべきかがおのずとわかる
741デフォルトの名無しさん
2018/08/13(月) 12:41:46.34ID:WtSMvp2C
低水準ライブラリに属するべき関数が例外みたいな高級なしくみに依存するのは美しくないキモス
システム設計とかアプリの基本設計レベルで例外の種類とcatch箇所とcatch時の処理を定義して使うなら良い
が、呼び出し側でif文を書きたくないからという理由でイミフな例外定義を行うと、結局第三者に正しく使ってもらえない
キモス
742デフォルトの名無しさん
2018/08/13(月) 12:48:07.11ID:WtSMvp2C
例外のオーバーヘッドについてはこれな↓↓↓
http://zakkas783-blog-blog.tumblr.com/post/3870295160/c-の例外ハンドリングとパフォーマンス

>>740の通り例外処理の裏側の実装には2つの潮流があるんじゃ
743デフォルトの名無しさん
2018/08/13(月) 13:03:58.12ID:u8inRKlo
制御をすっ飛ばす必然性があるほどの例外的状況に限るのが吉だろうな。
返値で返せないものを返すのに使うなら検査例外のような保証が欲しいところ。
744デフォルトの名無しさん
2018/08/13(月) 13:22:39.94ID:BGH31mSy
別スレッドでの関数呼び出し階層が深すぎて安全にスレッド終了させる方法が分からない時に便利でしょ、例外。
745デフォルトの名無しさん
2018/08/13(月) 13:37:06.53ID:hqkLiaZ4
このパーセンテージどうやって表示してるのですか?
http://aokomoriuta.hateblo.jp/entry/2016/05/05/145810
746デフォルトの名無しさん
2018/08/13(月) 13:37:33.57ID:hqkLiaZ4
すいませんこれです
C++相談室 part137 	->画像>3枚
747デフォルトの名無しさん
2018/08/13(月) 14:16:12.02ID:uSgRX9ke
前測ったときはアセンブリ言語にしてみると、戻り値ifチェックだと2命令だったのが例外使うと20命令くらいだったなぁ
748デフォルトの名無しさん
2018/08/13(月) 14:27:34.65ID:uSgRX9ke
>>741
自前の文字列操作のUtilとかだと例外にするかすごいその観点で迷うんだよね

>>743
賛否両論なjavaの検査例外だけど欲しくなるときはあるね
C++の例外指定がもう少し使いやすければよかったんだが

>>744
すごく同感
749デフォルトの名無しさん
2018/08/13(月) 14:39:38.06ID:gsTSbRo/
>>739
困ったことにbasic_iosはexceptionsで頼みもしてないのにEOFで例外を投げる
750デフォルトの名無しさん
2018/08/13(月) 14:48:44.15ID:p4qIMBze
HTTPで400番台500番台は例外投げればいいのかな。
751デフォルトの名無しさん
2018/08/13(月) 14:51:05.76ID:p4qIMBze
例外を投げるクラスはピッチャーって名前でいいんか?
受け取るクラスはキャッチャー?
752デフォルトの名無しさん
2018/08/13(月) 15:18:30.60ID:m/ibS17x
甘めの例外を打ちかえすのはバッター
753デフォルトの名無しさん
2018/08/13(月) 15:38:43.20ID:Twrhv79p
C++17では多値が返せるようになりました。
できるならレガシーを切って次へ行きたいものです。
またはstd::optionalなんてものもありますな。

std::tuple<bool,Item> Fun(){return {true,Item()};}
auto [F,I] = Fun();
754デフォルトの名無しさん
2018/08/13(月) 15:41:48.16ID:Twrhv79p
あ、多値自体は返せたけど受け取って初期化できるようになったか。
ちなみにすでに実体化している変数は、std::tie(...);で受け取れます。
755デフォルトの名無しさん
2018/08/13(月) 16:14:15.10ID:gsTSbRo/
>>754
prvalueでもforward_as_tupleならおk
756デフォルトの名無しさん
2018/08/13(月) 16:15:13.67ID:gsTSbRo/
auto func()
{
return forward_as_tuple(123, "456");
}
757デフォルトの名無しさん
2018/08/13(月) 19:17:45.97ID:Twrhv79p
お、なるほど。良いこと聴いた!
758デフォルトの名無しさん
2018/08/13(月) 20:21:18.19ID:m/ibS17x
ただ元からタプルがある言語と比べたら劇的に汚い仕上がりだよね
759デフォルトの名無しさん
2018/08/13(月) 21:43:01.79ID:3hlPfGdJ
http://2chb.net/r/tech/1528382412


前スレのURL違うくね
これがただしいっしょ
760デフォルトの名無しさん
2018/08/14(火) 02:06:11.13ID:41LFYoyc
>>758
何と比べてる?
761デフォルトの名無しさん
2018/08/14(火) 02:50:24.34ID:oCVPQ4uM
そんなに汚いかねえタプル
762デフォルトの名無しさん
2018/08/14(火) 03:32:08.59ID:+lmSJTba
演算子オーバーロードっぽいものを珍重するのはやめた方がいいと思うけどね。
763デフォルトの名無しさん
2018/08/14(火) 08:20:26.94ID:8F/Sy9ZI
autoでしか受けられないのがイマイチかなあ
メインの戻り値は期待する型を明示したいことがある
エラーの方が何のenumかは知ったこっちゃないからautoにしたかったりするからややこしい
764デフォルトの名無しさん
2018/08/14(火) 09:31:57.53ID:oMbBbcEB
無名の共用体と似たようなもので
構造体のメンバをバラで貰えるってだけやん
765デフォルトの名無しさん
2018/08/14(火) 09:44:39.80ID:fJuFDfsp
型推論のautoを見て嘔吐
766デフォルトの名無しさん
2018/08/14(火) 12:12:14.83ID:9UC8tUq9
C++のメタプログラミングって実際にはどうすればあんな複雑に書けるの?
自分は出来ても階乗を求めると型の判別くらいしか出来ない
767デフォルトの名無しさん
2018/08/14(火) 12:16:05.35ID:aWfB90DT
まずは脳内バッファを増やす訓練からだな
768デフォルトの名無しさん
2018/08/14(火) 12:26:17.71ID:8F/Sy9ZI
関数型言語を勉強するといいよ
769デフォルトの名無しさん
2018/08/14(火) 12:41:59.55ID:9UC8tUq9
>>767
脳内バッファがなぜ必要?
>>768
そうしてみる‥
Lisp読んで見る
770デフォルトの名無しさん
2018/08/14(火) 13:29:44.46ID:z3VJK4Uc
>>766
メタプログラムは今ほとんどconstexprに置き換えれない?
771デフォルトの名無しさん
2018/08/14(火) 14:16:24.99ID:9UC8tUq9
>>770
確かに置き換えられるんだけど、それじゃあ普通のプログラミングと変わらなくて面白みが無いと思って‥
772デフォルトの名無しさん
2018/08/14(火) 14:39:49.94ID:vEMT9LA3
>>770
型でメタプログラミングするとき困らんか?
773デフォルトの名無しさん
2018/08/14(火) 14:41:24.25ID:UlU0qat0
>>772
もちろんtemplateも使う
774デフォルトの名無しさん
2018/08/14(火) 16:24:16.29ID:oKGdiTQg
>>760
特に何とは言わないけど

return (123, "456");
とか
return 123, "456";

みたいに現行のc++ではできないタプル表現のほうがすっきりして見える (個人の感想です)
775デフォルトの名無しさん
2018/08/14(火) 16:31:09.91ID:fJuFDfsp
123には副作用が無いから最適化でreturn "456";になるんじゃ…
776はちみつ餃子 ◆8X2XSCHEME
2018/08/14(火) 16:32:25.07ID:EPC9iky2
>>775
「できない」って話だから……
777デフォルトの名無しさん
2018/08/14(火) 17:01:49.73ID: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通り、違いは範囲チェックを行うかどうかだけという認識だったのですが……
何がまずいんでしょうか?
778デフォルトの名無しさん
2018/08/14(火) 17:10:49.55ID:oMbBbcEB
list->at[i]はまずいだろ
typoか? それとも本当にそう書いているのか?
779デフォルトの名無しさん
2018/08/14(火) 17:27:33.05ID:8F/Sy9ZI
typoじゃないとしたら、上は通ってるんだから
hogeMethodの引数がobjectかobject&なんだろうな
780デフォルトの名無しさん
2018/08/14(火) 17:31:42.31ID:zHCh+0V6
えーっとtypoじゃないです。
何がまずいんでしょうか。ポインタだしアロー演算子で問題ないのでは。
それとhogeMethodの引数はobject*ですね。抜けてましたすいません。
781デフォルトの名無しさん
2018/08/14(火) 17:49:25.24ID:K29Njy0m
listの前の*が邪魔?
782 ◆QZaw55cn4c
2018/08/14(火) 18:00:20.07ID:5K5qKv3G
>>777
vector<string *>::iterator list;
なら理解できるのですが、
vector<string *> *list;
というのが、よくわからないのです
プログラム例では list にすでに値が入っているようですが、実際には
list をどのように初期化しているのでしょうか?
783782 ◆QZaw55cn4c
2018/08/14(火) 18:19:15.36ID:5K5qKv3G
>>777
(*list)[i]
(*list).at(i)
list->at(i)
は等価であることを確認しましたが
list->at[i]
というのは逆にダメっぽいです
https://ideone.com/ripLji

list->at[i]
がどういう文脈なのか?
コンパイラがなになのか情報をください
784デフォルトの名無しさん
2018/08/14(火) 18:27:08.03ID:oMbBbcEB
>>780
何がまずいって
listはvector<object*>へのポインタ
list->atはvector<object*>::atでメンバ関数
ここまではいいが
at[i]は関数に添え字だろ

こうやってんのと同じだぜ
void func();
func[1];
785デフォルトの名無しさん
2018/08/14(火) 18:32:33.03ID:9UC8tUq9
なんでメンバ関数を配列にしたいのかかが気になる
786デフォルトの名無しさん
2018/08/14(火) 18:35:36.38ID:zHCh+0V6
あ、すいません、確かにat(i)はtypoでしたね。
ごっちゃになってましたすいません
787デフォルトの名無しさん
2018/08/14(火) 19:46:01.17ID:TB9AjC50
>>786
> 確かにat(i)はtypoでしたね。
なら普通に両方コンパイルはできるはず
エラーになる最小限のコードにしてどこかにアップして
788デフォルトの名無しさん
2018/08/14(火) 20:00:34.01ID:aWfB90DT
そんでだいたい最小化してるうちに気づくんだよなw
789デフォルトの名無しさん
2018/08/14(火) 20:01:24.90ID:UKq+CNIv
関数テンプレートの部分特殊化ってC++17でもできないの?
790デフォルトの名無しさん
2018/08/14(火) 20:08:30.24ID:HhG+br3u
>>788
まあ本人気づくのが一番いいから
791782 ◆QZaw55cn4c
2018/08/14(火) 20:18:07.26ID:5K5qKv3G
>>790
寛大ですね…
792デフォルトの名無しさん
2018/08/15(水) 13:34:49.18ID:bAZUebux
>>789
できない

# いらんだろ、多重定義で同じ目的を達成できるから
793デフォルトの名無しさん
2018/08/15(水) 15:58:12.56ID:/VaqEwQY
関数の多重定義もクラステンプレートの部分特殊化でstaticメソッドを特殊化したら代替できるからイラン
794デフォルトの名無しさん
2018/08/15(水) 17:45:56.30ID:bAZUebux
>>793
どゆこと?

たとえば
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;
}
みたいなことすんのか?
795デフォルトの名無しさん
2018/08/15(水) 18:07:46.14ID:GkoLimxd
普通は関数オブジェクトにするんじゃね?auto operator()(...);
796デフォルトの名無しさん
2018/08/15(水) 18:46:53.07ID:GkoLimxd
あ、余計なこと言った。
https://dotup.org/uploda/dotup.org1613077.zip
797デフォルトの名無しさん
2018/08/15(水) 18:48:12.11ID:GkoLimxd
うご、投稿してモータ。
例のローグのシステムが大分できたのでなんとなく投下してみた。
汎用AIってどうやって書けばいいんや?
しかも、まだバトルシステム作ってないし。
798デフォルトの名無しさん
2018/08/15(水) 19:02:43.98ID:GkoLimxd
ところで質問なんだけど、パスファインディングってサービスとして入れたほうがいいのかなぁ。。。
799デフォルトの名無しさん
2018/08/15(水) 22:40:01.74ID:QxvGNpoJ
>>766です
C++テンプレートメタプログラミングという本を買ってみたのですが、この本C++BoostのMPLの解説本です
C++17がある今、この本の価値ってあるんでしょうか?
一応全部読んでみようと思ってるのですが
800デフォルトの名無しさん
2018/08/16(木) 07:25:03.80ID:t6OwQxX1
>>799
> 一応全部読んでみようと思ってるのですが
読んでみてから判断すれば?
801デフォルトの名無しさん
2018/08/16(木) 08:19:40.35ID:NceGg90N
多分聞きたいのはこれ読んだらオラついていいですか?ってことだと思う。
802デフォルトの名無しさん
2018/08/16(木) 08:50:47.25ID:MDl/UAh8
>>800
>>801
すみません
Boostを使わず、mplを使わないのでメタプログラミングするのが目的なので、それがこの本を読んで可能なのか?という質問の趣旨です
803デフォルトの名無しさん
2018/08/16(木) 09:51:57.97ID:t6OwQxX1
>>802
> Boostを使わず、mplを使わないのでメタプログラミングするのが目的
そんな明確な目標あるのになんでこんな本買うかなぁ
ちょっとググればこんな意見が見つかるだろうに…

ちょっと文章が直訳っぽくてところどころ不自然だけど,丁寧にBoost.MPLの実装(と使い方)について解説してあってとても分かり易い!
http://d.hatena.ne.jp/eldesh/touch/20100412/1271090614
804はちみつ餃子 ◆8X2XSCHEME
2018/08/16(木) 10:25:53.58ID:f3MTrlhW
>>802
メタプログラミングを活用すればこういうことも出来得るという事例集として見れば無駄ではないと思うが、
それを読んでメタプログラミングが出来るようになるかというと否だと思う。
805デフォルトの名無しさん
2018/08/16(木) 12:02:41.09ID:MDl/UAh8
>>803
この本を買ったのは高橋晶のC++11対応のテンプレートテクニックって本を読んで、巻末に本の紹介があって、メタプログラミングについて知りたいならこの本を読むべきって書かれてあって、読むことにした
そのブログはすでに読んである
>>804
メタプログラミング自体はどうすれば出来るだろうか?
806デフォルトの名無しさん
2018/08/16(木) 12:37:43.15ID:jOS7jxfN
魔除けとして重宝している
807デフォルトの名無しさん
2018/08/16(木) 12:41:22.12ID:lxkNuozk
> そのブログはすでに読んである
私はバカです
って言われても…
808デフォルトの名無しさん
2018/08/16(木) 13:19:15.31ID:MDl/UAh8
>>806
売ることにします‥
>>807
もう日本人に頼るのは辞めました
そもそもWG21から情報を検索したほうが有意義かも
これからは日本語のプログラミング書籍は買わない方がいいって教訓になりました
809デフォルトの名無しさん
2018/08/16(木) 13:24:07.84ID:AI90/kCO
捨てゼリフ来たね
そろそろご退場かな
総員塩の用意
810デフォルトの名無しさん
2018/08/16(木) 13:27:57.29ID:MDl/UAh8
>>809
いやだって日本人でC++やってる人少ないじゃないですか(´・ω・`)
811はちみつ餃子 ◆8X2XSCHEME
2018/08/16(木) 13:47:10.99ID:f3MTrlhW
>>810
んなこたーない。
812デフォルトの名無しさん
2018/08/16(木) 14:10:22.64ID:yO9+GMaw
「少ない」に比較がついてないから何とも言えない
813デフォルトの名無しさん
2018/08/16(木) 14:34:47.46ID:jOS7jxfN
やっぱPerl人口が一番多いと思うのねん
その次がPHP
814デフォルトの名無しさん
2018/08/16(木) 16:39:09.24ID:TxXnQ6gb
英語をスラスラ読めるなら「遅い・高い・分かりにくい」の
和訳版を買うことはないわな。
原書ならPDF版がタダでネット公開されてたりするし。
815デフォルトの名無しさん
2018/08/16(木) 20:44:21.68ID:JF8AnYsh
>>799
前半とこどこBoost.MPLの設計理念とかどう実装されてるかとか書いてあるから、そこは参考になると思う
後半のTMP関連のテクニックはおそらく求めているものではないかと
ExpresionTemplateの実装にあまり踏み込まないけど、どのように誤用されているかは少し参考になった
816デフォルトの名無しさん
2018/08/17(金) 11:29:50.85ID:lqMuboYf
https://wandbox.org/permlink/TC3VtzZ4Dd53Z1Y4
こういうコード書きました。
UIはとりあえず置いといて、Jsonの構造ってこんな感じでいいのでしょうか。
ご意見あったら教えてください。
817デフォルトの名無しさん
2018/08/17(金) 11:54:52.92ID: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以外から呼び出されることはありません。
自分は前者だと思うんですが、参考にしろと渡された前任者(今いない)のコードだとなんでもかんでもメンバ関数です。
よろしくおねがいします。
818デフォルトの名無しさん
2018/08/17(金) 12:01:22.82ID:BEBC5Dle
あ、すいませんhogehogeではxyzを呼び出す以外にも処理を行うものとします
そうでないとxyzをメンバ関数にしてhogehogeなくせってことになるので
819デフォルトの名無しさん
2018/08/17(金) 12:17:52.69ID:TtX4VAeH
> x()y()z()はhogehoge以外から呼び出されることはありません。

だったらラムダ式じゃね?
auto x = [this]{};
auto y = [this]{};
auto z = [this]{};
820デフォルトの名無しさん
2018/08/17(金) 12:27:19.70ID:6wrElEJt
>>817
どっちでも良い
というか時と場合によってどっちにすべきかが違う
821デフォルトの名無しさん
2018/08/17(金) 12:29:57.76ID:JC8oBFgD
メイヤーズは独立できるならメンバにせずに関数にしろって言ってた
822デフォルトの名無しさん
2018/08/17(金) 12:31:59.93ID:PQea+QN+
言語処理ってphythonとC++どっちが向いてる?
823デフォルトの名無しさん
2018/08/17(金) 12:37:52.08ID:lqMuboYf
処理内容によると思う。
一応、自分は、protectedのメンバ関数にするかなぁ。
824デフォルトの名無しさん
2018/08/17(金) 12:49:54.76ID:UZUA85Xq
>>822
漠然過ぎてどうとも
ゼロから書く気はないんだろうから試行錯誤するのも含めてPythonのほうを勧めるよ
825デフォルトの名無しさん
2018/08/17(金) 13:08:34.93ID:KaaDwp63
>>817
関数にできるってことはメンバ変数の参照とか他のメソッド呼び出しがないんだよね
なら関数にした方が微妙に速度が稼げる(thisを渡さずに済むから)
各々一回しか呼ばないなら呼び出し箇所に展開しても良いような気がする
826デフォルトの名無しさん
2018/08/17(金) 13:39:31.71ID:BEBC5Dle
参考になりました。皆様ありがとうございました。
effective C++のメイヤーズ先生に従い、通常の関数にすることにします。

……あれ、そうするとその関数群だけで使う共通の変数ってメンバ変数にすべきなのかcpp冒頭で宣言してグローバル変数にすべきなのか
いやぁ難しいですね
827デフォルトの名無しさん
2018/08/17(金) 13:59:24.66ID:IJ2e6Mcr
データメンバーにしなさい
グローバル変数は悪である
828デフォルトの名無しさん
2018/08/17(金) 14:21:39.44ID:TtX4VAeH
>>826
「共通の変数を使う関数群」をクラス化するんだよ
そのためにあるんだから
829デフォルトの名無しさん
2018/08/17(金) 15:10:01.00ID:ujK6h2XS
>>826
> ……あれ、そうするとその関数群だけで使う共通の変数
いや、そんなもんがあるならメンバ変数にするか、それらを構造体とかにまとめて引数で渡すとかしなよ
ファイルスコープだとしても今時グローバル変数は無いわ
830デフォルトの名無しさん
2018/08/17(金) 17:26:14.63ID:xjFqJl5K
いまどきグローバル変数を使うおとこの人って…
831デフォルトの名無しさん
2018/08/17(金) 17:26:59.41ID:PQea+QN+
>>824
ゼロから書く気はある
832デフォルトの名無しさん
2018/08/17(金) 17:32:51.82ID:uIPUTYG+
「すべての男はグローバル変数である」
833デフォルトの名無しさん
2018/08/17(金) 17:33:46.61ID:6wrElEJt
わたし女だけど
834デフォルトの名無しさん
2018/08/17(金) 17:41:55.00ID:mGHQIGDT
クラスのstaticメンバにすりゃええんちゃうのん?
835デフォルトの名無しさん
2018/08/17(金) 17:52:51.84ID:TtX4VAeH
わざわざstaticにする強い理由があればそうするが
消極的な選択なら非staticのほうが何かと楽だぞ
836デフォルトの名無しさん
2018/08/17(金) 17:54:48.35ID:xjFqJl5K
staticおじさん、再び
837デフォルトの名無しさん
2018/08/17(金) 18:06:46.13ID:H85EoLGL
ちょうど気になる話題だから聞くけど
OpenCVで1つの画像データを複数の関数で扱う場合って、引数として渡すのとグローバル変数として定義するのってどっちが良いのかな?(速度とかの面で)

無限ループで毎フレーム毎にWebカメラから読み取った画像を(グローバル)変数に代入するからそこでの速度とかメモリ管理の差とかあるのかな?
838デフォルトの名無しさん
2018/08/17(金) 18:08:23.37ID:UZUA85Xq
>>831
そこまでして再発明したいんなら言語なんて何でもいいんじゃね?
ちなみに素養はお持ちなの?
そういう研究してたとか
839デフォルトの名無しさん
2018/08/17(金) 18:09:24.28ID:ABziGu/h
>>833
オカマはだまってろw
840デフォルトの名無しさん
2018/08/17(金) 18:09:55.69ID:UZUA85Xq
>>831
あ、読み違えた
自然言語処理ではないんだね
何かのパーサーでも書きたいんですかね?
841デフォルトの名無しさん
2018/08/17(金) 19:04:11.30ID:/oSEwJ0G
>>837
OpenCVのMatなら何も考えずにコピーすると浅いコピーになる
浅いコピーのコストが問題になるならグローバルなりメンバなりにする方がいいのでは
842デフォルトの名無しさん
2018/08/17(金) 19:06:50.86ID:6wrElEJt
何で浅いコピーだよ
普通はポインタか参照だろ
843デフォルトの名無しさん
2018/08/17(金) 19:10:12.86ID:IJ2e6Mcr
cv::Matがスマポみたいなもんだということを知らずにチャチャ入れてるなら黙ってたほうがいいよ
844デフォルトの名無しさん
2018/08/17(金) 19:17:25.23ID:6wrElEJt
そんな事はしっている
目の前に浅いコピーって書いてあるし

浅いコピーよりも当然参照やポインタ渡しの方が速い
当たり前だ
sizeofでcv::Matのサイズを調べてみろ

構造体やクラスを渡すのに深い浅いに関わらず
コピーなんか使うなよ
845デフォルトの名無しさん
2018/08/17(金) 19:28:06.57ID:KaaDwp63
>>837
> (速度とかの面で)

早すぎる最適化は諸悪の根源である

  ドナルド・トラン…
  じゃなくてクヌース
846デフォルトの名無しさん
2018/08/17(金) 19:44:40.54ID:0e7dWRcF
今更になって>>825で言ってくれたことが理解できた
クラス内でメンバ変数使おうとするとメンバ関数じゃないとだめなのね。普通に分けたただの関数からじゃ呼べなかった
えーこういうもんなのか
847デフォルトの名無しさん
2018/08/17(金) 19:55:12.57ID:RgiGOjCt
cv::Matとcv::Mat*のコピーコストの差を気にするくらいならデリファレンスのコストも気にしなきゃな。
848デフォルトの名無しさん
2018/08/17(金) 20:02:22.24ID:IJ2e6Mcr
844はunique_ptrやshared_ptrも参照渡ししてそう
849デフォルトの名無しさん
2018/08/17(金) 22:11:59.07ID:6wrElEJt
>>847
構造体やクラスだと
ポインタや参照がデフォなんだよ

とりあえずポインタ、参照で渡す事を考える
これでは困る時にはじめて他の方法を考える

わざわざ無駄に重くしなくて良い
コードサイズも実行時間も使用メモリも増える
悪いことしかない
850デフォルトの名無しさん
2018/08/17(金) 22:28:22.24ID:p6eculQx
>>838
世の中の殆どは再発明の繰り返しではないか
そこから新しいものが生まれる
>>840
機械学習、音声言語処理に興味ある
生成や知識獲得とかも
851デフォルトの名無しさん
2018/08/17(金) 22:33:47.04ID:rVfGTX61
とりあえず車輪からだな

あっそれロン。大車輪で役満です
852デフォルトの名無しさん
2018/08/17(金) 23:28:39.10ID:2sBNjScG
ユーザーの実行コストを考えたらC++しかありえない
853さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/08/17(金) 23:29:57.49ID:L+nRWRoK
>>852
Rustを知りませんか?
854デフォルトの名無しさん
2018/08/17(金) 23:48:03.15ID:3Fyou0AL
>>848
間違って通常のポインタを引数に指定されないよう、共有ポインタの参照を引数にすることはあり得るでしょ。
855デフォルトの名無しさん
2018/08/17(金) 23:49:26.53ID:2sBNjScG
RustはいつになったらC++を殺すんだ?
856デフォルトの名無しさん
2018/08/18(土) 02:00:38.26ID:/pVEXQTC
https://github.com/rust-lang/rust/issues
エラーが4000件だから、しばらく無理。
857デフォルトの名無しさん
2018/08/18(土) 10:32:16.38ID:zXZq/jKJ
Visual Studioのデバッグ実行ってクラッシュとかしてもコードのどこでクラッシュしたかを示してくれるのですごく便利なんですが、
ただでさえ重めだった実行が、2015から拍車がかかり、かなり使いにくくなってしまいました。
どうもvector等のSTLの範囲チェック等が重たいとのことで、たしかにSTLの使用割合が多いアプリほど重たい傾向にあります。
たしかに範囲チェックはありがたいのですが、多少デバッグ能力を妥協して動作を軽くできないでしょうか?

理想はデバッグ機能をカスタム実装してリリースモードで動作でしょうけど、
予想できないクラッシュ等に対応するのが難しいと思います。

ご助言、よろしくお願いします。
858デフォルトの名無しさん
2018/08/18(土) 12:38:36.62ID:C9f4IyR8
>>857
IDEに頼るな
vimを使え
859デフォルトの名無しさん
2018/08/18(土) 12:58:55.58ID:qRHlEVCy
理想は平均的な性能のPCを買うことかな
860デフォルトの名無しさん
2018/08/18(土) 13:48:15.95ID:9bYd+OzJ
>>857
https://msdn.microsoft.com/ja-jp/library/hh697468.aspx
861デフォルトの名無しさん
2018/08/18(土) 15:07:37.45ID:T6klohyz
質問ですが
class Foo {
public:
  int a[100];
  Foo();
};
というクラスにおいて、構築時にメンバa[]をゼロ初期化する簡単な書き方はありませんか

ちなみに
Foo::Foo() : a({ }) { }
とやったらエラーになりますた、
862デフォルトの名無しさん
2018/08/18(土) 15:27:11.61ID:/pVEXQTC
https://ideone.com/BuNLLF
こう?
863デフォルトの名無しさん
2018/08/18(土) 16:07:29.18ID:cIuR0GWn
普通に書いたらええがな。

Foo::Foo(){
for(int i=0; i<100; i++){
a[i] = 0;
}
}
864デフォルトの名無しさん
2018/08/18(土) 16:21:12.10ID:T6klohyz
レスdクス、

>>862
申し遅れましたがやpっぱC++11では_ですかそうですか…
865デフォルトの名無しさん
2018/08/18(土) 16:59:01.67ID:/pVEXQTC
初期化法自体はC言語からある方法だけど。
構文はC++だけどね。
866デフォルトの名無しさん
2018/08/18(土) 17:03:27.71ID:/pVEXQTC
あー、そうなのね。あれって環境依存だったのか。ゴメン。

https://wandbox.org/permlink/ASJ3oCbkha0Ren8B
867デフォルトの名無しさん
2018/08/18(土) 17:32:50.09ID:dGIgNVTb
>>859
平均的じゃ足りんだろ
VMwareとか使いまくるには
RAMとHDDがたんまりないと心許ない
868デフォルトの名無しさん
2018/08/18(土) 17:34:51.43ID:WtnFgJ11
Foo::Foo() : a{ } { }
でええやん
869デフォルトの名無しさん
2018/08/18(土) 17:36:04.82ID:dGIgNVTb
>>861
Foo::Foo() : a{ } { }
870デフォルトの名無しさん
2018/08/18(土) 17:36:29.52ID:/pVEXQTC
>>868
そんなことできたのかぁー。うぼぁー。
871デフォルトの名無しさん
2018/08/18(土) 17:36:36.32ID:dGIgNVTb
あ、被った
すまんこ
872さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/08/18(土) 17:36:58.77ID:ONgNSdiS
今時はSSDだろ。SSDにデータ移行しなよ。VS2017が数秒で起動するぜ。
873デフォルトの名無しさん
2018/08/18(土) 18:54:50.29ID:dGIgNVTb
うんC:はSSD一択だね
できればSLCのやつ
874 ◆QZaw55cn4c
2018/08/18(土) 19:32:14.99ID:/9y7PjMS
>>872
何もかもがめんどくさっくて、C ドライブになんでもたんまりと仕込むのが好きなんですが、
1TB くらいある SSD ってお高いんでしょう?
875デフォルトの名無しさん
2018/08/18(土) 19:49:21.94ID:Q0JvwYe1
最近は途中にマウント出来るのよ
876デフォルトの名無しさん
2018/08/18(土) 19:55:17.69ID:gititOy1
>>874
例えば、だが
Crucial SSD 1000GB MX500 内蔵2.5インチ 7mm ¥23,738
877デフォルトの名無しさん
2018/08/18(土) 21:21:58.94ID: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
878さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/08/18(土) 21:38:06.56ID:hlXM+cNJ
型を分けて、共通型を使えば?
879デフォルトの名無しさん
2018/08/18(土) 23:59:13.75ID:3zCcdQf6
>>874
きみなら一時間とは言わないが、一日でそのくらい稼ぎ出すんやろ?
880デフォルトの名無しさん
2018/08/19(日) 00:05:39.35ID:RqnFNWUi
>>878
こうすればokというのはわかるけども面倒
template<typename LT, typename RT>
void test(LT const& a, RT const& b){

}
881857
2018/08/19(日) 01:30:39.96ID:KCtnHGyc
>>860
ありがとうございます!
これでやってみます!

>>858
vim、興味深いですが、慣れるまで時間がかかりそうですね^^;
882デフォルトの名無しさん
2018/08/19(日) 09:02:49.22ID:qd68oMAq
じゃあメモ帳で。
883デフォルトの名無しさん
2018/08/19(日) 09:12:46.20ID:qaYG8ur7
notepad++かサクラエディタ

https://forest.watch.impress.co.jp/library/software/notepadplusp/
https://sakura-editor.github.io/download.html
884デフォルトの名無しさん
2018/08/19(日) 09:25:18.62ID:wM6XArJ0
vim は、

迷ったら、Esc を押して、コマンド入力モードにする。
そこで、a を押せば、append 文字入力モードになる

:q! 保存せずに終了
:wq 保存して終了
885デフォルトの名無しさん
2018/08/19(日) 09:26:24.72ID:xXXJlhyc
今は spacemacs 以外あり得ないよ

欠点が厳密にゼロ個な完全なチョイス
886デフォルトの名無しさん
2018/08/19(日) 09:40:59.64ID:0vPM1br5
最近はVSCodeが使い物になってきたぞ
CMakeとの連携も賢い
補完がまだ遅いが
887857
2018/08/19(日) 10:56:19.69ID:KCtnHGyc
自分はサクラエディタを10年以上愛用しています。
VisualStudioはコンパイラ兼デバッガとして利用してます。
888デフォルトの名無しさん
2018/08/19(日) 14:03:03.06ID:5+hPFDRj
俺の main.cpp が 9万5千行 を超えた
ファイルサイズにして2.37MBある
クラス内でなら前方参照が可能なC++の盲点をついて
適当な struct でプログラム全体を丸ごと囲って
前方参照しまくり & ヘッダに全部書くスタイルで
一つのファイルに全部押し込めた
C++サイコー
889デフォルトの名無しさん
2018/08/19(日) 14:03:58.10ID:5+hPFDRj
ちなみにコンパイルが遅くなるのと
コード補完が重くて使い物にならなくなるので
素人にはお勧めしない
890デフォルトの名無しさん
2018/08/19(日) 14:13:18.08ID:MSEMVqOe
キモイコードだなぁ。メンテナーが泣くぞ。
891デフォルトの名無しさん
2018/08/19(日) 14:20:44.33ID:5+hPFDRj
大丈夫
サンデープログラマーで俺一人だけしか書かないから
ソースコードも公開してないしな
892デフォルトの名無しさん
2018/08/19(日) 14:22:38.72ID:RqnFNWUi
なんのプログラムを書いたらそうなるんだ・・・
893デフォルトの名無しさん
2018/08/19(日) 14:58:05.30ID:0c0A7VGq
>>888
キモすぎやろ…

>>891
見してくれ
894デフォルトの名無しさん
2018/08/19(日) 15:04:46.82ID:5+hPFDRj
こういうのは怖いもの見たさみたいなのもあると思うし
これだけでコンパイルして動くものでもないので一応ソースコード
あまりにもアレで、そっ閉じだろうけど
http://www.geocities.jp/notenop/tomato_player/main.cpp

コンパイル済みのソフトは
http://www.geocities.jp/notenop/tomato_player/index.html
からダウンロードできる

非同期処理に俺が思いついた横断的でトリッキーなアイデア
https://qiita.com/notenopg/items/40571e69986a58b888a0
↑が使われている
安全にキャンセル出来なきゃ await の意味ないでしょ!ってなもんで
でもなかなか理解されないんだよなぁ、すごいアイデアだと思うんだが

それからツリービューのアイテムのピン止めのアイデアは
お気に入りやタブの代わりになって画期的だと思うんだが
何故マイクロソフトがエクスプローラに実装しないのか謎
特許関係かね
あとはフォルダ階層をそのまま扱える木構造なプレイリストとか

そんなことやってたら9万行超えました
ちなみにUIはDirectXでちまちまフルスクラッチで手書き
その代わりその辺のソフトに負けない速度で、4K対応
895デフォルトの名無しさん
2018/08/19(日) 15:07:41.51ID:5+hPFDRj
庶民には理解できなくても
プログラマであるあなたたちなら
ピン止めできるツリービューが如何に画期的か理解できると思うんだよね
タスクバーでも何でもピン止めの時代なのに
ツリービューもピン止めできて良いと思うのよね
896デフォルトの名無しさん
2018/08/19(日) 15:09:21.21ID:5+hPFDRj
ああ、ツールバーとかスクロールバーとかのレベルで
全部フルスクラッチでDirectXで手書きだから
897デフォルトの名無しさん
2018/08/19(日) 16:00:06.94ID:RqnFNWUi
庶民なる俺様にはピン留出来ることの利点がわからん
898デフォルトの名無しさん
2018/08/19(日) 20:23:08.28ID:qaYG8ur7
サクラエディタが優秀だということは分かった
899デフォルトの名無しさん
2018/08/19(日) 21:38:13.69ID:Vpx5N+CG
見て欲しくて我慢できなかったんだな
900 ◆QZaw55cn4c
2018/08/19(日) 22:28:08.34ID:bW/fB7v7
>>711
https://www.amazon.co.jp/dp/4871481689/
901デフォルトの名無しさん
2018/08/20(月) 08:03:46.47ID:4c85aa3D
>>900
Makeって何?
902デフォルトの名無しさん
2018/08/20(月) 14:14:50.32ID:PcIDGZDw
>>901
来年にはSunOSにも移植される予定の超最新自動ビルドツールの紹介だよ!
903デフォルトの名無しさん
2018/08/20(月) 15:49:07.20ID:YVC1gYT/
>>901
オライリーがおかしな実験をする本だよ
904 ◆QZaw55cn4c
2018/08/20(月) 18:47:45.43ID:VU5jvdn2
>>901
昔から使われている原始的といってよいビルドツールです
makefile に依存関係を書いておいて、コマンドラインで「 make -j」と起動すると、記述した依存関係にしたがってコンパイル・リンクが行われます
905デフォルトの名無しさん
2018/08/20(月) 18:59:55.06ID:ftO9aq8g
Linuxなんかで配布されたソースから実行ファイルを作成したいって時にお世話になります
906デフォルトの名無しさん
2018/08/20(月) 20:29:15.33ID:MlhHAxXO
>>904
この本を読めばコンパイルについても分かるの?
907 ◆QZaw55cn4c
2018/08/20(月) 20:46:46.88ID:VU5jvdn2
>>906
>>900 は make を C で記述するものであり、コンパイル自体について記述するものではありません
908デフォルトの名無しさん
2018/08/20(月) 23:46:22.40ID:qkN29+U3
クラス生成に挫折したのかな?w
909デフォルトの名無しさん
2018/08/21(火) 00:03:12.90ID:Y1eCmHG/
C++自体の本はたくさんあるのにビルドやプロジェクト構成について解説した本って全くないよな
コピペで受け継いできた秘伝のMakefileやconfigureが蔓延してるのなんとかしてくれ
売れないだろうがCMakeの解説本が一冊欲しい
910デフォルトの名無しさん
2018/08/21(火) 00:06:59.04ID:FygfW+En
cmake はつい最近のVisual Studio 2017アップデートで標準インストールされるようになったから潜在需要あるかもね…。
911デフォルトの名無しさん
2018/08/21(火) 00:51:54.00ID:zakr4cIe
なんでビルドツールっていつも怪物化しちゃうんだろうな
makeがもう誰も手に負えない怪獣のくせにずっと定番に居座ってて、「Makefileを作るツール」が乱立してそれぞれ怪物化してるの勘弁してほしい
912 ◆QZaw55cn4c
2018/08/21(火) 01:03:38.38ID:Wpz7rvAB
>>911
>makeがもう誰も手に負えない怪獣

make ですら怪獣になるのだったら、他の高機能ビルドツールはとっくに破綻している現状だったのか!と、ふと
913デフォルトの名無しさん
2018/08/21(火) 01:35:58.44ID:mIqstMqN
makefileなんて複雑な事求めないなら手でかけるレベルだよ
これが複雑で手に負えないとなると、プログラミングも怪しくなる
914デフォルトの名無しさん
2018/08/21(火) 01:36:31.95ID:Y1eCmHG/
ビルドについての教育がないがしろにされてるのが全ての元凶
ある程度以上の規模のプロジェクトを構成するベストプラクティスが示されているところを見たことがない
適当に好きなところから取ってきて動けばいいやくらいに改変して使ってるのが現状
915デフォルトの名無しさん
2018/08/21(火) 07:06:57.27ID:agJOmNk0
丁寧に書いてるのはこれくらい。

http://aegis.sourceforge.net/auug97.pdf
916デフォルトの名無しさん
2018/08/21(火) 11:19:53.91ID:zakr4cIe
複雑なことをしたいからビルドツールを使うわけでしてねぇ・・・
917デフォルトの名無しさん
2018/08/21(火) 11:24:41.92ID:mIqstMqN
したいという意思があるなら、がんばって理解も出来るだろう
そこまでしなくても、最低限のルール覚えれば使える
918デフォルトの名無しさん
2018/08/21(火) 11:53:12.22ID:gERn4ySS
>>915
goto有害説をもじってるんだなw

Makefileを書いていていつも思うのは
ソースファイルの依存関係はソースファイルの中に書いてあるのに
それをまた二度手間で書かねばならないのがイヤ
面倒くさいのはともかく間違えやすいから
919デフォルトの名無しさん
2018/08/21(火) 12:20:54.13ID:JvEAafEP
>>918
automake とか gcc -MM とかの話?
920デフォルトの名無しさん
2018/08/21(火) 12:38:18.13ID:Dn6CvPAP
rustとc++どっちも使ってる人いる?
921デフォルトの名無しさん
2018/08/21(火) 12:59:21.72ID:gERn4ySS
>>919
gcc -MMか、いいこと聞いた
ありがとう
922デフォルトの名無しさん
2018/08/21(火) 13:56:49.24ID:Y1HyydAv
>>919
詳しい解説サンクス
こんなのがあったのか
923デフォルトの名無しさん
2018/08/21(火) 16:55:02.40ID:59eaeAGG
>>917
ここで根性論とはセンスあるわ
もちろんエンジニアでなく笑いの
924デフォルトの名無しさん
2018/08/21(火) 17:26:56.17ID:/1sxYxCd
エンジニアでなく園児にゃ
925デフォルトの名無しさん
2018/08/21(火) 19:40:42.98ID:Y1eCmHG/
WindowsでCMakeはfind_packageでだいたい詰む
vcpkgで対応できなければ結局自分で書くはめになり、面倒くさくなってmingw使うかVSのプロジェクトと同居することになる
926デフォルトの名無しさん
2018/08/22(水) 16:26:31.16ID:BT6ndhEb
C++ とは直接関係ないけど make/Makefile は擬似ターゲットを使って
バッチ的な定型処理を1個のファイルでまとめて管理できるのが便利でね。

make find WORD=...
全ソースから WORD= で指定した単語を含む行を検索、みたいな。

自分で作った便利ターゲットの使い方を usage: に書いとくのを忘れるけど。
927デフォルトの名無しさん
2018/08/22(水) 17:38:28.37ID:ua+EoSC8
>>926
perlでok
928デフォルトの名無しさん
2018/08/22(水) 19:10:59.67ID:lMaJ9TV4
C言語のビルドシステムならC言語で書けるようにするべきだと思うのだがよく分からない専用の言語を使わされるのは何故
この手のスクリプト言語は可読性がデバッガもないから中身を探るのが難しすぎる
929デフォルトの名無しさん
2018/08/22(水) 19:27:23.21ID:J6lVaoNe
君がそれを作って公開してみれば良いと思うんだが
930デフォルトの名無しさん
2018/08/22(水) 20:50:10.20ID:4/HlUcDP
C++のビルドツールといえばboostでお馴染みのbjam
実質boost専用に作ってるだけなのにあんな聳え立つ糞の山になっちゃうんだからビルドツールって怖いね
931デフォルトの名無しさん
2018/08/22(水) 22:31:38.77ID:G7PvCZFg
ソフト名がまだ決まっていないけどプログラム開発がスタートするって一般的だと思うんですが、
こういうときってコードネームを付けますよね?
このとき、VisualStudioのプロジェクト名もコードネームにしますよね?

アプリのウィンドウキャプションとかはアプリ名が決まり次第反映させられますけど、
プロジェクト名は途中で変えられないので、そのままになってしまいますが、しょうがないですよね?

要は社内の開発で問題なければOKで、
リリースしたときにコードネームがどこかに混じってしまわないように気を付ければいいだけですよね?

みなさんがどうされてるのか気になったのでお聞きしました。
932デフォルトの名無しさん
2018/08/22(水) 23:03:51.57ID:4/HlUcDP
必要なら変えるよ
slnやvcxprojはただのxmlだから名前変えるだけならそんなに難しくない
933デフォルトの名無しさん
2018/08/23(木) 00:06:20.88ID:0/a4zf/K
英国ポエムシリーズでしょう
bjam=ブージャムは言うまでも無く、パンジャンドラムすらも無論英国のポエムから採られた
他にも兵器界隈ではスナークとかが存在するのは周知の通り

日本だと仏教用語から採ればいいんじゃあないですかね
934931
2018/08/23(木) 00:10:54.70ID:U43QDDsh
>>932
なるほど〜、プロジェクト関連ファイルを編集することで名前を変えることはできるんですね。
なら気兼ねなく最初はコードネームにしときます。
ありがとうございました^^
935 ◆QZaw55cn4c
2018/08/23(木) 22:00:21.31ID:NMfUyUL+
std::ref() について教えてください

void f(:ostringstream &os) { ... }
int main() {
ostringstream s;
std::thread(f, std::ref(s));
...

とありましたが、なぜ呼び出し側で「おまじない」のstd::ref() が必要なのか理解できません
どんなときに呼び出し側で std::ref() が必要なのでしょうか?

テンプレート関係かと思いましたが
https://ideone.com/7fF53F
は問題なく、std::ref() が必要となるプログラム例を思いつくことができません

よろしくお願いいたします
936さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/08/23(木) 22:17:07.10ID:Z2Fii0dD
std::refの規格表とソースを見たか?
余計なコピーを抑制してるんだ。
937さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/08/23(木) 22:18:22.48ID:Z2Fii0dD
s/表/票/
938デフォルトの名無しさん
2018/08/23(木) 22:33:14.61ID:/6RK1Hlx
非参照なテンプレートな引数に一時変数を作らずに参照を渡せる
939 ◆QZaw55cn4c
2018/08/23(木) 22:52:37.79ID:NMfUyUL+
>>938
コメントありがとうございます
コピーコンストラクタが禁止されている std::cout をテンプレート引数にわたす場合で理解できました(かもしれません)
https://ideone.com/3eqEJY

一つ質問ですが、私なら、このプログラム例の y()
template<class T> void y((*f)(), T &os) { ... }
のように、テンプレートを書く時点で参照に書いてしまうのですが、
あえて非参照なテンプレート引数を書く「便利さ」みたいなものはありますでしょうか?
940デフォルトの名無しさん
2018/08/24(金) 02:37:15.13ID:kcQyW4E+
大阪はいたって平和
しょぼいにもホドがある
941 ◆QZaw55cn4c
2018/08/24(金) 03:55:21.10ID:A5L5xSI8
>>939
>あえて非参照なテンプレート引数を書く「便利さ」みたいなもの
std::thread のコンストラクタを眺めていて気が付いたこと…これ、可変長テンプレートですね
942 ◆QZaw55cn4c
2018/08/24(金) 04:17:14.78ID:A5L5xSI8
x86 の cmpxchg を使いたくて、gcc 拡張の __sync_val_compare_and_swap() を試していました
http://shinh.hatenablog.com/entry/20060817/1155781747
https://ideone.com/tpefmL

c++11 に std::atomic::compare_exchange_weak() を見つけましたが、これは適当に(任意に) new で確保したヒープにも適用できるものでしょうか?
943デフォルトの名無しさん
2018/08/24(金) 07:59:06.64ID:ZkSPfVdV
何で出来ないと思うの?
944デフォルトの名無しさん
2018/08/25(土) 08:53:09.59ID:/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)
{
}
};
何かうまい手ない?
945デフォルトの名無しさん
2018/08/25(土) 13:51:57.64ID:rL3qzGy6
そりゃまー、実体化した内部ではTは決定済みだろうから無理だろう。
Anyつかうとか・・・。
946デフォルトの名無しさん
2018/08/25(土) 14:24:43.54ID:rL3qzGy6
あ、すまん。おかしなこと言った。
えーっと、変数が一個じゃ足りないな。
イニシャライザーリスト使うか、下位関数にキックするか。
947デフォルトの名無しさん
2018/08/25(土) 15:05:48.05ID:XmdDRLnv
そもそもコンストラクタの委譲は再帰禁止だったと思うが
別のクラステンプレートのメンバ関数とか関数テンプレートで再帰するしかないと思う
948デフォルトの名無しさん
2018/08/25(土) 15:57:42.66ID:rL3qzGy6
https://wandbox.org/permlink/KrUV4MTPdV0l4OoO
興味があったのでそれっぽいコード書いてみた。
これキャッチするの無理だろ。
949デフォルトの名無しさん
2018/08/25(土) 16:53:35.24ID:rL3qzGy6
そういえば、例外の時にメモリ確保したらなんか弊害あるんだっけ?
昔、例外投げるときはメモリが足りなかったりとかクリティカルな状況だからやめろって言われたような気がする。
どうやったっけ?
950デフォルトの名無しさん
2018/08/25(土) 18:24:33.46ID:/11s7nnG
>>948
なんか面白そうなのうpしてくれてありがとう
すまん、今かなり酔っ払ってる
素面に戻ってからじっくり読むから
ちょっと待ってて
951デフォルトの名無しさん
2018/08/25(土) 18:56:26.92ID:5ar3I1wr
>>948
つ catch(A<B, C> E)
952デフォルトの名無しさん
2018/08/25(土) 19:23:40.93ID:r5O9PJUC
>>949
> そういえば、例外の時にメモリ確保したらなんか弊害あるんだっけ?
メモリー不足による例外発生時だとその例外処理時のメモリー確保自体が失敗するから例外処理(例えばログ出力)ができなくなるってこと
953デフォルトの名無しさん
2018/08/25(土) 20:44:16.72ID:rL3qzGy6
>>951
そらまー、引数がそれの時はできるけど、必ず把握はしてないでしょ。

>>952
あぁ、なるほど。ありがとう。
954デフォルトの名無しさん
2018/08/25(土) 20:51:49.46ID:cO/mJ1mq
>>952
メイヤーズ本に簡単な回避テクが書いてある
希ガス
955デフォルトの名無しさん
2018/08/25(土) 20:52:40.48ID:cO/mJ1mq
真にご法度なのはデストラクタの中での例外発生なんじゃ…
956デフォルトの名無しさん
2018/08/25(土) 21:06:57.48ID:tfF8aOe1
>>953
951だけど、何したいのか分からない。
catch (decltype(X) E)
ならええの?
957デフォルトの名無しさん
2018/08/25(土) 22:12:01.59ID:rL3qzGy6
https://wandbox.org/permlink/uEH5L9KBV9L1BdYn
うはー、気が向いたから、コンストラクタに推論させようと思ったら手間食った。あー疲れた。
しかし、理解が深まって良かったかな。うえー。

>>956
投げた本人ならできるけど別のところから飛んできたやつはつかめなくない?
958デフォルトの名無しさん
2018/08/25(土) 22:26:38.94ID:rL3qzGy6
しかし、色々試したが結局うまくいかず、解説ページの死角にぽろっとあるのが最高にリアル。
959デフォルトの名無しさん
2018/08/25(土) 23:19:11.18ID:5ar3I1wr
>>957
例えばA<B, C>とA<D>は全く別の型なのだから、どっちの型が飛んでくるかわからないのに両方catchするのは無理でしょ。
Base型で試そうとした痕跡があるけど、catchした先でA<B, C>またはA<D>の関数を呼び出そうとしているからそれもできない。

「別のところ」から飛んでくる例外の型はコンパイル時には確定しているのだから、メタプログラミングが通常やるように、「別のところ」のテンプレ引数でthrowする型を決定できるようにすればいいんじゃね?
960デフォルトの名無しさん
2018/08/25(土) 23:23:12.69ID:rL3qzGy6
>>959
うん。多分それで困ると思う。>>944が!
メタプロやらないから可能性は感じるけど限界がわからない。
まぁ、俺は興味で書いただけだから、>>944がどうするかはシラネ・・・。
961デフォルトの名無しさん
2018/08/25(土) 23:24:09.84ID:Efgla6YW
>>939
>あえて非参照なテンプレート引数を書く「便利さ」みたいなものはありますでしょうか?
threadの場合デフォルトで参照だとdata raceを気づかないで起こす可能性が上がる。
設計としてスレッドの引数はコピーして渡すほうが安全性は高い。

一般論で言えば一時オブジェクトを受け取るならconst&になるけど、
これだとmoveできないので逆に性能が劣化する場合がある。
962デフォルトの名無しさん
2018/08/25(土) 23:32:37.06ID:Efgla6YW
最近の提案なんかではメモリ確保失敗は回復が難しく一般的な例外とは
区別して考えるのが合理的なんじゃないかって話が出てきてる。
んで新しく静的な例外を導入しようっていう話が上がってる。
963デフォルトの名無しさん
2018/08/25(土) 23:39:53.83ID:rL3qzGy6
>>962
コンパイルタイムで例外わかるんだったら、普通にコンパイルエラーにしよ?
964デフォルトの名無しさん
2018/08/25(土) 23:47:31.99ID:cO/mJ1mq
メメント・メモリ
965デフォルトの名無しさん
2018/08/26(日) 02:56:15.82ID:zhFpXu2e
ヒープが無くなったら、HeapCreateで作れば良いのに。
by マリー・アンチョワネット
966デフォルトの名無しさん
2018/08/26(日) 14:06:36.91ID:Q8b2w7YQ
メモリがどれくらい必要なのか簡単に静的解析できたらいいなあと思うけど
再帰関数のメモリ消費量とか計算難しそう
967デフォルトの名無しさん
2018/08/26(日) 14:10:00.99ID:BwlGzYMc
mcc68kなんかは-Sでアセンブラ出力させると
コメントにスタック使用量を入れてくれてたな
968デフォルトの名無しさん
2018/08/26(日) 19:26:38.30ID:OiuVvKbz
割り込みになるけどちょっと質問させてください
struct hoge {

  int a, b, c;

};

auto a = hoge{1, 2, 3};

auto b = int[]{1, 2, 3, 4};

aみたいに型を明示して中括弧でくくった一時オブジェクトは作れるけど、
bみたいに配列を明示して作ることって出来ないですかね?
単に文法上の質問なんで「やる必要あるのか」とか「std::array使え」とか「構造体でラップしろ」は無しでお願いします
969デフォルトの名無しさん
2018/08/26(日) 19:31:13.94ID:Ws2ZfrVi
int[]は int * のシンタックスシュガー
970デフォルトの名無しさん
2018/08/26(日) 19:34:14.95ID:OiuVvKbz
int[4]でもだめだったんですよね・・・・
というか今思いついて(int[4]){1, 2, 3, 4}でやったらいけました
お騒がしてすみませそ
971デフォルトの名無しさん
2018/08/26(日) 20:05:48.84ID:qnZA5cjL
auto b ={1, 2, 3, 4};
972デフォルトの名無しさん
2018/08/26(日) 20:12:01.81ID:2rP1aXG6
>>970
それはC99の複合リテラルになるけど、C++で使ってよかったっけ?
973デフォルトの名無しさん
2018/08/26(日) 20:19:57.43ID:qnZA5cjL
warning: pointer is initialized by a temporary array, which will be destroyed at the end of the full-expression [-Waddress-of-array-temporary]
974デフォルトの名無しさん
2018/08/26(日) 20:21:33.00ID:hANAm2gW
https://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;
}

https://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;
}
975デフォルトの名無しさん
2018/08/26(日) 20:22:49.21ID:hANAm2gW
c
b1:8
b2:16
b3:16

c++
b2:16
b3:16
976デフォルトの名無しさん
2018/08/26(日) 20:27:01.66ID:hANAm2gW
うん
やっぱり
このスレにもアホしかいない
977さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/08/26(日) 20:28:44.90ID:Vxoswi+g
>>976
自分が天才だと思っているなら、こんなところで遊んでないで、なんか凄いソフトを作ってくれよ。
978デフォルトの名無しさん
2018/08/26(日) 20:31:31.48ID:BwlGzYMc
レス番が飛んでるなあ
979デフォルトの名無しさん
2018/08/26(日) 20:31:32.32ID:hANAm2gW
オレは自分を天才とか思ってない
オレは天才じゃないが普通の人間だ

この板にいる低学歴知恵遅れが
まともじゃないのがヤバイといってるワケ

教育の程度や知能に大きな問題があるといってるわけ
しかもその自覚がない
まずまともな人間になるところから
980デフォルトの名無しさん
2018/08/26(日) 20:44:37.30ID: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
981デフォルトの名無しさん
2018/08/26(日) 21:13:55.49ID:OiuVvKbz
あー、すみませんautoって書いたのがまずかったですね
試してみたんですが、実際にはコンストラクタに渡すので大丈夫でした

autoだと配列の一時オブジェクトへのポインタになるからまずいですね
982デフォルトの名無しさん
2018/08/26(日) 21:54:34.00ID:7VGl0ROF
>>981
autoでなくても不味いよ
983デフォルトの名無しさん
2018/08/26(日) 22:13:43.13ID:zpiwFHmU
>>977
ほんこれ
984デフォルトの名無しさん
2018/08/26(日) 22:53:29.24ID:OiuVvKbz
>>982
なにがどうまずいですかね?
985デフォルトの名無しさん
2018/08/27(月) 08:18:57.12ID:YiUsgylF
まったりとしてコクが無く、魚介類の生臭さを濃縮したような
スープと同じぐらい不味い
986デフォルトの名無しさん
2018/08/27(月) 13:42:16.09ID:QRiCvp9j
きも
987944
2018/08/27(月) 13:55:56.63ID:vY3QDx2y
>>948
お待たせ

俺っちの質問はnested_exceptionを使うケースなので、
948のコードでいうとBaseを多相的クラスにしといて
catch(Base&)で捕獲し、dynamic_castでBやCへの
アクセスを試みるというようなことだ

ところで
template<class... Ts> overloaded(Ts...)->overloaded<Ts...>;
これが読めん、何やってるのか教えてくれんか
988デフォルトの名無しさん
2018/08/27(月) 14:09:13.11ID:vY3QDx2y
>>955
std::uncaught_exceptionというのがあるね
989デフォルトの名無しさん
2018/08/27(月) 14:23:40.86ID:QRiCvp9j
>>987
クラステンプレートの引数の推論補助(deduction guide
990デフォルトの名無しさん
2018/08/27(月) 14:26:19.85ID:vY3QDx2y
>>989
deduction guideね、thx
991さまよえる蟻人間 ◆T6xkBnTXz7B0
2018/08/27(月) 15:42:34.96ID:JbKLTkj/
次スレ頼む
992デフォルトの名無しさん
2018/08/27(月) 16:02:51.38ID:r/wp9j7z
わたくしがC++で書き上げた超高性能次スレ立てマシーンなら次スレなんて一発ですよ
993デフォルトの名無しさん
2018/08/27(月) 16:03:14.62ID:vY3QDx2y
立てたよ
http://2chb.net/r/tech/1535353320
994デフォルトの名無しさん
2018/08/28(火) 01:49:58.08ID:rjIDuLFn
スレ番インクリメント機能はC++でも実装不可能なまでに困難な作業だったか
995デフォルトの名無しさん
2018/08/28(火) 06:13:26.80ID:UQgP5OTn
スレ立てが競合した時の排他制御を実装してくれ
996デフォルトの名無しさん
2018/08/28(火) 06:22:11.76ID: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!
997デフォルトの名無しさん
2018/08/28(火) 20:40:17.99ID:fGjEV9Ei
997
998デフォルトの名無しさん
2018/08/28(火) 20:40:50.96ID:fGjEV9Ei
998
999デフォルトの名無しさん
2018/08/28(火) 20:41:19.69ID:fGjEV9Ei
999
1000デフォルトの名無しさん
2018/08/28(火) 20:41:56.22ID:fGjEV9Ei
1000
ニューススポーツなんでも実況



lud20251025174026ca

ID:obfOsgMSのレス一覧:


162デフォルトの名無しさん
2018/07/20(金) 18:38:08.70ID:obfOsgMS
aを不定なまま使えば不安定になるかも知れないが
>>157のコードだけならなにも問題ない

>>157の回答としては
「許される」が正解
163デフォルトの名無しさん
2018/07/20(金) 21:07:42.21ID:0P/bZCls
許すのは誰なのかというところから(ry
164デフォルトの名無しさん
2018/07/20(金) 21:08:02.97ID:j7YVAWUD
コンパイラ様
165デフォルトの名無しさん
2018/07/20(金) 21:15:25.57ID: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を使おうとして「不安定な動きをする」
166デフォルトの名無しさん
2018/07/21(土) 03:52:30.13ID:ZZ4YytrN
コンパイラ様は、代金を支払うお客様より偉いのか。
167デフォルトの名無しさん
2018/07/21(土) 07:09:59.33ID:CT2MO4Nk
機械は偉さで動いてはいない
168デフォルトの名無しさん
2018/07/21(土) 07:12:46.06ID:d0oYLoM2
そのうち褒める褒めないで動作が変わるようなAIコンパイラが出てくる
169デフォルトの名無しさん
2018/07/21(土) 07:16:56.35ID:ZZ4YytrN
もうしわけない。金毘羅様に言及すべきだったのにそうしなかったのが情けない。
170デフォルトの名無しさん
2018/07/21(土) 11:56:28.78ID:KXd0ss1Q
警告オプション有効にして助言をもらおう
> warning: variable 'a' is uninitialized when used here [-Wuninitialized]
171デフォルトの名無しさん
2018/07/21(土) 12:20:29.40ID:RLP8Sp1U
C++勉強するたびに嫌いになってきて草
172デフォルトの名無しさん
2018/07/21(土) 12:23:02.98ID:L4ZstKjT
そんなのは道楽でC++やってるあまちゃんのたわごとだ
俺なんかは最初からC++以外に用意されてなかった
173デフォルトの名無しさん
2018/07/21(土) 12:34:14.56ID:Zy/M/93a
c++はできるだけの範囲で出来るだけのことをやればいい
意欲があればさらに進めばいい
むりして難しいことをやらなくてもいい
c関数での文字列の処理が嫌ならstring使えばいい
楽なところは楽でいい
174デフォルトの名無しさん
2018/07/21(土) 13:42:42.85ID:V/L9XjgX
template <typename TypeA, typename TypeB> void TempSet(TypeA* Obj, void (TypeB::*Method)())
{
*Obj->*Method;
}

これがエラーでコンパイルできないんですが、
TypeBのメンバ関数呼び出すのはどうやればいいんでしょうか?
TypeAはインスタンスのオブジェクトポインタです
175デフォルトの名無しさん
2018/07/21(土) 13:44:42.66ID:gIfo2zic
でも++が一番ストレスなく組めると思う。
176デフォルトの名無しさん
2018/07/21(土) 13:53:05.91ID:0t9tN8g5
>>174
TypeA はTypeBの間違いで、
Obj->Method();
でないの?
177デフォルトの名無しさん
2018/07/21(土) 14:00:56.99ID:0t9tN8g5
おっとこうか
(Obj->*Method)();
178デフォルトの名無しさん
2018/07/21(土) 16:20:10.80ID:FasZjosd
>>177
なるほどそれですね、ありがとうございます。
179デフォルトの名無しさん
2018/07/21(土) 18:50:32.76ID:yF+tsqCG
VMWare使ってLinux入れてみた
貧弱なPCでめちゃくちゃ重すぎるがコレで普通にコンパイルはできる
いままで黙ってたがMSのコンパイラでコンパイルしてたからな

やっとオレの芸術的なパーザをコピペで作る準備が整った
180デフォルトの名無しさん
2018/07/21(土) 19:53:50.78ID:IjOYQkhe
やっぱワッチョイ必要だな これ
181デフォルトの名無しさん
2018/07/21(土) 19:54:08.06ID:4OwLAQG2
コンパイルするためだけにVMWarewwwwwwwwwwwwwwwww
182デフォルトの名無しさん
2018/07/21(土) 20:17:49.81ID:Y8T9UzT7
>>179
DELLのPC安いから買うといいよ
183デフォルトの名無しさん
2018/07/21(土) 20:18:57.06ID:ZZ4YytrN
ubuntu on windows は、ウィルス対策ソフトのウィルス・バスターがubuntu上のプロセスを監視対象として認識しないらしく、きびきびと起動・実行できる。
それがいいことか悪いことかは、さておき。
184デフォルトの名無しさん
2018/07/21(土) 21:04:13.24ID:CT2MO4Nk
>>181
何かおかしいか?
185デフォルトの名無しさん
2018/07/21(土) 21:05:35.42ID:o4R9sYuw
botに反応するなよ
186デフォルトの名無しさん
2018/07/21(土) 21:08:08.82ID:CT2MO4Nk
botがそんな反応するか
そういうことにしたいのなら
見逃してやるが
187デフォルトの名無しさん
2018/07/21(土) 21:18:01.24ID:gFGCO6jl
見逃してもらえないとどうなっちゃうの?
188デフォルトの名無しさん
2018/07/21(土) 21:23:00.95ID:CT2MO4Nk
何がおかしいのか聞こうか
189デフォルトの名無しさん
2018/07/21(土) 22:50:00.50ID:yF+tsqCG
32bitのlinuxしか入らんから
それでもいちいちめんどくさいことは分かった
190デフォルトの名無しさん
2018/07/21(土) 23:13:14.47ID:NpMyvs3y
macならdockerでlinux環境作るのもありかなと思ったが、
winだとまだdockerインストールめんどくさげだね。
191デフォルトの名無しさん
2018/07/22(日) 12:08:37.73ID:LuRYHz2h
>>179

自分もvmwareでlinux入れてましたが、メモリ4GB(有効なのは約3GB)の初代i3ノートPCで、vmware割当メモリ700MBくらいで使ってましたが
かなり重かったけど立ち上がったらそこそこスムーズに使えてました。
メモリ8GBくらいあればvmwareに1GB〜2GBくらい割り当てれば、そこそこストレスなく使えそうな気がします。

ちなみにすでに知ってるかもしれませんが、win10だとubuntu?っぽいのを直接インストールできます。
windows内にゴミがたくさんできそうだから個人的には躊躇しますが。

http://www.atmarkit.co.jp/ait/articles/1608/08/news039.html
192デフォルトの名無しさん
2018/07/22(日) 14:07:01.86ID:ST9MozRw
それは入れないほうがいいよ
互換性問題があるしかなり機能を絞られてる
使ってみてわかる誰得機能
容量も十数G必要

VirtualBoxを普通にいれたほうが使い勝手がいい
193デフォルトの名無しさん
2018/07/22(日) 20:18:52.55ID:mbi94QjP
> 容量も十数G必要
いや1GBも要らんよ、どこ確認したんだw

WSL丸ごと%LocalAppData%\Packages\CanonicalGroupLimited.*.ならんちゃらに突っ込まれる形式だから
ホストOSにゴミが残るってのも杞憂

最近はDocker Engineがそれなりに動く程度には互換性も高まってきてるみたいね
エクスプローラのアドレスバーからbashで窓側をカレントディレクトリにして起動できるのが良い
194デフォルトの名無しさん
2018/07/22(日) 20:20:13.96ID:Nia5Zbws
>>192
> 互換性問題があるしかなり機能を絞られてる

WSL(Windows Subsystem for Linux)は、C++やLinuxシステムコールを使ったGNUプログラミング環境としては必要十分だと思うけど、具体的にどんな問題あるの?
195デフォルトの名無しさん
2018/07/22(日) 20:26:16.94ID:tfHLB3F/
>>194
サービス書くときかな。
他はWSLが楽だと思う。
196デフォルトの名無しさん
2018/07/22(日) 20:28:26.39ID:tfHLB3F/
Linuxを使う意図はサーバーか組み込みなので、WSLで足りない場合もあると思うんだけど、ひな形があれば済む話かもしれんね。
197デフォルトの名無しさん
2018/07/22(日) 20:31:49.81ID:ST9MozRw
サーバ系がサポートされてない
使うならVM使ったほうがいいよ
ファイルシステムもwindowsのものの上に作られてるのであれこれ問題が出る

>>193
1Gというのが笑えるw
コンパイルしないのかw
198デフォルトの名無しさん
2018/07/22(日) 20:34:24.26ID:tfHLB3F/
>>197
VMは大げさすぎるかな。
使えるときはWSLを積極的に使っていきましょうよ。
とてもいいものですから。
199デフォルトの名無しさん
2018/07/22(日) 20:41:37.63ID:tfHLB3F/
VMは一つのパソコンで複数のOSを動かすのでOSの数だけメモリーを食うんですよね。
その点、WSLはWindowsがLinuxのようにふるまうだけなのでWindows分のメモリーしか食いません。
そんなわけなので、お財布にやさしいんです。
それでいてサービスの開発以外では全く遜色在りませんし、そもそもサービス開発だって、大詰めを迎えるまではdaemonとして起動することはないでしょう。
200デフォルトの名無しさん
2018/07/22(日) 20:42:00.95ID:ST9MozRw
bash使うだけならわかるけどコンパイルも含めて何か使おうとするなら
既知の問題や互換性に問題もあるものを選ぶのはクレバーだと思わない
201デフォルトの名無しさん
2018/07/22(日) 20:44:34.92ID:ST9MozRw
WSL上のバッドノウハウをひたすら集めたいとか
縛りのある環境のほうが燃えるというなら止めはしない

ただわからない人に勧めるものじゃないなって思う
不具合があった場合それがどこ由来なのか特定できない人間には特にすすめちゃダメ
202デフォルトの名無しさん
2018/07/22(日) 20:45:31.78ID:tfHLB3F/
>>200
ディストリビューターが開発する本物のディストリビューションですからまったく問題ありませんね。
Canonicalが開発した本物のUbuntuがWindowsで動くのです。
もちろんDebianであっても同じことです。
203デフォルトの名無しさん
2018/07/22(日) 20:50:22.91ID:ST9MozRw
>>199
>>202
ディストリビューターが提供しようが
WSLはlinuxでもないwindowsでもない不思議な物
両方の制限の積 windows ∩ linuxでありわざわざ苦労することはないよ

windows上の疑似linuxであってかなりニッチな物
どこかおかしくても不思議じゃない
204デフォルトの名無しさん
2018/07/22(日) 20:56:04.07ID:tfHLB3F/
WSL、CMake、VCPKGがお勧めキーワードです。
C++ユーザーにはUbuntuをお勧めします。
gcc-7を導入してC++-17をご利用ください。
205デフォルトの名無しさん
2018/07/22(日) 20:56:30.30ID:sWlXYLBw
どこかおかしくても不思議じゃない(どこがおかしいのかは知らない)
206デフォルトの名無しさん
2018/07/22(日) 20:57:52.61ID:Nia5Zbws
今のWSLはLinuxのdaemonもサポートしてるから問題ないと思うんだけど、具体的にどんな問題起きたの?
207デフォルトの名無しさん
2018/07/22(日) 20:58:04.83ID:tfHLB3F/
Visual Studio 2017にはLinux DebugとLinux Releaseというターゲットがあり、標準でLinuxをサポートしていますよ。
208デフォルトの名無しさん
2018/07/22(日) 20:58:48.25ID:ST9MozRw
c++使うような厳格さを求める人間がWSL使ってるとは思わなかった
WSLで動いたとして他の環境で動くとは保障されないのに
どこがおかしいのか推定もできない仕組みの上で何故ごみを作るんだ
209デフォルトの名無しさん
2018/07/22(日) 21:01:33.45ID:tfHLB3F/
>>206
init機構がWSL用だから。
それを言い出すと、RedhatとUbuntuだって違うじゃないかということになるけど、Redhatに配備するものはRedhatで開発してたのが今までのスタイルなので、VMのほうが良いという人はその点を指摘してるんじゃないのかな。
それ以外にWSLを使わない理由がないので。
210デフォルトの名無しさん
2018/07/22(日) 21:04:40.18ID:tfHLB3F/
まあ逆に言うと、WSLで動かないのであれば、Linuxディストリビューション間でも可搬性が無いよね。
211デフォルトの名無しさん
2018/07/22(日) 21:05:04.20ID:Nia5Zbws
>>208
実機Linuxならどこがおかしいか推定できるという根拠はないでしょ。
むしろ、WSLのような抽象化された環境でさえ動かない稚拙なものを実機に持っていく気なの?と言い返すことさえできるのだけど。
212デフォルトの名無しさん
2018/07/22(日) 21:07:21.30ID:ST9MozRw
違う違う
普通のlinuxで動くコード書いててもWSL上では動かせない場合があるのが問題だろ
213デフォルトの名無しさん
2018/07/22(日) 21:09:42.72ID:tfHLB3F/
>>212
そういうものがあるのかどうか知らないけど、あるならなおさらWSLで開発したほうが可搬性を担保できてよいのでは。
214デフォルトの名無しさん
2018/07/22(日) 21:10:55.12ID:ST9MozRw
>>211
根拠とかそんなんじゃない
考慮すべきことが多すぎる

自分のコードがおかしいのか
linuxのそもそもの仕組みがおかしいのか
MSのWSLがおかしいのか
ディストリビューターの提供してるイメージがおかしいのか

それぞれが組み合わさっておかしくなってるのか考慮する条件が増えすぎる
215デフォルトの名無しさん
2018/07/22(日) 21:11:03.95ID:Nia5Zbws
>>212
問題なんてほぼないでしょ。
VM上で動いて喜べるレベルならWSLでも同じだから。

あなた、WSLで動作確認したことあるの?もしや憶測で書いてない?
216デフォルトの名無しさん
2018/07/22(日) 21:11:34.45ID:tfHLB3F/
clはかなり寛容なコンパイラなので、gccでコンパイルできるかチェックしとくとより良いコードが書けますよ。
そんな用途でもWSLは素晴らしいと思います。
217デフォルトの名無しさん
2018/07/22(日) 21:13:06.02ID:tfHLB3F/
>>214
それたぶん、自分のコードが悪いと思いますよ。
Linuxは十分安定してるので、Linuxの問題を真っ先に疑うのは、自信ありすぎだろって感じます。
218デフォルトの名無しさん
2018/07/22(日) 21:14:34.32ID:ST9MozRw
>>215
最初のころはめちゃくちゃだったのでもう入れてない
ハードリンクの仕組みもおかしいし
タイムスタンプもおかしいし
TCPなど制限も山盛りあった
すでにあるコードも何故か動かないことが多かった
219デフォルトの名無しさん
2018/07/22(日) 21:16:43.51ID:tfHLB3F/
開発環境はWSLがいいんじゃないですかね。
220デフォルトの名無しさん
2018/07/22(日) 21:19:27.33ID:Nia5Zbws
>>214
抽象化されていると問題特定が容易と考えるのが一般的だと思っていたのだけど、
抽象化された環境は問題特定が難しくなるという考え方は画期的ですね。
221デフォルトの名無しさん
2018/07/22(日) 21:21:02.02ID:ST9MozRw
linuxが安定ってジョークか
linuxカーネルは常にバグがボコボコ出てるよ
222デフォルトの名無しさん
2018/07/22(日) 21:22:41.34ID:tfHLB3F/
クロスプラットフォームを標榜するなら、開発環境としてWindowsを選択するとよいです。
Visual StudioはWindowsとMacで使えます。
WSLによってVisual StudioからLinuxバイナリを構築できます。
MSBuildとCMakeは悩みどころですが、MSBuildはサポートが手厚く、CMakeはVisual Studioが無くても構築できます。
そこらへんで選択するとよいのではないでしょうか。
223デフォルトの名無しさん
2018/07/22(日) 21:28:34.40ID:tfHLB3F/
まあ僕はVisual Studio、WSL、VCPKG、CMakeプロジェクトを使っているので、わかることはお答えしますよ。
224デフォルトの名無しさん
2018/07/22(日) 21:56:04.01ID:Nia5Zbws
悪いことは言わないので、LinuxプログラムはWSLで動くことを優先して書くことをお勧めする。
他人のために時間を使いたくないのは誰でも同じ。おのずと楽に評価できる環境に流れるのは止められない。
225デフォルトの名無しさん
2018/07/22(日) 22:35:05.45ID:Nia5Zbws
イスラームの救貧制度がかえって免罪符の役割を果たしてないか。
イスラームの救貧制度があることで、かえって商業上の強欲が横行していないか。
226デフォルトの名無しさん
2018/07/22(日) 22:37:37.06ID:Nia5Zbws
誤爆したけど、謝罪はしない。

イスラム教は野蛮な宗教である ★4
http://2chb.net/r/whis/1525163440/
227デフォルトの名無しさん
2018/07/22(日) 23:57:15.36ID:g7OD+nvH
だいたいでけてきたわ
コード修正をすることによって効果を簡単に計測できるように修正してる
こっちのが結構大変だったわ
228デフォルトの名無しさん
2018/07/23(月) 01:50:38.00ID:SStA1pnM
というわけでうpした
長い戦いだった
http://fast-uploader.com/file/7087832585811/
baka_source.zip

build.shを実行すると、3つの実行モジュールができる

3つとも少し修正した(解析処理はファイルがものすごい増えたから大きく修正したように見えるハズ)

 ・テストデータジェネレータ(データの出力個数の出方を少し修正した)
 ・ストレージ能力計測プログラム(I/OのアドバイスをOSに与えるように修正)
 ・解析処理(1. 解析の処理方法自体は一切かわってないがコードの構成をバカでも分かるように変更 2. I/OのアドバイスをOSに与えるように修正)
229デフォルトの名無しさん
2018/07/23(月) 01:56:28.48ID: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

詳細な解析処理をする前に
簡易な解析処理をしたい場合(ブロックの位置情報やサイズ情報なんかだけを先に取りたい場合)、
そのクラスにそのレベルの処理を突っ込んどけばいい
解析処理の詳細さの粒度はそこでテキトーにきめればいいと思う

レス:1-200 201-400 401-600 601-800 801-1000 ALL

このスレへの固定リンク: http://5chb.net/r/tech/1531558382/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 
  ↓この板の人気?スレ↓(一覧)
 
文字コード総合スレ Part11
【PHP】下らねぇ質問はここに書き込みやがれ 8
C#は糞2.0
もうすぐプログラマになって3年経つ
すべての行にコードの意味をコメントで書くアホウ
[RPA]PC自動化技術総合スレ[効率化] Part.3
いまだに LZH で配布してるヤツって何なの?
VBAなんでも質問スレ Part2
0からプログラミング始めたい
【日本語不自由】Eclipse Pleiades プラグイン
BASICの宿題はお前にまかせた
7payの脆弱性はAPIトークンが連番だったってこと?
十進BASIC
Microsoft Silverlight その9
ワイ「DSになるために勉強するで!」
Excel VBA 質問スレ Part61
「コンパイラ・スクリプトエンジン」相談室16
Android Studio Part3
ラズパイ4でc言語開発する方法教えてくれ
くだすれPython(超初心者用) その35
継続的インテグレーション (CI) を啓蒙するスレ
テスト
スレ立てるまでもない質問はここで 164匹目
Java入門・初心者質問スレ Part.11
C言語なら俺に聞け 152
プログラム始めたいけどrubyかPythonどっちが良い
掲示板を自作してみたい
東京パソコンクラブ
【GNU】Emacs Lisp 【Elisp】
10:52:41 up 8 days, 1:14, 5 users, load average: 175.90, 238.69, 260.33

in 0.85230898857117 sec @[email protected] on 103023