2ちゃんねる ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

C++相談室 part137

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

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

前スレ
C++相談室 part135
https://mevius.5ch.net/test/read.cgi/tech/1522495206/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
http://mevius.5ch.net/test/read.cgi/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.65 ID:FOAGvAbs.net
スレ作ってみましたが、これ設定間違ってますか?
ワッチョイほにゃららが出てきてない。

3 :デフォルトの名無しさん:2018/07/14(土) 18:42:45.47 ID:p9pW3bxe.net
>>1
スレの立て方は一番上に書いてある。
前スレや関連スレへのリンクも間違ってるぞ。

4 :デフォルトの名無しさん:2018/07/14(土) 18:59:13.88 ID:tzAF1ivs.net
ヘタクソかよ

5 :デフォルトの名無しさん:2018/07/14(土) 20:33:07.04 .net
スレ立て苦手か?

6 :デフォルトの名無しさん:2018/07/14(土) 20:48:45.99 ID:6fifTYMf.net
>>1
ume

7 :デフォルトの名無しさん:2018/07/14(土) 21:34:02.24 ID:xV7EJA5w.net
前スレの 1N2GRIlb0
ディスクキャッシュに入ってるってずいぶん前からわかってたのに
何でムダな作業をやらせたの?

8 :デフォルトの名無しさん:2018/07/14(土) 21:38:31.07 ID:1N2GRIlb.net
このスレの知恵遅れたちが
どんだけ頭悪いのかよおく分かっただろ

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

相当オツムが弱い
このスレは知恵遅れしかいない

9 :デフォルトの名無しさん:2018/07/14(土) 21:41:09.27 ID:1N2GRIlb.net
いまになって
分かってたとかいいだしてるしな

ディスク読む時間に知ったかぶって調子こいてた知恵遅れは
どこいったの?

10 :デフォルトの名無しさん:2018/07/14(土) 21:42:37.85 ID:xV7EJA5w.net
ん?
何度も指摘してたけど

11 :デフォルトの名無しさん:2018/07/14(土) 21:43:13.23 ID:1N2GRIlb.net
嘘コケ
ハゲ

知恵遅れは前のスレ読んで出直してこいや

12 :デフォルトの名無しさん:2018/07/14(土) 21:45:09.81 ID:1N2GRIlb.net
ハードディスクの内側読みこんで読みこみ時間がどうとかいってた
バカいる?

13 :デフォルトの名無しさん:2018/07/14(土) 21:45:30.57 ID:xV7EJA5w.net
測らせるならキャッシュに無い状態にしないとアホだろ

14 :デフォルトの名無しさん:2018/07/14(土) 21:46:18.02 ID:xV7EJA5w.net
はじめはキャッシュに入って無いんだから

15 :デフォルトの名無しさん:2018/07/14(土) 21:46:29.73 ID:1N2GRIlb.net
むしろなバカが指南した方法やコードでは
キャッシュのっかても数十秒かかってたってことだぞ

16 :デフォルトの名無しさん:2018/07/14(土) 21:48:09.38 ID:1N2GRIlb.net
このスレで教えを乞うてるヤツは
何度もデバッグで走らせてるハズのに
知恵遅れの方法やコード数十秒かかるってことだ

オレのは2秒かからない
知恵遅れは息してる?

17 :デフォルトの名無しさん:2018/07/14(土) 21:48:37.29 ID:xV7EJA5w.net
測定した結果は
fgetsの17秒とreadの1〜2秒しか無い

普通に読むだけで数十秒なんて測定結果は無い

18 :デフォルトの名無しさん:2018/07/14(土) 21:49:17.53 ID:1N2GRIlb.net
読み方次第で差は歴然と出る
オレの方法は最適な方法だからな

19 :デフォルトの名無しさん:2018/07/14(土) 21:50:16.06 ID:xV7EJA5w.net
fgetsは速いとか言ってなかった?
今遅いことが証明されてるのはfgetsだけ

20 :デフォルトの名無しさん:2018/07/14(土) 21:50:39.19 ID:1N2GRIlb.net
やっぱり知恵遅れはなにも分かってないわ
まず自分が呼んでる関数がどんな動作してるか分かってないからな

21 :デフォルトの名無しさん:2018/07/14(土) 21:51:14.96 ID:xV7EJA5w.net
何の工夫もないただのreadで2秒なら、
他の方法も読むだけなら2秒

22 :デフォルトの名無しさん:2018/07/14(土) 21:51:37.65 ID:1N2GRIlb.net
やっぱりこのスレは
相当な知恵遅れしかいない
CもC++も何も分かってない

それ以前の問題

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

ファイルポインタ使う標準関数は
このスレにいる知恵遅れにでも簡単に使えるように
openやread使って使いやすく作ってあるだけだからな

24 :デフォルトの名無しさん:2018/07/14(土) 21:54:36.27 ID:xV7EJA5w.net
fgetsが速いとか言ってたアホが
readとfreadの差を強調する

オーバーヘッドのオーダーは1
読み込みバッファが常識的なサイズであれば無視できる
fgetsのオーバーヘッドのオーダーはn
バッファサイズによらずオーバーヘッドは無視できない

25 :デフォルトの名無しさん:2018/07/14(土) 21:55:42.62 ID:1N2GRIlb.net
まずfreadもバッファもってるのすら分かってないからな

26 :デフォルトの名無しさん:2018/07/14(土) 21:56:36.36 ID:xV7EJA5w.net
freadで測定させれば証明出来るが

で、
もともと測りたかったディスクアクセスの時間は?
まさかキャッシュに入った状態が普通と考えてるわけではあるまい

27 :デフォルトの名無しさん:2018/07/14(土) 21:56:51.40 ID:1N2GRIlb.net
ファイルポインタがもってるバッファから
いちいちこっちのバッファにコピーしてんのに

まずその程度のことすら分かってない

28 :デフォルトの名無しさん:2018/07/14(土) 21:57:27.49 ID:1N2GRIlb.net
相当頭が悪いのが
知ったかぶってるのは分かる

29 :デフォルトの名無しさん:2018/07/14(土) 21:58:58.41 ID:xV7EJA5w.net
測って見ればわかるって

で肝心の解析コードはどうした?
糞遅いコードを自信満々にあげてたけど

30 :デフォルトの名無しさん:2018/07/14(土) 22:00:01.80 ID:1N2GRIlb.net
クソ遅い?
オレのコードを動かして速度測定したの?

オレより10倍以上低速に作る才能がある知恵遅れのくせに

31 :デフォルトの名無しさん:2018/07/14(土) 22:03:31.04 ID:xV7EJA5w.net
糞遅い
間違い無い

お前の環境で15GBのテキストを作って解析時間を測ってみな

32 :デフォルトの名無しさん:2018/07/14(土) 22:10:21.76 ID:1N2GRIlb.net
とりあえず
知恵遅れはほっといて

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

 https://ideone.com/cPZvWL

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

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

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

明日からこのテストデータを解析する処理を作る

33 :デフォルトの名無しさん:2018/07/14(土) 22:11:40.89 ID:1N2GRIlb.net
まず知恵億れはなにと比較して遅いとか書かないからな
オレは知恵遅れが書いたコードより少なくとも10倍以上速い処理を書いてる

34 : :2018/07/14(土) 22:17:02.80 ID:CBXc6tpD.net
>>32
なんか error がいっぱい出ているようだが…

35 :デフォルトの名無しさん:2018/07/14(土) 22:17:16.55 ID:xV7EJA5w.net
15GBのテキストの解析で8.6秒
これを越えればいい

36 :デフォルトの名無しさん:2018/07/14(土) 22:17:46.97 ID:1N2GRIlb.net
なんのエラー書けよ
エラーとかいわれても分かるワケがないだろ

ヴォケ

37 :デフォルトの名無しさん:2018/07/14(土) 22:18:22.90 ID:1N2GRIlb.net
で、そのコードはったのかオマエは

38 :デフォルトの名無しさん:2018/07/14(土) 22:19:29.69 ID:xV7EJA5w.net
>>33
fgets 17秒
これは俺じゃない

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

ディスクからの読み込み時間
とを比べて10倍とか言ってるの?

39 : :2018/07/14(土) 22:19:38.05 ID:CBXc6tpD.net
>>36
>>32 https://ideone.com/cPZvWL
の下の方にいっぱい書いてあるぞ?本当にコンパイルの通るコードなのか?

40 :デフォルトの名無しさん:2018/07/14(土) 22:20:14.44 ID:1N2GRIlb.net
8.6秒とかテキトーなことなら
なんとでもいえるからな

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

ファイル形式ちゃんとわかってんの

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

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

オマエはそれ未満だ

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

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

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

文字コードはS-JIS
改行はLFのみ

43 : :2018/07/14(土) 22:27:16.82 ID:CBXc6tpD.net
>>41
「unknown type name ‘size_t’」がインクルードファイルで直る問題なのか?
ideone に怒られないコードが書けないのか?

44 :デフォルトの名無しさん:2018/07/14(土) 22:29:41.45 ID:xV7EJA5w.net
数値は符号付き32bitに収まる値で
printf("%d", n);
で出力される文字列と同じ書式

45 :デフォルトの名無しさん:2018/07/14(土) 22:31:59.85 ID:1N2GRIlb.net
https://ideone.com/hi8bYd

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

バカはなにをいってるのか意味が分からないワケ

46 :デフォルトの名無しさん:2018/07/14(土) 22:33:55.81 ID:1N2GRIlb.net
なんか知恵遅れがバカみたいなレスをブツブツ書いてるし
ごちゃごちゃいってないでコードあげたらどうだ

47 :デフォルトの名無しさん:2018/07/14(土) 22:35:19.66 ID:xV7EJA5w.net
シングルスレッド、順番に全文字スキャンの処理で
処理時間は1文字平均約2クロック (Haswell)

最適化的にはこれが出発点
さらに高速化する価値がある処理であれば
マルチスレッド,GPU, AVX ...
まだまだ高速化の余地はある

48 :デフォルトの名無しさん:2018/07/14(土) 22:36:12.81 ID:1N2GRIlb.net
また知恵遅れがテキトーなこといってるしな

49 :デフォルトの名無しさん:2018/07/14(土) 23:49:17.06 ID:5xFWH4XP.net
残念ながらクソシンタックスが増えれば増えるほどアホでもテクニカルターム使って
アホと思われない活動が可能になって行くんだよ。

50 :デフォルトの名無しさん:2018/07/15(日) 00:49:14.70 ID:p2p9fdhp.net
>>32,45
サンプルデータ作成コードありがとうございます。
実行してみましたが面白いですねこれ。
完成したら数十ギガのデータ作って遊んでみたい。
サンプルデータができて説明しやすくなったので色々補足させていただきます。
ちょっと細かい内容になるので、今あるサンプルデータ作成コードを
使用されても問題ありません。

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

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

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


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

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

>つづく

51 :デフォルトの名無しさん:2018/07/15(日) 00:54:03.20 ID:p2p9fdhp.net
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.78 ID:p2p9fdhp.net
最後に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.59 ID:p2p9fdhp.net
参考として、ファイルを読み込んだら下記の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.70 ID:lbsq5rUe.net
そろそろ「ぼくちんのログ解析ソフトを名無しどもに作らせるスレ」でも立ててそっちでやってくれないか

55 :デフォルトの名無しさん:2018/07/15(日) 02:07:19.29 ID:eimWnm2X.net
いい加減にしろよお前
土方コーダに発注する気分でてめえのクソログの仕様ドヤ顔で書いてんじゃねえよ
ありったけスレ私物化して相談しまくったんだからそろそろ自分の手と頭を動かしたらどうだ

56 :デフォルトの名無しさん:2018/07/15(日) 02:58:06.76 ID:F1eG7opL.net
ID:p2p9fdhp さん、別のスレに移動を願います。

57 :デフォルトの名無しさん:2018/07/15(日) 04:38:00.97 ID:deogSIs/.net
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.13 ID:EFpmUWpC.net
てな議論はベアメタルでやるならともかく
依存処理系では特定OSの話になるし
抽象化されたハードウエアじゃ特性を仮定すること自体ナンセンス

59 :デフォルトの名無しさん:2018/07/15(日) 06:33:31.92 ID:F1eG7opL.net
>>57
申し訳ありませんが、C++と関係がない話は、他のスレでやってください。よろしくお願いします。
お気を悪くなされませんよう。

60 :デフォルトの名無しさん:2018/07/15(日) 11:31:30.36 ID:Y0/Ay92k.net
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.73 ID:Y0/Ay92k.net
>>60

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

がエラーにならないのはなぜでしょうか?

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

というだけの話

64 :はちみつ餃子 :2018/07/15(日) 11:59:00.99 ID:HERu1+Fl.net
>>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.69 ID:WB6myqsz.net
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.50 ID:lbsq5rUe.net
書き込んだものに区切り入れてないけどそれでいいの?

67 :デフォルトの名無しさん:2018/07/15(日) 12:11:00.69 ID:Y0/Ay92k.net
>>63

ありがとうございます。

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

>>64

ありがとうございました。

68 :デフォルトの名無しさん:2018/07/15(日) 12:12:20.49 ID:Y0/Ay92k.net
>>63

例えば、 Python では、相互に参照していてもOKです。

69 :デフォルトの名無しさん:2018/07/15(日) 12:15:07.36 ID:Y0/Ay92k.net
コンパイラーについての知識がないと理解しにくい部分でしょうか?

70 :デフォルトの名無しさん:2018/07/15(日) 12:15:22.56 ID:WB6myqsz.net
>>66
なにか、ヌル文字を読み込もうとしてるエラーのようで
なるほど、区切り文字というのを入れて
getlineとかを使用して読み込んでいくべきなのかな・・・・

71 :デフォルトの名無しさん:2018/07/15(日) 12:50:13.08 ID:WB6myqsz.net
とりあえず、区切り入れて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.43 ID:oGr67yTf.net
>>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.96 ID:oGr67yTf.net
あとエラー出力は正確に書いてくれないと、コード全部読まないといけないからしんどいです…

74 :デフォルトの名無しさん:2018/07/15(日) 13:18:02.66 ID:lbsq5rUe.net
>>67
C++はそういうコンパイルの仕方しないから
cppごとにオブジェクトファイル(クラスのインスタンスとしてのオブジェクトとかとは別の意味)というのを作ってから
オブジェクトファイル同士のリンクという作業をして目的の実行バイナリを作る
オブジェクトファイルは自分自身で完結してないといけないので、
「ValueFactoryとかいうクラスのポインタ」「ValueFactoryとかいうクラスがfriendだという情報」は持つことが出来るけど
(別のファイルがValueFactoryの実体を持ってると期待して)
ValueFactoryの実体作れとか実体使ってなんかやれ(そういう実行コードを保持しろ)と言われたら困ってしまうってこと

75 :デフォルトの名無しさん:2018/07/15(日) 13:19:42.19 ID:WB6myqsz.net
>>72
数字の配列はバイナリでエラー無いので
やはり、文字列はテキストに出力したほうがいいんかな
>>73
今度からはそうします
すみませんでした

76 :デフォルトの名無しさん:2018/07/15(日) 13:42:15.67 ID:oGr67yTf.net
もちろんバイナリ形式でもいいのだけど、その場合は文字列を固定長にするとか、tlv形式で作ってみては?
https://en.m.wikipedia.org/wiki/Type-length-value

77 :デフォルトの名無しさん:2018/07/15(日) 14:56:48.40 ID:p2p9fdhp.net
大規模ファイルの読み込みについて相談しているものです。

以下調査結果です。
ファイルは上記で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.48 ID:p2p9fdhp.net
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.77 ID:Y0/Ay92k.net
>>74

ありがとうございました。

80 :デフォルトの名無しさん:2018/07/15(日) 17:27:08.76 ID:1ys/w/8R.net
fseekをつかうのなんか絶対ダメだ

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

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

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

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

関係ないようで関係ある話だが
キャッシュがきいてない状態ではposix_fadviceを呼んでおくと
シ リ ア ル に大きなファイルを読み込むときには、計算機の状態によっては
劇的に改善することがある

81 :デフォルトの名無しさん:2018/07/15(日) 17:36:56.10 ID:1ys/w/8R.net
ちなみにファイルはUNIXでは
ブロックデバイスだからな

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

あとはもう分かるな

このスレにいるサル並の知能しかないようなヤツラ以外なら
わかるハズだからな

82 :デフォルトの名無しさん:2018/07/15(日) 18:02:19.58 ID:1ys/w/8R.net
まずストレージというハードウェアが
OSでどうやって抽象化されてるか
わかってないからな

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

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

まずなバカはこのスレで相談することが
バカな行為であることに気付かないといけない
バカななに聞いてもムダ
的外れなコタエしか返ってこない

83 :デフォルトの名無しさん:2018/07/15(日) 18:16:38.79 ID:F1eG7opL.net
>>80
> FILEポインタ使ってfreadしか使わないなら、はっきりいってfread使うメリットはまったくない

メリットはあるでしょ。システムコールのreadやReadFile()と違い、
FILE*を使ったfread()はアラインメントを無視した小さいバッファサイズで読み込んでも全体としての速度低下が起きにくい恩恵がある。

84 :デフォルトの名無しさん:2018/07/15(日) 19:07:48.62 ID:lbsq5rUe.net
13Gログ解析野郎と半角野郎が毎度毎度必ずコンビで出てくるのは何なんだろうなー
おっかしいなー

「ぼくちんのログ解析ソフトをぼくちんが考えた最強の名無しが作るスレ」でやってどうぞ

85 :デフォルトの名無しさん:2018/07/15(日) 20:22:05.00 ID:1ys/w/8R.net
低学歴で知能低いのが答えられる質問の範囲なんかたかがしれてる
知恵遅れでも回答できる質問に限定される

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

著しくレベルの低い質問なら回答できるワケだからな
情報として保存される価値すらない
ゴミ質問とゴミ回答

86 :デフォルトの名無しさん:2018/07/15(日) 20:27:33.82 ID:1ys/w/8R.net
昔ならググレカスでおわるような質問を
どやがおで低学歴知恵遅れが回答するスレがココだからな

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

オレのナワバリを荒らすなと低学歴知恵遅れが
主張している

87 :デフォルトの名無しさん:2018/07/15(日) 20:39:19.46 ID:oGr67yTf.net
あぼーん設定推奨
[ヲ-゚]

88 :デフォルトの名無しさん:2018/07/15(日) 22:46:04.59 ID:GtfCPRC1.net
POSIXの制限に起因するパフォーマンス低下を回避するためのドライバをさっき見たばかりだな。
ハイパフォーマンスの世界にはそういうのもあるんだな。

89 :デフォルトの名無しさん:2018/07/15(日) 23:08:51.14 ID:ugn7dRUi.net
>>85
解析のコード書けたの?
お前が全部作ってアップすればそれで終わる

90 :デフォルトの名無しさん:2018/07/16(月) 01:21:00.28 ID:6luw5g3K.net
とりあえずファイルすべての字句解析と
最低限のデータ取得できるとこまではできた
※ あとはデータを格納するだけ

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

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

https://ideone.com/E6QH2r

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

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

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

※ 処理内容はコードみたまんまのハズだ
※ 同じような処理がひたすら書かれてる
※ QQがなくなればめっちゃコード減るハズ
※ コードのほとんどはQQのムダ処理

91 :デフォルトの名無しさん:2018/07/16(月) 01:37:37.27 ID:RYaEyvne.net
うわっ
汚いコード

92 :デフォルトの名無しさん:2018/07/16(月) 10:44:37.38 ID:526Z5Rhh.net
15GBのテキスト解析8.6秒のマシンで
>>90の時間を計ったら54秒でした。
ファイルアクセスの時間は除いた純粋な解析処理です。

これがプロとアマチュアの差ですか。
まあ54秒でも使えるレベルではあると思うんで
これで良いんじゃないですかね?

93 :デフォルトの名無しさん:2018/07/16(月) 11:29:13.12 ID:80hpbb9v.net
OS のAPI を、直接呼んではいけない。
例えば、1バイト読み込みを千回やれば、千回API が呼ばれる。
ユーザーモードからカーネルモードへの、コンテキストスイッチが千回

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

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

ユーザー → (ライブラリ) → API

94 :デフォルトの名無しさん:2018/07/16(月) 11:39:40.02 ID:774eW9FT.net
>>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.00 ID:774eW9FT.net
続けて >>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.56 ID:774eW9FT.net
あと、freadだけで2秒のものに、freadの後にからなず fseek(fp, -10000, SEEK_CUR) を実行してみましたが、
処理時間は2秒で変わりはありませんでした。

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

88行目: data = real_data;

のせいで2秒から25秒に増加しているようです。

97 :デフォルトの名無しさん:2018/07/16(月) 15:13:00.28 ID:774eW9FT.net
>>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.05 ID:6luw5g3K.net
かわりがないとか
んなわけがないからな

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

作れるもんなら作ってみればいいわ

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

バカが書いたコードより間違いないなく速いハズだからな

100 :デフォルトの名無しさん:2018/07/16(月) 15:48:01.58 ID:80hpbb9v.net
同じデータで、2回テストしても、

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

だから、2回目のテストの前に、
メモリキャッシュをすべて破棄しておいてから、テストをしないといけない

101 :デフォルトの名無しさん:2018/07/16(月) 15:49:56.51 ID:6luw5g3K.net
コレで他のより遅いというなら
オレはもうバカの相談には二度とのらないし
コレ以上のコードは書かない

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

評価のしかたが分かってない

102 :デフォルトの名無しさん:2018/07/16(月) 15:51:18.48 ID:fNWu8+xr.net
>>98
>>92

103 :デフォルトの名無しさん:2018/07/16(月) 15:51:33.68 ID:6luw5g3K.net
だからコードあげろよ

104 :デフォルトの名無しさん:2018/07/16(月) 15:52:15.83 ID:fNWu8+xr.net
ザコ

105 :デフォルトの名無しさん:2018/07/16(月) 15:52:15.93 ID:6luw5g3K.net
シロウトは口だけだからな
クソニートのシロウトが口をはさむ余地なんかない

106 :デフォルトの名無しさん:2018/07/16(月) 15:53:09.83 ID:6luw5g3K.net
ザコはオマエだろ
クソニートのザコはコードあげずに
何秒とかいってるだけだからな

107 :デフォルトの名無しさん:2018/07/16(月) 15:55:20.94 ID:fNWu8+xr.net
数値への変換、何で標準ライブラリ使うのやめたの?
速いんでしょ?
www

108 :デフォルトの名無しさん:2018/07/16(月) 15:55:41.81 ID:fNWu8+xr.net
fgetsも何で使うのやめたの?
速いんでしょ?

109 :デフォルトの名無しさん:2018/07/16(月) 15:57:13.10 ID:6luw5g3K.net
読み込み速度で問題
そしてポインタをひたすらインクリメントだけして
ひたすら最小限の参照するだけの処理より速い処理なんか
逆立ちしてもかけるワケがないからな

110 :デフォルトの名無しさん:2018/07/16(月) 15:58:16.80 ID:6luw5g3K.net
fgetsはシロウトが使っても概ね良好な結果が約束されてる

111 :デフォルトの名無しさん:2018/07/16(月) 16:01:19.01 ID:fNWu8+xr.net
>>109
だからお前はザコ

112 :デフォルトの名無しさん:2018/07/16(月) 16:03:00.33 ID:6luw5g3K.net
クソニートがいきがってるしな
オレが書いたコードを超える速度がでるコードを
まずあげてみろよ

話はそこからだからな

113 :デフォルトの名無しさん:2018/07/16(月) 16:03:52.50 ID:6luw5g3K.net
クソニートはテキトーなことばっかりいって
口だけだからな

114 :デフォルトの名無しさん:2018/07/16(月) 16:03:56.64 ID:fNWu8+xr.net
糞コードがなぜ糞か
どこで時間がかかるのか
それくらい自分で調べよう

115 :デフォルトの名無しさん:2018/07/16(月) 16:04:43.29 ID:6luw5g3K.net
だからクソニートはコードあげろよ
オレのコードにムダは一切ない

116 :デフォルトの名無しさん:2018/07/16(月) 16:05:18.19 ID:fNWu8+xr.net
8.6秒のコードも
まだまだ改善の余地があるから

117 :デフォルトの名無しさん:2018/07/16(月) 16:05:51.54 ID:6luw5g3K.net
だからクソニートは口だけ8.6秒のコードをあげろよ

118 :デフォルトの名無しさん:2018/07/16(月) 16:06:30.96 ID:fNWu8+xr.net
まあせいぜい頑張ってね
ザコ

119 :デフォルトの名無しさん:2018/07/16(月) 16:07:20.43 ID:6luw5g3K.net
オマエはクソニートだからな
クソニートはコードの速度の心配をするまえに
自分の心配をしたほうがいい

120 :デフォルトの名無しさん:2018/07/16(月) 16:22:48.03 ID:6luw5g3K.net
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.89 ID:fNWu8+xr.net
まだキャッシュに入ってる前提でテストしてるの?
アホなの?

122 :デフォルトの名無しさん:2018/07/16(月) 16:30:26.25 ID:6luw5g3K.net
また低学歴知恵遅れのクソニートがテキトーなこといってるからな

キャッシュにのってるなら
オレのエレガントなコードを除いたすべてのクソコードも同じキャッシュがのった条件で
試験されてるわ

123 :デフォルトの名無しさん:2018/07/16(月) 16:31:48.69 ID:6luw5g3K.net
低学歴知恵遅れのクソニートってテキトーなこといって
なんかいった気になる

社会参加しないクソニートが2ちゃんねるで政治の話をするのと似てる

124 :デフォルトの名無しさん:2018/07/16(月) 16:31:59.31 ID:fNWu8+xr.net
まず54秒をどうにかしろよ

125 :デフォルトの名無しさん:2018/07/16(月) 16:33:40.35 ID:fNWu8+xr.net
1秒〜2秒なんてどうでもいい

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

これをどうにかしろよ

意味の無い所に時間をかける典型的なアホ

126 :デフォルトの名無しさん:2018/07/16(月) 16:34:35.04 ID:fNWu8+xr.net
木を見て森を見ず

127 :デフォルトの名無しさん:2018/07/16(月) 16:44:07.58 ID:774eW9FT.net
今 >>90 の解析コード見てますがseekを使わずreadで連続して読み込むところがとても参考になります。
こうやって読み込むんですね。

128 :デフォルトの名無しさん:2018/07/16(月) 16:54:07.55 ID:fNWu8+xr.net
いろいろとパクってるね

129 :デフォルトの名無しさん:2018/07/16(月) 18:00:25.42 ID:6luw5g3K.net
オマエはまずオレのエレガントなコードを参考するまえにな
この愚かなコードをどうにかしたほうがいい

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.68 ID:6luw5g3K.net
オレが引用したオマエのコードが
なんでお話にならないくらいダメなのか
理由が分からないならオマエはCをさわらないほうがいい

コレはいいきれる

速く動作させたいとか以前の問題だからな

131 :デフォルトの名無しさん:2018/07/16(月) 18:29:34.88 ID:fNWu8+xr.net
エレガントなコードwww
糞汚くて激遅なコード

お前は偉そうに語れるレベルじゃない

132 :デフォルトの名無しさん:2018/07/16(月) 18:30:40.10 ID:fNWu8+xr.net
ザコはザコらしくしてろ

133 :デフォルトの名無しさん:2018/07/16(月) 18:34:38.20 ID:fNWu8+xr.net
テキトーに作った1作目
前スレの>>851の24.3秒
の倍以上の時間で
もうネタ切れのザコ

134 :デフォルトの名無しさん:2018/07/16(月) 18:58:39.51 ID:6luw5g3K.net
ごちゃごちゃいってないでな
クソニートはオレより速くできるコードをあげたらどうだ

クソニートが邪魔でしょうがない

135 :デフォルトの名無しさん:2018/07/16(月) 19:00:10.74 ID:r07bWXyg.net
何の邪魔?
5chで名を上げようとでも思ってるの?w

136 :デフォルトの名無しさん:2018/07/16(月) 19:02:42.71 ID:6luw5g3K.net
どうでもいいが
クソニートは邪魔しかしないからな

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

まちがいなくオレのコードより速いコードなんかかけるワケがないからな

137 :デフォルトの名無しさん:2018/07/16(月) 19:04:00.40 ID:6luw5g3K.net
クソニートはこうやって社会と接点ももったつもりになってるワケ
分かりやすい

ニューススレなんかに湧いてくる社会参加してないクソニートとそっくりといっていい

138 :デフォルトの名無しさん:2018/07/16(月) 19:05:41.08 ID:6luw5g3K.net
ココは相談スレだからな
まちがいなくクソニートは相談スレの邪魔をしてる

139 :デフォルトの名無しさん:2018/07/16(月) 19:12:14.13 ID:r07bWXyg.net
自己紹介乙

140 :デフォルトの名無しさん:2018/07/16(月) 19:13:02.52 ID:6luw5g3K.net
もうね図星つかれて
顔真っ赤だからな

ホントな分かりやすいわ

分かってしまうのが怖いわ

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

低学歴なまま精神的に大人になってないような知恵遅れの典型的なレスパターンだからな
いわゆるヒキコモリというヤツだ

142 :デフォルトの名無しさん:2018/07/16(月) 19:20:00.33 ID:r07bWXyg.net
ID真っ赤なのは唯一人

143 :デフォルトの名無しさん:2018/07/16(月) 19:29:45.75 ID:6luw5g3K.net
クソニートは相談スレに参加できるレベルに達してないからな
いままで参加できてると錯覚してたワケ

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

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

くやしいの?

144 :デフォルトの名無しさん:2018/07/16(月) 19:32:29.15 ID:r07bWXyg.net
ホンモノのプロフェッショナルなオレ
ホンモノのプロフェッショナルなオレ
ホンモノのプロフェッショナルなオレ
ホンモノのプロフェッショナルなオレ
ホンモノのプロフェッショナルなオレ 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)


145 :デフォルトの名無しさん:2018/07/16(月) 22:04:34.63 ID:KaFNK61g.net
最近バーチャル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.09 ID:6luw5g3K.net
とりあえず、バカでも使えて修正できる
パーザーのクラスのサンプルでも気が向いたら作っといてやるわ

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

今の解析コードのサンプルでも位置とサイズの情報はガッチリとってるから
いくらでも改良できる
オレみたいなプロフェッショナルになると、こんなことハナから予見できてるワケ

147 :デフォルトの名無しさん:2018/07/16(月) 23:55:04.74 ID:k7Gq2lBS.net
>>94-97
「ぼくちんのログ解析ソフトを半角さんが作ってくれるスレ」を立ててそっちでやってくれないか

148 :デフォルトの名無しさん:2018/07/17(火) 04:14:16.72 ID:eLk9EV06.net
パーザーw

149 :デフォルトの名無しさん:2018/07/17(火) 12:14:32.32 ID:laha5pLP.net
頭がパーザー

150 :デフォルトの名無しさん:2018/07/17(火) 14:06:01.71 ID:I4a/6mEU.net
>>146
今のサーバはメモリに多少余裕があるから全部メモリに格納しようと
思ってましたが、よく考えると数人同時に使ったり他の低スペックサーバを
使うことを想定すると確かに名称、テキスト、数値の番号と位置など
最低限の情報だけ拾ってその都度ファイルにアクセスした方が
他の人に迷惑がかからず良さそうです。

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

>>147
相談しっぱなしは悪いと思い、色々調べた結果を出してしまいました、すみません。

151 :デフォルトの名無しさん:2018/07/17(火) 17:51:00.62 ID:rBemJlfB.net
悪いと思って無いだろ

152 :デフォルトの名無しさん:2018/07/17(火) 18:31:14.54 ID:0lwIt+yt.net
消えろ

153 :デフォルトの名無しさん:2018/07/18(水) 18:38:21.90 ID:zAL/THKp.net
ハイ、謝罪と賠償の要求いただきました!
みんなー、謝罪と賠償の要求出たぞー!

154 :デフォルトの名無しさん:2018/07/18(水) 19:24:54.30 ID:xHEVxC3Y.net
ごめんなさい
100円

155 :さまよえる蟻人間 :2018/07/18(水) 19:48:18.30 ID:IL3iPWys.net
パーサーもパーザーも間違いではない。

156 :デフォルトの名無しさん:2018/07/18(水) 19:51:38.49 ID:xHEVxC3Y.net
はいはいwww

157 :デフォルトの名無しさん:2018/07/18(水) 22:02:52.32 ID:L914sbje.net
int a;
if( hoge ){
const a = 1;
}
else{
const a = 2;
}

とすると不安定な動きをするのですが、
このコードは許されないのでしょうか。

158 :デフォルトの名無しさん:2018/07/18(水) 22:17:00.15 ID:WhjAyW4L.net
許される

159 :デフォルトの名無しさん:2018/07/18(水) 22:28:45.28 ID:4KYHyXSz.net
const a = 1; ってなんぞ??と一瞬思ったがintが省略されてるのか
それブロック内ローカル変数だから、外のint a;には関係しないよ
>157に書かれてるところは許されるけど、
書かれてないところでint a;を使ってたらそりゃ不安定だろうね

160 :デフォルトの名無しさん:2018/07/20(金) 17:29:54.53 ID:j7YVAWUD.net
不安定な動きはしないと思うが
ルールがわかってないだけで

161 :デフォルトの名無しさん:2018/07/20(金) 18:06:32.94 ID:TP/FZeZJ.net
外側のaを初期化してないから不安定になる可能性はある。

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

>>157の回答としては
「許される」が正解

163 :デフォルトの名無しさん:2018/07/20(金) 21:07:42.21 ID:0P/bZCls.net
許すのは誰なのかというところから(ry

164 :デフォルトの名無しさん:2018/07/20(金) 21:08:02.97 ID:j7YVAWUD.net
コンパイラ様

165 :デフォルトの名無しさん:2018/07/20(金) 21:15:25.57 ID:MVqkCRqy.net
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.13 ID:ZZ4YytrN.net
コンパイラ様は、代金を支払うお客様より偉いのか。

167 :デフォルトの名無しさん:2018/07/21(土) 07:09:59.33 ID:CT2MO4Nk.net
機械は偉さで動いてはいない

168 :デフォルトの名無しさん:2018/07/21(土) 07:12:46.06 ID:d0oYLoM2.net
そのうち褒める褒めないで動作が変わるようなAIコンパイラが出てくる

169 :デフォルトの名無しさん:2018/07/21(土) 07:16:56.35 ID:ZZ4YytrN.net
もうしわけない。金毘羅様に言及すべきだったのにそうしなかったのが情けない。

170 :デフォルトの名無しさん:2018/07/21(土) 11:56:28.78 ID:KXd0ss1Q.net
警告オプション有効にして助言をもらおう
> warning: variable 'a' is uninitialized when used here [-Wuninitialized]

171 :デフォルトの名無しさん:2018/07/21(土) 12:20:29.40 ID:RLP8Sp1U.net
C++勉強するたびに嫌いになってきて草

172 :デフォルトの名無しさん:2018/07/21(土) 12:23:02.98 ID:L4ZstKjT.net
そんなのは道楽でC++やってるあまちゃんのたわごとだ
俺なんかは最初からC++以外に用意されてなかった

173 :デフォルトの名無しさん:2018/07/21(土) 12:34:14.56 ID:Zy/M/93a.net
c++はできるだけの範囲で出来るだけのことをやればいい
意欲があればさらに進めばいい
むりして難しいことをやらなくてもいい
c関数での文字列の処理が嫌ならstring使えばいい
楽なところは楽でいい

174 :デフォルトの名無しさん:2018/07/21(土) 13:42:42.85 ID:V/L9XjgX.net
template <typename TypeA, typename TypeB> void TempSet(TypeA* Obj, void (TypeB::*Method)())
{
*Obj->*Method;
}

これがエラーでコンパイルできないんですが、
TypeBのメンバ関数呼び出すのはどうやればいいんでしょうか?
TypeAはインスタンスのオブジェクトポインタです

175 :デフォルトの名無しさん:2018/07/21(土) 13:44:42.66 ID:gIfo2zic.net
でも++が一番ストレスなく組めると思う。

176 :デフォルトの名無しさん:2018/07/21(土) 13:53:05.91 ID:0t9tN8g5.net
>>174
TypeA はTypeBの間違いで、
Obj->Method();
でないの?

177 :デフォルトの名無しさん:2018/07/21(土) 14:00:56.99 ID:0t9tN8g5.net
おっとこうか
(Obj->*Method)();

178 :デフォルトの名無しさん:2018/07/21(土) 16:20:10.80 ID:FasZjosd.net
>>177
なるほどそれですね、ありがとうございます。

179 :デフォルトの名無しさん:2018/07/21(土) 18:50:32.76 ID:yF+tsqCG.net
VMWare使ってLinux入れてみた
貧弱なPCでめちゃくちゃ重すぎるがコレで普通にコンパイルはできる
いままで黙ってたがMSのコンパイラでコンパイルしてたからな

やっとオレの芸術的なパーザをコピペで作る準備が整った

180 :デフォルトの名無しさん:2018/07/21(土) 19:53:50.78 ID:IjOYQkhe.net
やっぱワッチョイ必要だな これ

181 :デフォルトの名無しさん:2018/07/21(土) 19:54:08.06 ID:4OwLAQG2.net
コンパイルするためだけにVMWarewwwwwwwwwwwwwwwww

182 :デフォルトの名無しさん:2018/07/21(土) 20:17:49.81 ID:Y8T9UzT7.net
>>179
DELLのPC安いから買うといいよ

183 :デフォルトの名無しさん:2018/07/21(土) 20:18:57.06 ID:ZZ4YytrN.net
ubuntu on windows は、ウィルス対策ソフトのウィルス・バスターがubuntu上のプロセスを監視対象として認識しないらしく、きびきびと起動・実行できる。
それがいいことか悪いことかは、さておき。

184 :デフォルトの名無しさん:2018/07/21(土) 21:04:13.24 ID:CT2MO4Nk.net
>>181
何かおかしいか?

185 :デフォルトの名無しさん:2018/07/21(土) 21:05:35.42 ID:o4R9sYuw.net
botに反応するなよ

186 :デフォルトの名無しさん:2018/07/21(土) 21:08:08.82 ID:CT2MO4Nk.net
botがそんな反応するか
そういうことにしたいのなら
見逃してやるが

187 :デフォルトの名無しさん:2018/07/21(土) 21:18:01.24 ID:gFGCO6jl.net
見逃してもらえないとどうなっちゃうの?

188 :デフォルトの名無しさん:2018/07/21(土) 21:23:00.95 ID:CT2MO4Nk.net
何がおかしいのか聞こうか

189 :デフォルトの名無しさん:2018/07/21(土) 22:50:00.50 ID:yF+tsqCG.net
32bitのlinuxしか入らんから
それでもいちいちめんどくさいことは分かった

190 :デフォルトの名無しさん:2018/07/21(土) 23:13:14.47 ID:NpMyvs3y.net
macならdockerでlinux環境作るのもありかなと思ったが、
winだとまだdockerインストールめんどくさげだね。

191 :デフォルトの名無しさん:2018/07/22(日) 12:08:37.73 ID:LuRYHz2h.net
>>179

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

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

ttp://www.atmarkit.co.jp/ait/articles/1608/08/news039.html

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

VirtualBoxを普通にいれたほうが使い勝手がいい

193 :デフォルトの名無しさん:2018/07/22(日) 20:18:52.55 ID:mbi94QjP.net
> 容量も十数G必要
いや1GBも要らんよ、どこ確認したんだw

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

最近はDocker Engineがそれなりに動く程度には互換性も高まってきてるみたいね
エクスプローラのアドレスバーからbashで窓側をカレントディレクトリにして起動できるのが良い

194 :デフォルトの名無しさん:2018/07/22(日) 20:20:13.96 ID:Nia5Zbws.net
>>192
> 互換性問題があるしかなり機能を絞られてる

WSL(Windows Subsystem for Linux)は、C++やLinuxシステムコールを使ったGNUプログラミング環境としては必要十分だと思うけど、具体的にどんな問題あるの?

195 :デフォルトの名無しさん:2018/07/22(日) 20:26:16.94 ID:tfHLB3F/.net
>>194
サービス書くときかな。
他はWSLが楽だと思う。

196 :デフォルトの名無しさん:2018/07/22(日) 20:28:26.39 ID:tfHLB3F/.net
Linuxを使う意図はサーバーか組み込みなので、WSLで足りない場合もあると思うんだけど、ひな形があれば済む話かもしれんね。

197 :デフォルトの名無しさん:2018/07/22(日) 20:31:49.81 ID:ST9MozRw.net
サーバ系がサポートされてない
使うならVM使ったほうがいいよ
ファイルシステムもwindowsのものの上に作られてるのであれこれ問題が出る

>>193
1Gというのが笑えるw
コンパイルしないのかw

198 :デフォルトの名無しさん:2018/07/22(日) 20:34:24.26 ID:tfHLB3F/.net
>>197
VMは大げさすぎるかな。
使えるときはWSLを積極的に使っていきましょうよ。
とてもいいものですから。

199 :デフォルトの名無しさん:2018/07/22(日) 20:41:37.63 ID:tfHLB3F/.net
VMは一つのパソコンで複数のOSを動かすのでOSの数だけメモリーを食うんですよね。
その点、WSLはWindowsがLinuxのようにふるまうだけなのでWindows分のメモリーしか食いません。
そんなわけなので、お財布にやさしいんです。
それでいてサービスの開発以外では全く遜色在りませんし、そもそもサービス開発だって、大詰めを迎えるまではdaemonとして起動することはないでしょう。

200 :デフォルトの名無しさん:2018/07/22(日) 20:42:00.95 ID:ST9MozRw.net
bash使うだけならわかるけどコンパイルも含めて何か使おうとするなら
既知の問題や互換性に問題もあるものを選ぶのはクレバーだと思わない

201 :デフォルトの名無しさん:2018/07/22(日) 20:44:34.92 ID:ST9MozRw.net
WSL上のバッドノウハウをひたすら集めたいとか
縛りのある環境のほうが燃えるというなら止めはしない

ただわからない人に勧めるものじゃないなって思う
不具合があった場合それがどこ由来なのか特定できない人間には特にすすめちゃダメ

202 :デフォルトの名無しさん:2018/07/22(日) 20:45:31.78 ID:tfHLB3F/.net
>>200
ディストリビューターが開発する本物のディストリビューションですからまったく問題ありませんね。
Canonicalが開発した本物のUbuntuがWindowsで動くのです。
もちろんDebianであっても同じことです。

203 :デフォルトの名無しさん:2018/07/22(日) 20:50:22.91 ID:ST9MozRw.net
>>199
>>202
ディストリビューターが提供しようが
WSLはlinuxでもないwindowsでもない不思議な物
両方の制限の積 windows ∩ linuxでありわざわざ苦労することはないよ

windows上の疑似linuxであってかなりニッチな物
どこかおかしくても不思議じゃない

204 :デフォルトの名無しさん:2018/07/22(日) 20:56:04.07 ID:tfHLB3F/.net
WSL、CMake、VCPKGがお勧めキーワードです。
C++ユーザーにはUbuntuをお勧めします。
gcc-7を導入してC++-17をご利用ください。

205 :デフォルトの名無しさん:2018/07/22(日) 20:56:30.30 ID:sWlXYLBw.net
どこかおかしくても不思議じゃない(どこがおかしいのかは知らない)

206 :デフォルトの名無しさん:2018/07/22(日) 20:57:52.61 ID:Nia5Zbws.net
今のWSLはLinuxのdaemonもサポートしてるから問題ないと思うんだけど、具体的にどんな問題起きたの?

207 :デフォルトの名無しさん:2018/07/22(日) 20:58:04.83 ID:tfHLB3F/.net
Visual Studio 2017にはLinux DebugとLinux Releaseというターゲットがあり、標準でLinuxをサポートしていますよ。

208 :デフォルトの名無しさん:2018/07/22(日) 20:58:48.25 ID:ST9MozRw.net
c++使うような厳格さを求める人間がWSL使ってるとは思わなかった
WSLで動いたとして他の環境で動くとは保障されないのに
どこがおかしいのか推定もできない仕組みの上で何故ごみを作るんだ

209 :デフォルトの名無しさん:2018/07/22(日) 21:01:33.45 ID:tfHLB3F/.net
>>206
init機構がWSL用だから。
それを言い出すと、RedhatとUbuntuだって違うじゃないかということになるけど、Redhatに配備するものはRedhatで開発してたのが今までのスタイルなので、VMのほうが良いという人はその点を指摘してるんじゃないのかな。
それ以外にWSLを使わない理由がないので。

210 :デフォルトの名無しさん:2018/07/22(日) 21:04:40.18 ID:tfHLB3F/.net
まあ逆に言うと、WSLで動かないのであれば、Linuxディストリビューション間でも可搬性が無いよね。

211 :デフォルトの名無しさん:2018/07/22(日) 21:05:04.20 ID:Nia5Zbws.net
>>208
実機Linuxならどこがおかしいか推定できるという根拠はないでしょ。
むしろ、WSLのような抽象化された環境でさえ動かない稚拙なものを実機に持っていく気なの?と言い返すことさえできるのだけど。

212 :デフォルトの名無しさん:2018/07/22(日) 21:07:21.30 ID:ST9MozRw.net
違う違う
普通のlinuxで動くコード書いててもWSL上では動かせない場合があるのが問題だろ

213 :デフォルトの名無しさん:2018/07/22(日) 21:09:42.72 ID:tfHLB3F/.net
>>212
そういうものがあるのかどうか知らないけど、あるならなおさらWSLで開発したほうが可搬性を担保できてよいのでは。

214 :デフォルトの名無しさん:2018/07/22(日) 21:10:55.12 ID:ST9MozRw.net
>>211
根拠とかそんなんじゃない
考慮すべきことが多すぎる

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

それぞれが組み合わさっておかしくなってるのか考慮する条件が増えすぎる

215 :デフォルトの名無しさん:2018/07/22(日) 21:11:03.95 ID:Nia5Zbws.net
>>212
問題なんてほぼないでしょ。
VM上で動いて喜べるレベルならWSLでも同じだから。

あなた、WSLで動作確認したことあるの?もしや憶測で書いてない?

216 :デフォルトの名無しさん:2018/07/22(日) 21:11:34.45 ID:tfHLB3F/.net
clはかなり寛容なコンパイラなので、gccでコンパイルできるかチェックしとくとより良いコードが書けますよ。
そんな用途でもWSLは素晴らしいと思います。

217 :デフォルトの名無しさん:2018/07/22(日) 21:13:06.02 ID:tfHLB3F/.net
>>214
それたぶん、自分のコードが悪いと思いますよ。
Linuxは十分安定してるので、Linuxの問題を真っ先に疑うのは、自信ありすぎだろって感じます。

218 :デフォルトの名無しさん:2018/07/22(日) 21:14:34.32 ID:ST9MozRw.net
>>215
最初のころはめちゃくちゃだったのでもう入れてない
ハードリンクの仕組みもおかしいし
タイムスタンプもおかしいし
TCPなど制限も山盛りあった
すでにあるコードも何故か動かないことが多かった

219 :デフォルトの名無しさん:2018/07/22(日) 21:16:43.51 ID:tfHLB3F/.net
開発環境はWSLがいいんじゃないですかね。

220 :デフォルトの名無しさん:2018/07/22(日) 21:19:27.33 ID:Nia5Zbws.net
>>214
抽象化されていると問題特定が容易と考えるのが一般的だと思っていたのだけど、
抽象化された環境は問題特定が難しくなるという考え方は画期的ですね。

221 :デフォルトの名無しさん:2018/07/22(日) 21:21:02.02 ID:ST9MozRw.net
linuxが安定ってジョークか
linuxカーネルは常にバグがボコボコ出てるよ

222 :デフォルトの名無しさん:2018/07/22(日) 21:22:41.34 ID:tfHLB3F/.net
クロスプラットフォームを標榜するなら、開発環境としてWindowsを選択するとよいです。
Visual StudioはWindowsとMacで使えます。
WSLによってVisual StudioからLinuxバイナリを構築できます。
MSBuildとCMakeは悩みどころですが、MSBuildはサポートが手厚く、CMakeはVisual Studioが無くても構築できます。
そこらへんで選択するとよいのではないでしょうか。

223 :デフォルトの名無しさん:2018/07/22(日) 21:28:34.40 ID:tfHLB3F/.net
まあ僕はVisual Studio、WSL、VCPKG、CMakeプロジェクトを使っているので、わかることはお答えしますよ。

224 :デフォルトの名無しさん:2018/07/22(日) 21:56:04.01 ID:Nia5Zbws.net
悪いことは言わないので、LinuxプログラムはWSLで動くことを優先して書くことをお勧めする。
他人のために時間を使いたくないのは誰でも同じ。おのずと楽に評価できる環境に流れるのは止められない。

225 :デフォルトの名無しさん:2018/07/22(日) 22:35:05.45 ID:Nia5Zbws.net
イスラームの救貧制度がかえって免罪符の役割を果たしてないか。
イスラームの救貧制度があることで、かえって商業上の強欲が横行していないか。

226 :デフォルトの名無しさん:2018/07/22(日) 22:37:37.06 ID:Nia5Zbws.net
誤爆したけど、謝罪はしない。

イスラム教は野蛮な宗教である ★4
ttps://lavender.5ch.net/test/read.cgi/whis/1525163440/

227 :デフォルトの名無しさん:2018/07/22(日) 23:57:15.36 ID:g7OD+nvH.net
だいたいでけてきたわ
コード修正をすることによって効果を簡単に計測できるように修正してる
こっちのが結構大変だったわ

228 :デフォルトの名無しさん:2018/07/23(月) 01:50:38.00 ID:SStA1pnM.net
というわけでう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.48 ID:SStA1pnM.net
で、パーザーは基本に則った作りになってる
クラスに分ける意味があるかどうかはおいといて
一般的な再帰下降パーザーになってる

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.60 ID:SStA1pnM.net
一応、parserとsub_parserの違いだけ捕捉しておく
結論からいえばデータの形式がくさってるからそういうのを入れた

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

※ 例外はあるがsub_parserクラスは大体 LF の上(行末)で停止する
※ 停止しない例外は、sub_parserクラスが連続してる箇所が間違いなく該当することになる

231 :デフォルトの名無しさん:2018/07/23(月) 20:33:09.90 ID:SStA1pnM.net
コードの記述に一箇所誤りがあった
動作に影響は一切ないが記述ルールに問題があるから
修正しといたほうがいい

削除
 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.44 ID:SStA1pnM.net
ちなみにオレの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.46 ID:i+VNk600.net
しょぼ

234 :デフォルトの名無しさん:2018/07/23(月) 20:47:36.06 ID:i+VNk600.net
実行速度は?

235 :デフォルトの名無しさん:2018/07/23(月) 20:53:16.24 ID:SStA1pnM.net
ほとんどストレージの読み込み時間
パーズはばっちり
これ以上ないデキだ

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

動かせば分かる

印字されるスループットを
どうすれば最大化できるか考えるのはこのスレのバカだ
道具はほぼすべて揃ってる

236 :デフォルトの名無しさん:2018/07/23(月) 21:36:54.74 ID:rtZ7opge.net
>>231
ブーメラン投げてんじゃねえよバカ

237 :デフォルトの名無しさん:2018/07/23(月) 21:41:33.21 ID:2Wpd7Nw8.net
パーズ

238 :デフォルトの名無しさん:2018/07/23(月) 21:56:50.52 ID:owbFvtjn.net
>>228
I/Oのアドバイスとか何言ってるのか分からない。日本語でOk

239 :デフォルトの名無しさん:2018/07/23(月) 22:01:24.41 ID:JOGfItcj.net
>>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.57 ID:i+VNk600.net
他でやれって何度も言われてなかった?

241 :デフォルトの名無しさん:2018/07/23(月) 22:03:34.73 ID:JOGfItcj.net
取り急ぎ新しい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.29 ID:JOGfItcj.net
## ついでに 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.85 ID:i+VNk600.net
読み込み2秒
全部で16秒

ほとんどが読み込み時間?
嘘つき

244 :デフォルトの名無しさん:2018/07/23(月) 22:18:11.65 ID:SW13TXDW.net
>>243

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

real プログラムの呼び出しから終了までにかかった実時間(秒)
user プログラム自体の処理時間(秒)(ユーザCPU時間)
sys プログラムを処理するために、OSが処理をした時間(秒)(システム時間)

245 :デフォルトの名無しさん:2018/07/23(月) 22:23:23.05 ID:hE7BXV+L.net
続きは半角とLINEでも交換してやれよ

246 :デフォルトの名無しさん:2018/07/23(月) 23:09:13.26 ID:SStA1pnM.net
オレのとこでは
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.71 ID:SStA1pnM.net
http://man7.org/linux/man-pages/man2/posix_fadvise.2.html

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

ちゃんと日本語になってるわ

248 :デフォルトの名無しさん:2018/07/24(火) 00:12:21.91 ID:dbjTOx+1.net
>>246
par, specともにほぼ同じですか。

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

自分が書いたら40〜50secだったので20secですでにかなり速いと思ってるんですが、まだ高速化の余地があるんですね。

249 :デフォルトの名無しさん:2018/07/24(火) 01:27:55.10 ID:2rkV2Cvq.net
普通に考えたらこんなもん全部メモリに格納しようというほうが
普通に考えて狂ってると個人的には思うからな、それ専用の計算機ならともかく

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

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

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

いまぐらいの速度がでるなら
セクションの位置とサイズだけを先に取得して
後で必要な部分のデータを再度読みこんでオンデマンドで解析しても
十分な速度がでるような気がしないでもない
(最初にどこまで解析して取得するかはとりあえず今はおいといて)

250 :デフォルトの名無しさん:2018/07/24(火) 01:32:16.00 ID:2rkV2Cvq.net
で、やりたいことは、これまでのレスを読むかぎりでは
でっかいファイルの内容を画面に表示するだけだと思う

それだけのことなら実機の高い処理能力を考慮すれば
トップダウン方式で必要な箇所をオンデマンドでロードして取得する方法で十分な気がする
そのほうが計算機にも優しいし、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.18 ID:0yPjFIBM.net
>>246
解析処理が足を引っ張ってるのは
お前の解析処理が遅いから

>>248
まともに作れば解析自体は8秒で終わる

252 :デフォルトの名無しさん:2018/07/25(水) 00:09:01.02 ID:rOCCX8po.net
>>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.02 ID:FQQJXzBx.net
>>252
何をする気か知らんし、読み返す気もないが、
> 日曜大工レベル
なら他言語使えよ。今のC++は君向けではない。
一通りも出来ないのだから、普通はPerl/Ruby/Pythonのどれかだと思うが。

あとここは「ぼくのさいきょうのそふとうぇあ」のスレではないから、
実際埋め立て状態だし、全く終わる気配もないし、
別スレ立ててやるのがマナーだと思うぞ。

254 :デフォルトの名無しさん:2018/07/25(水) 05:58:28.01 ID:5wxx8yDL.net
A.exeがB.exeを立ち上げる

A.exeがB.exeの起動時に共有メモリ先を渡すのに
その空間を指定するのはどうすれば良いんでしょうか

255 :デフォルトの名無しさん:2018/07/25(水) 06:13:44.62 ID:aR1SGvNs.net
共有メモリの名前を渡す

256 :デフォルトの名無しさん:2018/07/25(水) 07:25:34.67 ID:5wxx8yDL.net
winAPIのmemorymapedfileを調べてみたけど
winAPI便利だが触ったことないと敬遠しちゃう

257 :デフォルトの名無しさん:2018/07/25(水) 13:33:42.64 ID:CBV5hJrX.net
>>253
日曜大工とか書いてるけど、サーバー使ってやるとか言ってたから実務だと思うが
あまり初心者を弾くようなことを言うな

>>252
速度は実用レベルになりゃそれでとりあえずいいんじゃないの
ドヤりたいやつや喧嘩したいやつに惑わされるな
回答は参考にとどめて、自分でやってみてどうしてもわからないところだけ聞きに来い
スレを私物化するな

258 :デフォルトの名無しさん:2018/07/25(水) 17:57:43.34 ID:EWaeEahr.net
>>254
プロセス間共有メモリはプラットホーム依存でありC++の範疇ではないので、続きは以下スレでどうぞ。

>>256
あなたも。


Win32API質問箱 Build124
ttps://mevius.5ch.net/test/read.cgi/tech/1510395780/

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

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

お前は「プログラミング初心者」をここで飼いたいのか?
「C++初心者」はいいとして、C++は「プログラミング初心者」向けの言語ではない。
そもそも組み方も根本的に間違っている気がするが、
俺はこんな奴に教えてやる気はないし、
他の誰も指摘しないところを見ると、まあそういうことなんだろ。
(俺はソースは見てないが)

260 :デフォルトの名無しさん:2018/07/25(水) 19:15:56.59 ID:h5CHP+XR.net
確か上級者スレってあったはず
上級者はそちらに移動し、ここを見ないで

261 :デフォルトの名無しさん:2018/07/25(水) 19:32:17.67 ID:Iaq9Mrpc.net
空気読めないド初心者と、ド初心者相手にマウント取ってイキってる半角雑魚オヤジが二人で傷を舐め合ってるだけ
その二匹をNGすれば平常運転よ

262 :デフォルトの名無しさん:2018/07/25(水) 19:38:59.40 ID:v8CmSWWw.net
>>260
乗っ取るのではなく、お前が移動しろよ馬鹿タレ

【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/

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

もういい加減自分で進められるだろうからいちいち報告しないでほしいが

264 :デフォルトの名無しさん:2018/07/25(水) 20:20:05.41 ID:v8CmSWWw.net
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.94 ID:v8CmSWWw.net
>>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ライブラリはありますでしょうか?
> https://mevius.5ch.net/test/read.cgi/tech/1528382412/

ならC++選んでいる時点で間違いだろ。
理由は教えてやらないが、当然そうだからこそ、適切なライブラリがない。
というか、本当に初心者でないのなら、
適切なライブラリがない=みんなやってない=地雷臭を感じとれっての。
C++で書けば何でも速くなると思っている馬鹿、最近増えたよな。何故かは知らんが。

266 :デフォルトの名無しさん:2018/07/25(水) 20:52:15.60 ID:MsjPsnRN.net
くだらない選民思想はやめた方がいいよ、C++をベターCとしてしか使えない人でも
素晴らしいソフトを書き上げてる人は腐るほど居る

大体選民思想に走るやつってC++を実用してないやつなんだよなぁ・・・

267 :デフォルトの名無しさん:2018/07/25(水) 20:54:27.06 ID:MsjPsnRN.net
>>265
読めるなら読んでから言えよ

>適切なライブラリがない。
>みんなやってない=地雷臭を感じとれ
俺ゲーム屋なんだけど、居た会社はどこもみんな自社でライブラリというかフレームワーク作ってる
全部地雷なのか?
お前アマチュアだろ?

268 :デフォルトの名無しさん:2018/07/25(水) 20:55:36.48 ID:VnR4R5Pj.net
>>253,257

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

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

あと、このスレはこれからも拝見させていただきたいと思います。

269 :デフォルトの名無しさん:2018/07/25(水) 21:34:44.04 ID:EWaeEahr.net
共有ポインタがC++に正式採用されたことで、JavaなどGC機能を持った他言語の優位性が薄れたわな。
コンパイル速度も上がったし、開発機のメモリも増えたしで、昔よりC++を使うストレスが軽くなった。
なので皆、C++に回帰してくる。

270 :デフォルトの名無しさん:2018/07/25(水) 21:47:04.47 ID:WkyhwwwQ.net
>>265
うわっ
なんだこの初心者丸出し野郎

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

そう判断する理由の例としては
互換性
パフォーマンス
コードサイズ
開発工数 / 評価工数
等々

271 :デフォルトの名無しさん:2018/07/25(水) 21:52:55.17 ID:99/tYlRK.net
>>267
話の内容から読む価値が全くないと分かるから読まないんだよ。
つか、初期はみんなまともな指摘してるじゃねえかよ。
ガン無視して今の有様のようだが。

> お前アマチュアだろ?
お前も無駄マウントするのではなくて、実力は投稿で示せよ。
そもそもC++用ゲームエンジンはありまくりだろ。
C++はその用途に向いているからみんな使ってる。だからそういう現実がある。
俺はそういうことを言ってるんだよ。
(日本の会社は何故かプロプライエタリに拘っているのも事実だが)

272 :デフォルトの名無しさん:2018/07/25(水) 22:11:44.07 ID:MsjPsnRN.net
>>271
>お前も無駄マウントするのではなくて、実力は投稿で示せよ。
俺は半角のコードでいんじゃね?と思ったんで何も言わんかったw
>C++はその用途に向いているからみんな使ってる
あーそういうことか
でも構文解析をC++でやるのは決して間違いではないと思うけどな

273 :デフォルトの名無しさん:2018/07/25(水) 22:18:29.68 ID:WkyhwwwQ.net
単純な構文解析を大量に行う
なんて処理はCやC++がぴったりと思う

274 :デフォルトの名無しさん:2018/07/25(水) 22:25:44.36 ID:exbGUQmA.net
まあ新しい機能がバンバン入る言語やライブラリってのは選民思想が湧きやすいもんよ。
昔からこの業界のそういうところは変わらん。
そしてそういうものがレガシーコードを量産するという現実も変わらん。

275 :デフォルトの名無しさん:2018/07/25(水) 23:04:43.31 ID:99/tYlRK.net
>>272
> でも構文解析をC++でやるのは決して間違いではないと思うけどな
大昔:yacc/lex
昔:bison/flex
最近さらに何か出てたと思ったが、使う気がないので忘れた。

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

俺が教えてやらねえ、って言ったのはこの件ではないけど、
「誰もそういうことをやらないからそういうもの(ライブラリ等)がない」ってのはあるから、
初心者なりにちゃんと考えろって事だよ。
上記は初心者でも理解できるだろ。気が付かないのは考えてないだけ。
そんな奴は勝手に死んでよし。

276 :デフォルトの名無しさん:2018/07/25(水) 23:18:30.44 ID:MsjPsnRN.net
>単純には grep -i error とか、複雑ならいちいちperl等で切り出して
確かそれはやりたくないって言ってたと思う
まぁ、俺もテキストのまま扱うのはどうかとは思ったけども

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

ってまぁ、さんざん既出なんでこのネタはもうやめようw

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

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

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

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

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

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

このスレは、色々学ぶことができる
これからもちゃんとこのスレ読んで精進しなさい

278 :デフォルトの名無しさん:2018/07/25(水) 23:28:31.94 ID:EWaeEahr.net
sqliteはメモリ上にデータベースを構築できる。
どうせやるならsqliteに勝てるような車輪の再発明を期待したい。

279 :デフォルトの名無しさん:2018/07/25(水) 23:31:38.85 ID:EWaeEahr.net
ramdiskで良くね?というのもある。

280 :デフォルトの名無しさん:2018/07/26(木) 00:14:32.88 ID:yqOLTJbQ.net
>>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.25 ID:yqOLTJbQ.net
まあ、俺ならperlで15000のファイルにあらかじめパースしてぶった切って、lessで見るね。
テンポラリファイルの有効/無効はタイムスタンプをチェックすればいいだけだし。

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

嘘を嘘と(ry は当然だが、
正解を正解と(ry だな今回は。

282 :デフォルトの名無しさん:2018/07/26(木) 00:27:42.26 ID:/19Lz3R7.net
やっぱりなコレが低学歴底辺の限界
わかるわ

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

すぐに分かるのが恐ろしい
このスレにはそんなのしかいないわ

283 :デフォルトの名無しさん:2018/07/26(木) 00:30:53.03 ID:/19Lz3R7.net
クソニートの趣味のぱちょんこん講座の邪魔されて
クソニートどもがイライラしてるのはわかるわ

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

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

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

やっぱりなニオイは隠せないわ

284 :デフォルトの名無しさん:2018/07/26(木) 05:31:33.95 ID:rsKHES0B.net
自己紹介乙

285 :デフォルトの名無しさん:2018/07/26(木) 07:10:18.33 ID:QCphLLid.net
前スレからID追うと、このスレ立てたの15Gテキストの質問者で
ワッチョイとテンプレを失敗してる

いっそワッチョイ付きで立て直して、ここは放棄するのもありじゃないかな…

286 :デフォルトの名無しさん:2018/07/26(木) 08:02:19.67 ID:wiCSHgxo.net
失敗してるワケねーんだよなぁ
ワザとだろ
俺TUEEするためだけに立てられたクソスレだよw

287 :デフォルトの名無しさん:2018/07/26(木) 08:03:29.18 ID:wiCSHgxo.net
やってることがTUEEとDANZAI、アホなSS未満のクズだろ
だからワッチョイは無いw

288 :デフォルトの名無しさん:2018/07/26(木) 15:23:01.83 ID:MiqKt3xH.net
世の中のパーサーは入力としてストリームを想定する場合が多い。
一方、OSはストリームを想定しなくなってきている。
IOCP、epoll、kqueue等を想定するプログラムにとって、必要なものは、一文字入力すると状態が変わるようなプッシュ型パーサーではないだろうか。

289 :デフォルトの名無しさん:2018/07/26(木) 22:05:05.87 ID:SqpdcEmq.net
文字列変換を質問したい

290 :デフォルトの名無しさん:2018/07/26(木) 22:11:39.16 ID:SqpdcEmq.net
途中で送ってしまった...
キャラポインタをビーストリングに変換したいです
マ ルチバイトトゥーワイドキャラでよい?
今やってるのだけど一切できなくて辛い

環境はウィンドウズです
エヌジーワードのためカタカナ混ぜてます

291 :デフォルトの名無しさん:2018/07/26(木) 22:43:19.63 ID:vMAtbXfy.net
>>290
C++的な回答をするなら、BSTRをラップしたCComBSTRクラスを使ったほうが楽だしドキュメントも多くていいと思うよ。

292 :デフォルトの名無しさん:2018/07/26(木) 22:54:29.47 ID:ekCvPRG2.net
>>291
そんなのがあるんですね

コム使うのは良いのかわからんな...

293 :デフォルトの名無しさん:2018/07/26(木) 23:22:38.59 ID:vMAtbXfy.net
>>292
すでに知らないうちにCOMを使っているはずなので、今更COMを使ってよいか気にしなくていいよ。

294 :デフォルトの名無しさん:2018/07/26(木) 23:23:33.36 ID:JU6NqyqF.net
>>285
俺は賛成。STLのテンプレもありでよろしく。
(まあ俺が賛成しても大局に影響はないが…)

295 : :2018/07/26(木) 23:29:25.64 ID:vjtcTWe7.net
>>294
別にテンプレがあろうとなかろうと、スレに投稿される内容に変わりはしない、と思うのですが?
もしかして「おまじない」とかが好きなんですか?

半角氏は連続して投稿する傾向にあり、IDだけで割合に弾けるのでワッチョイは要らないと思っています

296 :デフォルトの名無しさん:2018/07/26(木) 23:42:18.00 ID:5Jkoyh2A.net
あんなテンプレいらんだろ…
まさか自分が作ったとか?

297 :デフォルトの名無しさん:2018/07/26(木) 23:55:55.79 ID:JU6NqyqF.net
>>295
> テンプレがあろうとなかろうと、スレに投稿される内容に変わりはしない
ならあってもいいって事になるが、それに対する反論は?

俺はワッチョイもあのテンプレも機能してたと見ている。
実際、もう初心者要らないんじゃ、って話になってたのは事実だろ。
お前がそれに反対したのも事実だが。

298 :デフォルトの名無しさん:2018/07/26(木) 23:59:13.70 ID:OhRJcz2i.net
>>280

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

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

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

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

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

小さい規模では特にSECTION切り替えが頻繁に発生するのでファイル分割で管理がわずらわしくなるのを避けたい。
まずここに重点を置き、そうすると大きい規模では読み込み時間がネックになるので高速化で対応しよう。
という状況で現在に至っているところでした。

299 :デフォルトの名無しさん:2018/07/27(金) 00:01:55.25 ID:wdZoBIJt.net
>>298
死ねよゴミ。
俺はお前が正解を全部ガン無視したことを咎めてるんだよ。

300 :デフォルトの名無しさん:2018/07/27(金) 00:03:32.92 ID:o3vIRrYt.net
>>293
そんなもんなんだ

Char**→LPCWSTR変換ってsetlocale使う方法しかない?

301 : :2018/07/27(金) 00:13:35.77 ID:dNDh2QHO.net
>>297
>ならあってもいいって事になるが、
そうではなく、すでに在るこのスレを放棄する必要はない、と主張したつもりですが
同様に、例のテンプレが張ってあるスレの存在下で、新たにテンプレなしの新スレを作る必要もない、と考えます

302 :デフォルトの名無しさん:2018/07/27(金) 00:32:44.94 ID:27BaLAkY.net
>>300
setlocaleは関係ない。setlocaleは、C関連の設定をすべて変えてしまうので、ここでは呼ばないほうがいい。

MultiByteToWideChar() で可能。
出力用のLPWSTR バッファは、スタックなりmalloc, new, std::vector<wchar_t> なりで確保したヒープメモリを使い、
受け取ったLPWSTR バッファの中身をCComBSTRのインスタンスにコピーするのがいいと思う。

303 :デフォルトの名無しさん:2018/07/27(金) 00:44:14.53 ID:wdZoBIJt.net
>>301
> そうではなく、すでに在るこのスレを放棄する必要はない、と主張したつもりですが
じゃあそう書けよドアホ
そしてその場合は285に安価しろ


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

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

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

質問者と半角キチガイは死ねでしかないが、
正解提供者が疑問に思っていることがあれば、知ってれば答えてやるよ。
スレの質を上げる為に努力した奴らは報われるべきだと思うから。
今回は質問者が悪すぎた。これはご愁傷様。

304 :デフォルトの名無しさん:2018/07/27(金) 00:49:14.72 ID:X8KcH05s.net
オレが強いワケがないからな
クソニートどもがよわっちいだけだからな
クソニートどもが社会人に勝てるワケがない

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

その自覚がないのが恐ろしい

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

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

その自覚がないから救いようがない

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

わかる?

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

わかった?

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

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

月並みな話だけれども、単にスルー力が足りないだけなのでは?
5年、10年とスルーし続けることも必要な場合はあると思います

308 :デフォルトの名無しさん:2018/07/27(金) 00:56:25.04 ID:A3iaMhaK.net
わかった

309 :デフォルトの名無しさん:2018/07/27(金) 01:18:44.81 ID:wdZoBIJt.net
>>307
なるほどお前とは話が通じないことは分かった。
お前が嫌われるのも納得だ。

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

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

というかマジでお前話の内容について来れてないだろ。
無理して食いついてこなくてもいいぞ。邪魔でしかないから。

310 :デフォルトの名無しさん:2018/07/27(金) 01:25:39.79 ID:X8KcH05s.net
もうねクソニートが必死でしょ
すぐにクソニートなのはレスですぐにバレちゃうからな

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

クソニートの自作パチョコンの世界を
そのまま脳内で再現してる

311 : :2018/07/27(金) 01:33:55.71 ID:dNDh2QHO.net
>>309
>先に「機能してなかった」根拠を提示してみろ。
私は「機能していた」とも「機能していなかった」とも主張していませんが
あなたは >>303 「機能していた」と判断しているのであれば、その理由もおしえていただけませんかね

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

私は ID で快適にスルーするべきものはスルーできていて無問題なんですけれどもね

312 :デフォルトの名無しさん:2018/07/27(金) 04:56:28.85 ID:/nUzesew.net
HTML出力を正解だと思ってるやつや
size_t使ってる場所で出るコンパイルエラー程度で「動くコード書けよ」とか
恥ずかしいこと言った上に、謝りもしなかった初心者が
偉そうに仕切ってるスレって・・・w

313 :デフォルトの名無しさん:2018/07/27(金) 06:57:19.44 ID:Mz+rSfRQ.net
コンパイルエラーが出るのはまずくない?

314 :デフォルトの名無しさん:2018/07/27(金) 07:04:43.26 ID:m0uy41dr.net
紙上コードでタイポするぐらいいいだろ!

315 :デフォルトの名無しさん:2018/07/27(金) 08:03:50.66 ID:u6e3tzrN.net
ワッチョイがあればQz弾けるやん。

316 :デフォルトの名無しさん:2018/07/27(金) 08:28:06.62 ID:NS0U2LcD.net
>>309
他のスレにはないのだから要るって主張してるほうが根拠を示すべきだろ。

317 :デフォルトの名無しさん:2018/07/27(金) 08:48:04.76 ID:u6e3tzrN.net
>>316
このスレにはQzが粘着してるやん。

318 :デフォルトの名無しさん:2018/07/27(金) 08:55:01.54 ID:NS0U2LcD.net
>>317
テンプレが何の役に立つの?

319 :デフォルトの名無しさん:2018/07/27(金) 09:04:30.33 ID:u6e3tzrN.net
>>318
テンプレは俺が荒らしたから出来たものだし、あのテンプレがあると俺は恥ずかしくて荒らせない。
そこら辺の経緯を知りたいか?

320 :デフォルトの名無しさん:2018/07/27(金) 11:24:09.66 ID:DyyEKTZY.net
知りたい

321 :デフォルトの名無しさん:2018/07/27(金) 11:30:38.87 ID:NS0U2LcD.net
>>319
それなら自分の机の上にでもはっとけばよくね?

322 :デフォルトの名無しさん:2018/07/27(金) 12:40:38.56 ID:dsPS3Oy7.net
すっぽすっぽ先生の日本講演の日なのにくだらねえ話ばっかりだな

323 :デフォルトの名無しさん:2018/07/27(金) 15:48:27.31 ID:u6e3tzrN.net
すっぽん先生って誰だよ。

324 :デフォルトの名無しさん:2018/07/27(金) 16:00:10.02 ID:454wB1N8.net
俺には
ビャーネストスト
に聞こえる。
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.77 ID:u6e3tzrN.net
禿のことかよ。

326 :デフォルトの名無しさん:2018/07/27(金) 21:27:48.11 ID:K5tMY89A.net
ターミナルでタブキー押すとディレクトリやファイル名が補完されますがプログラム上でそれを起こすにはどうやればいいのでしょうか

327 :デフォルトの名無しさん:2018/07/27(金) 23:26:03.34 ID:yQgFrYID.net
>>311
> 私は「機能していた」とも「機能していなかった」とも主張していませんが
ならまずお前が俺に絡んできた理由を教えろ。

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

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

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


というわけでQZは話にならないのでとりあえず放置だ。
>>316
お前は当然「あのテンプレは意味無い」と思っているんだよな?
では逆に聞こう。
何故あのテンプレを剥がしたがっている奴がいるのだと思う?

328 :デフォルトの名無しさん:2018/07/27(金) 23:31:35.61 ID:n6a2xyXf.net
>>327
逆に聞くなよ。先に答えろアホ

329 : :2018/07/27(金) 23:48:50.60 ID:dNDh2QHO.net
>>327
>そしてこの状況で俺に対して
(>>303)
>>>あのテンプレも機能してたと思う。
(>>307)
>> 根拠は?
>と問いただすのなら、常識的にはお前は「機能してない」と思っていると仮定される。

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

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

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

>単純に理由が知りたいだけだというのなら、それを明示『しなければならない。』
どうして?

330 :デフォルトの名無しさん:2018/07/27(金) 23:58:28.72 ID:u6e3tzrN.net
>>329
テンプレがあると俺が荒らせないからに決まってんだろ。

331 :デフォルトの名無しさん:2018/07/28(土) 00:02:12.95 ID:jbwKRPPF.net
タブキーによる補完の仕組みは
compgenを調べればすぐに分かる

つまり
これこそ
ググレカス

332 :デフォルトの名無しさん:2018/07/28(土) 00:43:14.60 ID:/nZLT2uf.net
>>330
中二病こじらせてんのか

333 :デフォルトの名無しさん:2018/07/28(土) 01:02:06.96 ID:+BSazAb2.net
もっとメタプログラミング的なテンプレが良いね

334 :デフォルトの名無しさん:2018/07/28(土) 02:09:39.90 ID:cypKnBYi.net
>>329
回答は既に327に書いてある。
何度でも読み返せ。

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

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

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

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

とりあえずかなり長いことあのテンプレは貼られていて、それで質は保たれてた。
最近積極的に剥がし、そしてワッチョイも剥がされてこのザマだ。
ここは元通りに戻して様子見するのが妥当だよ。
長期的影響を考慮できない馬鹿はここは黙って見ているべきなのさ。
お前らはすぐ老害老害と言うが、リアルはさておき、ネットは老害が蔓延れるほど歴史がない。
お前らはもう少し、己の無能さを自覚し、知識がない分野については自重する分別を持つべきだ。

335 :デフォルトの名無しさん:2018/07/28(土) 02:10:55.23 ID:cypKnBYi.net
2ch全体が、何故か「テンプレは不変」で纏まってるだろ。
俺はこの経緯/歴史は知らないが、可能性があるのは、
1. 全員がテンプレの効果を理解できる知能があって、自然にそうなった
2. どこかで話し合いがもたれて、そうなった
3. 試行錯誤され、結果的に遺伝的アルゴリズムの淘汰により、そうなった
の3つだ。
ひろゆきは「昔は賢い人しかいなかった」と言うから1だと主張するかもしれんが、
俺はこれはさすがにあり得ないと思う。
>>267みたいに無駄に噛みつきまくる馬鹿な奴は、どこにでも居るから。
(噛みつくのではなく、投稿内容で知識レベルを示すべき)
さりとて2ももっとあり得ないから、おそらく3だと思っている。
つまり、テンプレにいちいち不満があるからといって改変許可していると収拾がつかず、
結果的にそういうスレは質が下がり淘汰されてきたと見ている。
そして2ch全体がそう染まったと。

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

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

ということでいいかね?
何なら俺がスレ立てて割ってやるよ。それで勝負すればいいだけだ。
断る理由も、お前らにはもうないはずだ。

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

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


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

それが妥当と思えなければ、俺が従来通りのスレを立てて様子見してやるよ。

337 :デフォルトの名無しさん:2018/07/28(土) 03:02:15.88 ID:kbWsXNPG.net
主観的、思い込みだらけでなんの根拠も示せてない。やり直し

あとワッチョイについてなくても無問題と言ってるのはQzだけだ

338 :デフォルトの名無しさん:2018/07/28(土) 06:57:01.71 ID:dOqiqC/T.net
IDは日毎に変わってしまうので自分の発言を見直したい時に不便。
ワッチョイ便利よ。

339 :デフォルトの名無しさん:2018/07/28(土) 07:46:05.56 ID:PxykokRm.net
>>337
まあどうせそう連呼するとは思っていた。
ならスレ割って証明するしかない。
勿論反対はしないよな?

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


>>329
QZ、お前もな。
ここまで絡んできて、僕は質問しただけです、は通らないぞ。
旗幟鮮明にしろ。

340 :デフォルトの名無しさん:2018/07/28(土) 07:53:22.58 ID:Q0sE5Usk.net
>>338
専ブラ使えよ…

341 :デフォルトの名無しさん:2018/07/28(土) 09:33:53.70 ID:aLrZyGnX.net
エラー落ちすると自分マーク消えちゃう専ブラあるからなあ

342 :デフォルトの名無しさん:2018/07/28(土) 09:35:10.36 ID:aLrZyGnX.net
真面目に議論したいなら、強勢IP表示した方が良い

343 :デフォルトの名無しさん:2018/07/28(土) 10:14:13.47 ID:jbwKRPPF.net
メタプログラムとかにしたら絶対ダメだ
知恵遅れなんかがここぞとばかりに
テキトーなこと書き込めるからな

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

このスレがなんで低学歴知恵遅れが多いか
その理由がココにある

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

まずこっから

345 :デフォルトの名無しさん:2018/07/28(土) 10:18:48.83 ID:jbwKRPPF.net
つまり
バカは書き込み禁止

346 :デフォルトの名無しさん:2018/07/28(土) 10:20:31.04 ID:jbwKRPPF.net
このスレはバカの自覚がないバカが多い
だから絶対にバカが治らない
一番たちがワルイ

排除するのが一番

そういうことだ

347 :baka:2018/07/28(土) 10:32:02.99 ID:nSNyoduL.net
メタプログラムはダメだ。つまりマクロは使用禁止!

348 :デフォルトの名無しさん:2018/07/28(土) 10:36:30.00 ID:TrbWuBTr.net
>>346
ご高説ごもっともです 深く感じ入りました 
以降も発言を注視させていただだきたいと思いますので
お手数ではありますが 固定酉をつけていただけませんか?
ご勘案のうえ ご配慮いただけますようお願いいたします

349 :デフォルトの名無しさん:2018/07/28(土) 10:37:15.94 ID:jbwKRPPF.net
テンプレ

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

コレでいい

350 : :2018/07/28(土) 10:38:14.68 ID:AqK1vkX7.net
>>339
>旗幟鮮明にしろ。
人間の集団を敵か見方かのいずれか一方に分ける、という人間が自然に持っている心理的限界を常に自覚しなければならないのです

351 :デフォルトの名無しさん:2018/07/28(土) 10:47:27.41 ID:aLrZyGnX.net
ここがバカ用の隔離スレだからな
他のスレに迷惑かけないようにしろよ

352 :デフォルトの名無しさん:2018/07/28(土) 10:52:55.97 ID:qFm1KF6C.net
http://zx6z.psbjgiksmdgctp.tokyo/jbkxtir/dgtjj/gf8u34t4tnj/2rt35wgeg

353 :デフォルトの名無しさん:2018/07/28(土) 12:02:16.12 ID:GDMb2Dkw.net
>>350
相変わらずお前は話が通じないな。
そして論点そらしか。お前もいつの間にパヨクになったんだ?

質問を変えよう。
お前は例のテンプレについて、「機能している」と思うのか、「意味無い」と思うのか、どっちなんだ?
>>295を読んだら「意味無い」と思っていると捉えられるのが普通だが、
お前的には違うつもりなんだろ。
ならさっさと答えろ。
ここまで絡んできて、まさか自分の意見がないとか、あり得ないよな?

354 :デフォルトの名無しさん:2018/07/28(土) 12:19:46.53 ID:aLrZyGnX.net
相手と話をしたいなら、普通は表現に配慮するものだ
職場や学校でいつもこうやって相手にけんかをふっかけているのかな?

355 :デフォルトの名無しさん:2018/07/28(土) 12:33:49.69 ID:C+3FbN1g.net
だめだこりゃ

356 :デフォルトの名無しさん:2018/07/28(土) 12:48:42.42 ID:jbwKRPPF.net
このスレの低学歴知恵遅れは
表現の配慮以前に質問者つまり相手がいってることを理解できないからな
当然、コミュニケーションは成立しない
それ以外にもイロイロなものが欠落している

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

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

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

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

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

結論はこうなる

357 :デフォルトの名無しさん:2018/07/28(土) 12:54:21.12 ID:9n95SirI.net
自己紹介おつかれさまです。

358 :デフォルトの名無しさん:2018/07/28(土) 12:56:10.15 ID:jbwKRPPF.net
図星なんだろ
素直になりなさい

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

クソニートはどんだけ自分がゴミでクズなのか
その自覚をもつのが先だからな

359 :デフォルトの名無しさん:2018/07/28(土) 12:58:46.04 ID:C+3FbN1g.net
自己紹介おつかれさまです。

360 :デフォルトの名無しさん:2018/07/28(土) 13:00:33.92 ID:jbwKRPPF.net
今回質問してたヤツとコミュニケーションが成立してたのは
オレだけだったからな

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

クソニートしかいないこのスレから
クソニートを排除するのが先というのが
よおく分かったからな

361 :デフォルトの名無しさん:2018/07/28(土) 13:03:17.62 ID:9n95SirI.net
クソニートしかいないスレにいるお前はクソニート

362 :デフォルトの名無しさん:2018/07/28(土) 13:03:23.84 ID:C+3FbN1g.net
なんか嫌なことでもあったのか

363 :デフォルトの名無しさん:2018/07/28(土) 13:04:24.13 ID:jbwKRPPF.net
オレはクソニートをこのスレから排除する
クソニートの居場所はもうない

364 :デフォルトの名無しさん:2018/07/28(土) 13:07:50.50 ID:oI8u94+S.net
>>343
ETについてここに色々書いたことある者だけど
ドヤりたいだけの馬鹿は確かに多い(ここに限らず)、けどそういうやつは見たらわかるよ
真面目にやってる人もたまにいるから一緒くたに否定しないでくれ

365 :デフォルトの名無しさん:2018/07/28(土) 13:09:01.74 ID:VyODD4HS.net
プッシュ型スキャナー/パーサーについて考えよう。

366 :デフォルトの名無しさん:2018/07/28(土) 13:09:51.96 ID:aLrZyGnX.net
面接官に「お前とはコミュニケーションが成立しない!」と罵ってしまったとか

367 :デフォルトの名無しさん:2018/07/28(土) 13:11:52.48 ID:oI8u94+S.net
ただ俺も、まともにメタプログラミング実用してない癖に「今時のC++はメタプログラミングが主流」みたいな頭悪い大嘘ぬかす馬鹿は
ここから出て行くどころか今すぐプログラミングを辞めてほしいわ
どれだけ周囲に迷惑かけ、C++の発展を邪魔してるのか自覚してほしい

368 :デフォルトの名無しさん:2018/07/28(土) 13:52:05.63 ID:VPkQogVC.net
>>350
なんで就職しないの?

369 :デフォルトの名無しさん:2018/07/28(土) 14:06:46.53 ID:zJtcAlIu.net
>366
話し言葉もちゃんと半角なのいいね

370 : :2018/07/28(土) 14:29:03.21 ID:AqK1vkX7.net
>>368
なんで就職していないと思ったの?

371 :デフォルトの名無しさん:2018/07/28(土) 14:43:10.37 ID:qPhlaL35.net
>>370
会社で働いてるの?

372 : :2018/07/28(土) 14:54:29.22 ID:AqK1vkX7.net
>>371
税金は払ってますよ…

373 :デフォルトの名無しさん:2018/07/28(土) 15:14:43.89 ID:v07KtwGv.net
消費税は無職でも払わないといけないわなwww

374 :デフォルトの名無しさん:2018/07/28(土) 15:25:30.82 ID:8G21bbxI.net
まったく質問に答えてないwww

375 :デフォルトの名無しさん:2018/07/28(土) 16:23:31.31 ID:0C7Daazh.net
こんなガイキチのロートルを雇ってくれる会社なんかないな

376 :デフォルトの名無しさん:2018/07/28(土) 16:45:03.65 ID:jppVqscf.net
>>372
所得税は払ってるの?

377 :デフォルトの名無しさん:2018/07/28(土) 17:37:40.26 ID:5Q2+6uj+.net
ここ、いつから身の上相談スレになったの。話題を変えたい。
EASTL使ってる人いる?

378 :デフォルトの名無しさん:2018/07/28(土) 18:16:36.03 ID:VyODD4HS.net
>>377
検索してみたけど、C++17で良いのでは?
足りなければBoostで。

379 :デフォルトの名無しさん:2018/07/28(土) 19:26:09.04 ID:jbwKRPPF.net
このスレのクソニートどもは
C++とかいってる前にな
自分の将来を心配したほうがいいわ

380 :デフォルトの名無しさん:2018/07/28(土) 19:27:00.82 ID:jbwKRPPF.net
バレてないと思ってるかもしれないけどな
チョンバレなワケ

381 :デフォルトの名無しさん:2018/07/28(土) 19:27:31.79 ID:FnoRf+hv.net
つまんね
C++の話題やれよ。

382 :デフォルトの名無しさん:2018/07/28(土) 19:28:10.66 ID:jbwKRPPF.net
まず邪魔なクソニートを排除するのが先だ

383 :デフォルトの名無しさん:2018/07/28(土) 19:35:03.00 ID:jbwKRPPF.net
低学歴がいくら低学歴を隠そうとしても
書き込みですぐにバレる
クソニートはいくらクソニートを隠そうとしても
書き込みですぐにバレる

残念なことにな

当然、本人たちはそれに気付くことはできない
バレてないと思ってるのは本人たちだけだからな

384 :デフォルトの名無しさん:2018/07/28(土) 19:38:53.49 ID:28wdIWuU.net
>>377
何度か話題に上ってるけど使ってないな
てか何のために使ってるのか逆に聞きたい

385 :デフォルトの名無しさん:2018/07/28(土) 20:28:07.43 ID:k9DVhb8p.net
まあとにかく予定を言っておく。

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

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

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

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

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

当たり前だが、自由には責任がつきまとう。
お前らが成人しているのなら、自分の行動には責任を持て。
どっちに付くかは自由、したがってその結果がどうなろうとも全てお前の責任だ。

386 :デフォルトの名無しさん:2018/07/28(土) 20:52:34.59 ID:5Q2+6uj+.net
>>384
自己満足

387 :デフォルトの名無しさん:2018/07/28(土) 21:01:08.20 ID:5Q2+6uj+.net
EASTLをVS2017とwsl+gccで試した限りでは、あまり速度面でのEASTLの恩恵はない。
EASTLを使うと、知らないうちにstdのSTLに依存してしまっているコードに気づける利点があるといえばある。

388 :デフォルトの名無しさん:2018/07/28(土) 21:08:19.59 ID:VyODD4HS.net
依存するとまずいの?

389 : :2018/07/28(土) 21:10:24.75 ID:AqK1vkX7.net
>>385
スルー力が不足しているだけなのに、また余計なことを…

390 :はちみつ餃子 :2018/07/28(土) 21:13:34.68 ID:36Xz3wmQ.net
>>340
複数の端末を使っている場合は専ブラを使ってても自分が投稿した投稿を統一的に管理できない。
出来る専ブラもあるんかな?

391 :デフォルトの名無しさん:2018/07/28(土) 21:17:49.26 ID:DyF9e7oq.net
>>385
ダム版でやれよ

392 :384:2018/07/28(土) 21:18:22.83 ID:oI8u94+S.net
>>386
すでに言われてるけど最近のコンパイラと最近のC++なら当時の速度面でのデメリットは結構解消されてるだろうし
ゲーム専用機向けの最適化がなされたものをコンパイラも優秀なPCで使う意味があるのかなと思ってね
まぁ両方を眺めるのはもちろん勉強になるだろうけど

393 :デフォルトの名無しさん:2018/07/28(土) 21:34:13.71 ID:5Q2+6uj+.net
>>388
組み込みの場合はまずいことが多い。組み込みは大抵stdもどきなので。

394 :デフォルトの名無しさん:2018/07/28(土) 21:40:05.17 ID:nhKIzNwX.net
>>385
結局自分が気に食わない奴らは出てってもらってスレ継承させないと言ってるだけに聞こえるが。
自分の意見がそこまで正しいと信じているなら、part138とせずに新たに1から振り直したスレを作ったらどうなんだ?
きっと賛同者がついていってくれるよ。

395 :デフォルトの名無しさん:2018/07/28(土) 21:41:26.83 ID:VyODD4HS.net
ここははちみつ餃子さんに一任しようではないか。

396 :デフォルトの名無しさん:2018/07/28(土) 22:02:48.96 ID:K0euPiC+.net
>>394
ぼくはのっとりたいんです、まで読んだ

397 :デフォルトの名無しさん:2018/07/28(土) 22:05:04.32 ID:VyODD4HS.net
5chって投票所無かったっけ。

398 : :2018/07/28(土) 22:10:16.83 ID:AqK1vkX7.net
>>397
「一人一票」を技術的に実現できないから無意味

399 :デフォルトの名無しさん:2018/07/28(土) 22:20:07.96 ID:aLrZyGnX.net
実住所と氏名を晒し、郵送による本人確認、
投票用紙を送り、記名投票を実施する

400 : :2018/07/28(土) 22:25:17.35 ID:AqK1vkX7.net
>>399
なるほど
メールアドレスを晒して、というのはアリかもしれない

401 :デフォルトの名無しさん:2018/07/28(土) 22:27:16.84 ID:K0euPiC+.net
あーまあいいや、ちゃんと回答する気になったから書いておいてやる。
なお396は俺な。


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

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

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


>>397-398
相変わらずQZは回答なしか。お前も相当ずるい奴だな。
まあそれはさておき、
> 一人一票
ってのは仮に実現できたとしても意味がない。
フォークが成功するかどうかは、アクティブコミッターをどこまで獲得できるかであって、
つまりここで言うと正しく回答できる奴、それは実力と時間も含めて、がどれだけどちらに付くか、
そして結果的にどちらのスレの方がマトモに機能するかであって、
ROMの票があったところで意味がないからだ。
だからスレ割ってどちらが繁盛するかがつまり投票なんだよ。それがフォーク。

402 :デフォルトの名無しさん:2018/07/28(土) 22:28:51.81 ID:jbwKRPPF.net
やっぱりなクソニートの書き込みってすぐに分かるわ

403 :デフォルトの名無しさん:2018/07/28(土) 22:43:29.96 ID:oI8u94+S.net
ニートだのパヨクだの(´・ω・`)

404 :デフォルトの名無しさん:2018/07/28(土) 22:44:52.59 ID:C+3FbN1g.net
わかるはずがないのに分かっちゃった気になるからコケるんやぞ

405 :デフォルトの名無しさん:2018/07/28(土) 22:45:34.04 ID:jbwKRPPF.net
パヨチョンもクソニートも邪魔

排除が適切
適切な排除が必要

406 :デフォルトの名無しさん:2018/07/28(土) 22:48:36.99 ID:XeXUtcmE.net
>>401
結局テンプレの必要性は証明できないのに従来通りだからで押し切るつもりか。
スレ分割したら従来タイトルとスレ番継承したほうが圧倒的に有利なのは明らかだろう。なんの検証にもならない。馬鹿なんじゃないか?

407 :デフォルトの名無しさん:2018/07/28(土) 23:21:40.03 ID:VyODD4HS.net
>>406
テンプレが出来た経緯を知ってるか知らないかだろな。

408 :デフォルトの名無しさん:2018/07/28(土) 23:23:14.22 ID:K0euPiC+.net
>>406
少なくともアクティブな奴はここを読んでいて経緯は知ってる。
さらに8/1迄の先行件を与えている。
それ以上何が欲しいんだ?

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

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

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

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


というかこの話も同様に平行線なので、もうこれくらいでいいか?
いずれにしても俺は8/1以降に『完全に従来通り』でスレ立てる。
それをどう捉えるかは君らが決めることだ。

409 :デフォルトの名無しさん:2018/07/28(土) 23:23:17.95 ID:VyODD4HS.net
争いとは無縁そうなはちみつ餃子さんに仕切ってもらえばいいんじゃないのか。

410 :デフォルトの名無しさん:2018/07/28(土) 23:28:59.65 ID:aLrZyGnX.net
従来通りで良いなら、こんな大騒ぎしなくて良いだろう
いつものようにスレを使い切りそうになってから立てる
住民も変わらない。内容も今まで通り
これに不満な奴は、己の作りたい趣旨にそって
新しいスレを立てれば良いだけ

411 :デフォルトの名無しさん:2018/07/29(日) 00:45:26.42 ID:j115Aqon.net
>>410
> こんな大騒ぎしなくて良いだろう
お前がな。

俺は従来通りで立て直そうとしている。
必死に抵抗しているのは、例のテンプレを相当嫌っている奴か、
ワッチョイがあったら困る奴だろ。
従来通りでいい奴は、反対する理由がない。

412 :デフォルトの名無しさん:2018/07/29(日) 00:52:42.16 ID:Yg/enGwg.net
テンプレ登場人物で煽ったやつが俺なんだが、もしかして煽られた奴もここにいるのかい?

413 :デフォルトの名無しさん:2018/07/29(日) 00:55:43.16 ID:uqiXbB1D.net
>>408
こっちはそんな条件じゃなんの検証にもならないと主張しているのに、フォークで証明すると繰り返すばかり。もはや反論になってない。
結局"おまもり"の有効性なんて証明できるわけがないから公平なふりして無理やり押し通そうとしている。
非論理的で話にならん。

414 :デフォルトの名無しさん:2018/07/29(日) 01:02:15.71 ID:rd1wRLD1.net
この暑さでとうとう脳がやられたキチガイが出てきたなw

415 :デフォルトの名無しさん:2018/07/29(日) 01:04:47.05 ID:fkvLqjPx.net
c++やってるやつは案の定融通の利かない頭きちきちの奴ら何だろうな
テンプレがどうしたって言うんだか

416 :デフォルトの名無しさん:2018/07/29(日) 01:06:57.02 ID:1hBCvnSx.net
>>411
ワッチョイ付きでいいよ。賛成する。
それが従来通りって意味であってる。
これでいい?

417 :デフォルトの名無しさん:2018/07/29(日) 01:11:44.35 ID:fkvLqjPx.net
どの板でもスレの立て直しはたまにある
でも、余程理不尽なことがない限り新しいスレに人は移動しない
テンプレがないとかスレの番号が間違っているとかいう理由で人は移動しない

嵐が変なテンプレをつけたりおかしなスレタイに改変されてたら移動するぐらい

418 :デフォルトの名無しさん:2018/07/29(日) 01:41:26.98 ID:Yg/enGwg.net
ぶっちゃけどっちでもいいしどうでもいいんだけどね。

419 :はちみつ餃子 :2018/07/29(日) 03:10:55.83 ID:bQEgGaK2.net
>>409
争ったら駄目なんだよ。 交渉すべき。
だが、どうせこういう手合いは何を言っても聞きゃしねぇから無駄。

420 : :2018/07/29(日) 06:18:22.84 ID:bwtbjTxx.net
>>413
そうそう、キーワード「お守り」「非論理的」、いいですねえ

421 :デフォルトの名無しさん:2018/07/29(日) 07:02:10.69 ID:8jVIjsgO.net
>>413
>>419
>>420
ではお前らなりに論理的に検証になる方法を提案し、実行しろ。
「出来ないから出来ない」というのは止めろ。

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

>>416
従来通り=ワッチョイあり、例のテンプレは2に投下。
part136の1+3相当。

422 :デフォルトの名無しさん:2018/07/29(日) 07:25:09.88 ID:eV2zeRLd.net
なんでも良いけどC++の話題やれよ。
戯言は無視でええ。

423 :デフォルトの名無しさん:2018/07/29(日) 11:44:38.77 ID:LQAkWqzt.net
クソニートを駆除するために
はよバルサン焚けよ

こいつら害虫だからな

424 :デフォルトの名無しさん:2018/07/29(日) 11:51:12.53 ID:LQAkWqzt.net
ちなみに知恵遅れどものテキトーな回答のどこがおかしいか
オレはすべて回答してる

425 :デフォルトの名無しさん:2018/07/29(日) 12:37:46.37 ID:Yg/enGwg.net
プッシュ型スキャナ/パーサーはつなぎこみが楽だし、C++のテンプレートで使いやすい。
C++ Wayの一つとして研究されていいはず。

426 :デフォルトの名無しさん:2018/07/29(日) 13:09:38.19 ID:Yg/enGwg.net
Qiita落ちてる?

427 :デフォルトの名無しさん:2018/07/29(日) 14:24:58.96 ID:OHU95624.net
そこらじゅうで暴れてるな
半角ニート

初心者のくせに強がっちゃって

428 :デフォルトの名無しさん:2018/07/29(日) 16:40:38.92 ID:Yg/enGwg.net
雑談も桶になるといいよな。

429 : :2018/07/29(日) 17:23:58.49 ID:bwtbjTxx.net
>>353
>お前もいつの間にパヨクになったんだ?
これは興味深い、>>350 のどこに、パヨク=馬鹿左翼、を感じたのか、ちょっと教えていただけませんでしょうか?

430 :デフォルトの名無しさん:2018/07/29(日) 20:05:51.80 ID:L9bR4BuX.net
C++掲示板も終わりか。

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

あんまり糞な事言ってると、後はわかってるだろうな

431 :デフォルトの名無しさん:2018/07/29(日) 20:08:42.56 ID:1hBCvnSx.net
こういう人に限って何度も蘇ってくる

432 :デフォルトの名無しさん:2018/07/29(日) 20:13:22.07 ID:LQAkWqzt.net
クソはただのクソ袋
コイツラはただのウンコ製造機だからな

レス見ればすぐに分かる

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

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

簡単簡単

434 :デフォルトの名無しさん:2018/07/29(日) 21:17:20.23 ID:UevmDhbi.net
イカれを演じて暴言吐いてないと日常の不安に耐えきれないんだろうな……
なんかひどく可哀想な人だ……

435 :デフォルトの名無しさん:2018/07/30(月) 00:40:10.37 ID:yV+7/MBa.net
デストラクタで
型Tのメンバ変数Aのデストラクタ(cout等記述)が呼びされるはずなのに
型Tのメンバ変数Aと同じアドレスを持ったデストラクタ(解放だけ行う)が呼びされるんだが
こんなバグ何が原因かわからないんだ助けてください

もちろん型Tのデストラクタは一種類しか宣言してないし
virtualもつけてるんだが…

436 :デフォルトの名無しさん:2018/07/30(月) 00:58:21.77 ID:CKgR1uCb.net
コードで示してくれ

437 :デフォルトの名無しさん:2018/07/30(月) 06:36:20.73 ID:qFKbkkH1.net
Linuxでベースクラスで持たせてて元の型にキャストしてたりする?

438 :デフォルトの名無しさん:2018/07/30(月) 08:41:35.39 ID:qnQc5JET.net
C++で今まで作ったものってなんですか?
自分はとにかく競プロしかしてないので、なにか作りたいんですけどC++という言語でしかできないことがあまり思いつかなくて

439 :デフォルトの名無しさん:2018/07/30(月) 08:51:39.47 ID:yNVCdeG4.net
>>438
言語処理系はCで書くより楽だよ

440 :デフォルトの名無しさん:2018/07/30(月) 08:56:56.06 ID:qnQc5JET.net
>>439
ありがとうございます!
系統で答えてもらって助かります

441 :はちみつ餃子 :2018/07/30(月) 14:21:10.33 ID:pFBrx3WW.net
>>438
「できること」という意味では C と大差ないわ。
でも、プログラムの部品 (ライブラリ) に高度な抽象化を被せることが出来る。
要するに高レイヤでは楽できる可能性が高い。

レイヤを分ける必要もないような小さなプログラムでは
ありがたみを感じにくいかもね。

442 :デフォルトの名無しさん:2018/07/30(月) 19:42:11.85 ID:qnQc5JET.net
>>441
ありがとうございます
確かにC++はそういう要素大きいですよね!
そこがいい部分で好きなんですけど、やっぱり難しい部分ですよね

443 :デフォルトの名無しさん:2018/07/30(月) 21:47:15.09 ID:hbo0m8kQ.net
上のほうで、唇がメンタイコの欲深そうなのがいるな。

2chに引っ込んでいろや。屑が

444 :デフォルトの名無しさん:2018/07/31(火) 20:27:14.08 ID:jvSfH+BG.net
たらこじゃなくてか。

445 :デフォルトの名無しさん:2018/07/31(火) 21:48:26.82 ID:f0EnkAzQ.net
明太子はたらこのこと
唐辛子を塗したやつは辛子明太子

446 :デフォルトの名無しさん:2018/07/31(火) 22:24:08.58 ID:jvSfH+BG.net
そっかw
素で辛子明太子と間違えたわ。

447 :デフォルトの名無しさん:2018/08/01(水) 00:24:00.80 ID:VquDbSfz.net
アルゴリズム辞典みたいなものを手元に置いときたいんだが、最も支持されてるのってどれ?


・網羅性が高い
・支持されている(売れている)
・日本語版がある
・コード例はあってもなくても良くて、あるとしたら C/C++ か擬似コードで
という条件で
テーマ別に「どれとどれとどれを持っとけばまず問題ない」という言い方でもありがたい
とにかく網羅性を重視してる

448 :デフォルトの名無しさん:2018/08/01(水) 00:35:56.57 ID:/iJJIMGp.net
会社でC++書くことになったんですがコードが(ダブル)ポインタの嵐で読みにくいことこの上なくて辛いです
他にもstring使わずにchar配列だったり、vector使わずに配列だったり
Cのスタイルで書ける部分はできるだけCのスタイルで書くほうがやはり好まれるものなのでしょうか
前に個人でちょろっと書いたときはもうポインタ使わなくて済むならできるだけ使わないように!なんて思いながら書いてたんですが

449 :デフォルトの名無しさん:2018/08/01(水) 00:42:34.65 ID:hfBYO5dB.net
色々な事情があるのかも

Cからの移植とか

小規模だとヒープはトラブルの元なので極力使わないとか
そもそもヒープが無いとか

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

stringやvectorを避けている箇所にはそれなりの理由があるから
極力思い込みを排除して状況をよく見たほうがいい

451 :デフォルトの名無しさん:2018/08/01(水) 01:01:22.52 ID:uLizLGZM.net
>>447

合計\7,000--

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

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

C言語による最新アルゴリズム事典の詳細情報 : Vector ソフトを探す!
ttps://www.vector.co.jp/soft/data/prog/se002453.html

452 :デフォルトの名無しさん:2018/08/01(水) 02:12:56.94 ID:VquDbSfz.net
>>451
ありがとうございます。
最初のも辞典的なものなんでしょうか。

複数冊持つならばテーマ毎が良いかなとも思いましたが、特定のテーマに集中したものだと翻訳されているものが少ないのかもしれませんね。
2つ目と3つ目が部分的に補完しあっていることを期待して、両者とも購入しようかと思います。

453 :デフォルトの名無しさん:2018/08/01(水) 02:19:31.07 ID:Bdxs44t0.net
the art of computer programming
numerical recipes

コレしかないわ

454 :はちみつ餃子 :2018/08/01(水) 02:25:19.38 ID:oNWxQcbM.net
>>451
「C言語による最新アルゴリズム事典」はこないだ改定されて「C言語による標準アルゴリズム事典」という表題で売ってるぞ。
http://amzn.asia/cgZYRrQ
ロングセラーになりすぎたせいで「いつまで最新やねん」というのは常々言われづづけてたからなぁ。

455 :デフォルトの名無しさん:2018/08/01(水) 02:49:17.77 ID:GZaAdjmn.net
>>448-450
多分そいつは、Scott Meyers を知らないし、
ほとんどの言語に「Effective 何々」があることも知らないのだろうw

そいつに、Scott Meyers を知っていますかって聞けば?
プロで、江添亮とかScott Meyers を知らん奴は、いない

456 :デフォルトの名無しさん:2018/08/01(水) 06:52:26.90 ID:l9oYGZY2.net
会社に対してそいつ?

457 :デフォルトの名無しさん:2018/08/01(水) 07:00:43.17 ID:0Pfosj1X.net
stringやvectorはヒープなので、呼び出し回数の多い関数で毎回インスタンスを作る場合は処理時間に注意したいところ。

458 :はちみつ餃子 :2018/08/01(水) 07:02:13.71 ID:oNWxQcbM.net
まあ状況によるわなー。
後から伸長 (または縮小) が必要ないような固定長のデータを std::vector に入れるのは豪華すぎるので、
避けれるなら避けたいということは有りうる。

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

単純には判断できないので、わかんないことはそれを書いてるやつに聞けとしか言いようがないんじゃない?

459 :デフォルトの名無しさん:2018/08/01(水) 07:40:49.09 ID:OccwPm6d.net
stl使うと同バージョンのライブラリを実行環境にインストールするという考慮も増える

460 :デフォルトの名無しさん:2018/08/01(水) 07:53:02.77 ID:hfBYO5dB.net
えっ?
何か勘違いしてないか?

461 :デフォルトの名無しさん:2018/08/01(水) 18:55:57.40 ID:4hR5DucF.net
やっぱり通になると、明太子ひとつ、辛子抜きで・・・とか注文するんだろな。

462 : :2018/08/01(水) 19:05:43.34 ID:6NCuGzpD.net
>>447
https://www.amazon.co.jp/dp/4774196908
今年になって改訂版が出たらしい、だれかレビュー頼みます

463 :デフォルトの名無しさん:2018/08/01(水) 19:11:49.62 ID:a1G0tkY3.net
>>462
第2刷買ったっけな。役に立ったと思う。

464 :デフォルトの名無しさん:2018/08/01(水) 19:41:42.72 ID:7TmTR3QV.net
>>462
板を荒らすのやめろよ

465 :デフォルトの名無しさん:2018/08/01(水) 20:37:51.59 ID:/iJJIMGp.net
ポインタの件ですが参考になりました。まぁこっちはほぼ初心者で相手はベテランの上司なので何も言えない聞けないってとこですね
stackoverflowとか読んで生ポインタあんま使うなスマポ使えオブジェクト使えるときは使えみたいなこと書いてあるの見るとこれでいいのかなって思いますねええ

466 :はちみつ餃子 :2018/08/01(水) 23:13:55.56 ID:oNWxQcbM.net
std::unique_ptr は実行時の速度ペナルティもほとんどないので、避ける理由はあんまりないよな。
例外がとんだ時のロールバックについても面倒なことを考えなくて良いし。

467 :デフォルトの名無しさん:2018/08/01(水) 23:34:41.68 ID:GZaAdjmn.net
たぶん、Scott Meyers とか「Effective 何々」とか、知らんのだろ

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

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

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

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

よほどの理由がない限り、新しく作らない

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

網羅性ってヤツを追及するなら、同じようなもんいくつも買うんじゃなくて自分で言ってるようにテーマに特化したものを買うしかない
名前忘れたけど文字列アルゴリズムのアレとか

469 :はちみつ餃子 :2018/08/02(木) 06:10:43.23 ID:ksgx4qMg.net
>>447
Knuth の 「The Art of Computer Programming」もその条件に当てはまると思う。

470 :デフォルトの名無しさん:2018/08/02(木) 07:12:52.80 ID:NSwKZwuS.net
圧縮アルゴリズムなんか、本で憶えたんじゃなく
FAXだとかモデムみたいな具体的なブツで憶えたな

その他のアルゴリズムも単行本より雑誌で
憶えたのが多いし

471 :デフォルトの名無しさん:2018/08/02(木) 10:20:23.60 ID:KhTk1OQU.net
そのあたりのアルゴリズムはCマガで覚えた

472 :デフォルトの名無しさん:2018/08/02(木) 10:41:45.24 ID:zFALVR92.net
>>468

これ?

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

「高速文字列解析の世界」サポートページ - daisuke.okanohara
ttps://sites.google.com/site/daisukeokanohara/iwanami_string_world

473 :デフォルトの名無しさん:2018/08/02(木) 11:27:51.52 ID:KhTk1OQU.net
そのジャンルは大体の場合は条件固定じゃないからツール類を使ったほうがいい

474 :デフォルトの名無しさん:2018/08/02(木) 17:47:42.68 ID:QC+SfWnq.net
>>447,451,468
蟻本の参考文献揃えるのがおすすめ

475 :デフォルトの名無しさん:2018/08/02(木) 17:50:02.28 ID:QC+SfWnq.net
って思って確認したらそんな良くなかったスマン

476 : :2018/08/02(木) 19:12:17.99 ID:hFhSdR7O.net
>>470
文書圧縮について手元に置いていつも参照しているのは
https://www.amazon.co.jp/dp/478983672X/
今は、jpg の本が欲しいと思っていますが、なにかいいのはありますか?

477 :デフォルトの名無しさん:2018/08/02(木) 19:38:11.37 ID:nAUx6Lke.net
C++極めたいんだけど、どうすれば極められる?
仕事はJavaScriptが主です
今はアルゴリズムの本読んでるのですが、個人的にはC++ドラフトの間違いを指摘できるレベルになりたいです

478 :デフォルトの名無しさん:2018/08/02(木) 19:48:55.00 ID:1EegAYN5.net
そんな事を人に聞いてる様じゃ一生無理

479 :デフォルトの名無しさん:2018/08/02(木) 19:57:10.95 ID:Ro0F3mb9.net
>>477
oracle Solaris Studio の開発者になるとか
ホワイトスミスに弟子入りするとか
じゃね?

480 :デフォルトの名無しさん:2018/08/02(木) 20:52:27.89 ID:jf+aoeV/.net
>>478
いや実際C++使ってる職場少ないし、どうやってレベルを上げればいいのか分からん
オープンソースを読むくらいしか思いつかない
>>479
ジョークはいい

481 :デフォルトの名無しさん:2018/08/02(木) 21:22:49.70 ID:EkY0QbOC.net
コンパイラ読めないと話にならんのじゃないか?

482 :デフォルトの名無しさん:2018/08/02(木) 21:53:24.64 ID:0KRWeg2T.net
>>480
職場に何を頼るの?

483 :デフォルトの名無しさん:2018/08/02(木) 22:18:49.50 ID:NSwKZwuS.net
>>476
jpegが赤に弱いなんてのも
ギョーカイの人とのおつきあいで
ホーソレデ氏になった

484 :デフォルトの名無しさん:2018/08/02(木) 22:24:42.73 ID:Ar8oKNDv.net
>>480
読んでばかりじゃなくて自発的に自分で実際に書いてみないことには、いつまでたってもたいして身に付かないだろう。
極めたいなら、言語仕様の一つ一つを実際に使ってみて具体的に役立つケースや制限、制約、限界を体感して、メリットデメリットを洗い出すくらいのつもりで試してみたら?

485 :デフォルトの名無しさん:2018/08/02(木) 23:26:26.75 ID:jf+aoeV/.net
>>482
嫌‥
>>484の言うとおり実践的な立場かな
>>484
それはもちろん分かる

486 :デフォルトの名無しさん:2018/08/03(金) 02:17:39.89 ID:gpdbLiuq.net
>>485
まずは仕事で使う自作ツールをC++で書くとか
千里の道も一歩から

487 :デフォルトの名無しさん:2018/08/03(金) 02:23:34.66 ID:Ja3muTb1.net
自作ツールはまず、スクリプト言語でやってみて、速度面などで不満があった時だけC・C++に置き換えるのがいいと思うけどどうなの。
スクリプト言語とコンパイル言語の使い分けを覚える良い機会になる。

488 :デフォルトの名無しさん:2018/08/03(金) 02:28:52.17 ID:gpdbLiuq.net
>>487
目的が自作ツールを作ることならそれで間違ってないが
C++を極めることが目的みたいよ

489 :デフォルトの名無しさん:2018/08/03(金) 07:41:26.05 ID:jYMqs03L.net
極めると言うても、次の規格が出たらもう過去の知識だし、
いくら頑張っても到達できないゴールのような気がするなぁ。
規格を作る側に入り込めるなら話は違うかも知れんが。

C++は、自分より後ろにいる人をバカにするのが好きな人も多い感じだけど、
「そんな奴にはならん方がええ」

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

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

ただ、余談だけど、段階的に学べるようにというのはスタート地点として C を想定しているように思う。
C が当然の基礎知識としてあった時代には
そこからシームレスに C++ を学んでいけるように設計するのは妥当な選択だったかもしれないが、
今の時代には C++ の中の C の部分は色々と足を引っ張ってもいるので
歴史が長いと泥臭い部分も積み重なっていくものだなぁと思いました。 (小並感)

491 :デフォルトの名無しさん:2018/08/03(金) 10:14:53.94 ID:lq/KEYA1.net
20年近く使ってるけど、ドラフトとか目にしても
「こんな機能来るんや!」ってwktkするだけだな
規格を知ってれば極めてる、みたいな風潮が最近あるけど間違いやで
言語はあくまで道具だから使ってなんぼ

492 :デフォルトの名無しさん:2018/08/03(金) 10:29:03.00 ID:cfhQf2V5.net
みんな深いレスありがとう
ただ自分はどうしても諦めきれないので、仕事以外の時間は、C++に関するサイトや書籍やコーディングに費やすことになると思う
Pythonは学ぼうとは思ってるけどね

493 :デフォルトの名無しさん:2018/08/03(金) 10:49:41.39 ID:TY6Sib0f.net
ttps://github.com/python/cpython/tree/master/Python

今ならpythonのソースコードもオマケで学べるよ

494 :デフォルトの名無しさん:2018/08/03(金) 12:16:04.74 ID:cfhQf2V5.net
>>493
ありがとう
こういうのはいいですね

495 :デフォルトの名無しさん:2018/08/03(金) 15:41:42.81 ID:Ja3muTb1.net
スクリプト言語には、ハッシュテーブルやディクショナリなどと呼ばれるキーと値の組を保存するコンテナ機能が存在する。
一般に高速とされるC++だが、実は、ハッシュテーブルだけはスクリプト言語の方がアクセス速度が速かった。
ただし、C++におけるstd::mapだけがハッシュテーブルに該当した頃の話。

今は、std::unordered_mapがあるのでスクリプト言語と同等以上の速度でハッシュテーブルにアクセス可能になっている。

496 :デフォルトの名無しさん:2018/08/03(金) 18:32:37.47 ID:j4paKoWq.net
mapはハッシュテーブルに該当しないだろ。
そういうときは辞書とかマップとか連想配列とかと呼ぶべきだ。

497 :デフォルトの名無しさん:2018/08/03(金) 18:52:42.14 ID:9KGEdKKU.net
mapは連想コンテナだが

498 :デフォルトの名無しさん:2018/08/03(金) 19:03:27.95 ID:j4paKoWq.net
ハッシュテーブルじゃない

499 :デフォルトの名無しさん:2018/08/03(金) 23:13:28.65 ID:B+FOIxCl.net
クラス設計で悩んでいるんだが、みんなの意見を聞きたい
やりたいのは、いわゆるデザインパターン 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.01 ID:cWBuX5k9.net
Child3をChild2の子にすれば?

501 :デフォルトの名無しさん:2018/08/03(金) 23:22:51.86 ID:Ja3muTb1.net
共通処理を継承関係と無縁なtemplate関数にできないか検討してみては?

502 :デフォルトの名無しさん:2018/08/03(金) 23:26:40.59 ID:Xb0+UQnK.net
>>500
それは多分なんらか整列の問題でやりたくないんだと推測
俺なら4かな・・・

503 :デフォルトの名無しさん:2018/08/03(金) 23:28:34.49 ID:Xb0+UQnK.net
4の改良?として
実装ファイルの無名スコープにvoid method1(const Parent& p)かな

504 :デフォルトの名無しさん:2018/08/03(金) 23:36:56.13 ID:xr+Hum6X.net
派生させるんじゃなくてメソッドの処理を別クラスにして移譲させるんじゃないの?

505 :デフォルトの名無しさん:2018/08/04(土) 00:12:06.53 ID:AH7fLvgn.net
>>499
> 実装のために継承関係を作るのはあまりよくない気がする
と言いつつ
> 親クラスに共通メソッドを作って、Child2::method1()とChild3::method1()はそれを呼ぶ
とか意味わからん
全然関係ないのにたまたま一緒になったと言うなら
> しゃーないChild2::method1()コピペで!
しかないと思うが

506 :デフォルトの名無しさん:2018/08/04(土) 00:38:11.84 ID:hQAAmMi0.net
コーディング規約で、引数や戻り値に参照型は使うな。わかりにくくなるから。ポインタで渡してポインタで返せ
ってことになってるんですけどこれ一般的な考え方なんですかね。生ポインタ使いまくりの方がよっぽどわかりにくいと思うんですけど

507 :デフォルトの名無しさん:2018/08/04(土) 00:53:09.47 ID:CpwGeL+S.net
そんなことよりメソッドでクラスのインスタンスが変更されない場合
そのメソッドにちゃんとconstつけろよ

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

わかった?

508 :デフォルトの名無しさん:2018/08/04(土) 00:58:03.49 ID:0clFfLhT.net
>>506
言ってることがわからなくはないが一般的ではないと思う
むしろ参照のほうが一般的な気がするな

509 :デフォルトの名無しさん:2018/08/04(土) 01:05:30.18 ID:Xh+3QD0k.net
引数については、読み書きする引数は注意をひくためにポインタ渡しにして、読み取りだけの引数は参照渡しにするといいのでは。
戻り値については、失敗したことを意味するNULLを使えるのでポインタのほうがうれしいかも。

510 :デフォルトの名無しさん:2018/08/04(土) 01:06:58.94 ID:QByQ49xB.net
>>499
execute が virtual でないってことは
Parentを基底にしてコレクションしなくてもいいってことでOK?

>>501 の言うように template で mixin 的に書いたら こんな感じになったー
https://ideone.com/CcRHnO
ChildがKlassになって兄弟関係がなくなってる

511 :デフォルトの名無しさん:2018/08/04(土) 01:12:24.24 ID:CpwGeL+S.net
戻り値なんか全部intでいい
0未満ならすべて一貫してすべてエラー
失敗がありえないブーリアンだけはかろうじてあり

引数をポインタで渡せないとNULLを渡して処理したい場合の処理ができない
そういうとき困るから全部ポインタで

512 :デフォルトの名無しさん:2018/08/04(土) 05:12:55.60 ID:iUNKVgUH.net
素人ばっかりかw
「More Effective C++」の項目1 だろ

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

参照は、確実にNULL じゃない場合。
また、参照に再代入はしない事

513 :デフォルトの名無しさん:2018/08/04(土) 05:25:27.41 ID:YA1hWK5Y.net
HRESULTも知らないヒヨッ子がいきってるな

514 :デフォルトの名無しさん:2018/08/04(土) 06:40:25.30 ID:O/qEXyQX.net
参照に再代入ってどうやんの

515 :デフォルトの名無しさん:2018/08/04(土) 07:29:12.24 ID:o+LfwS0J.net
cからのコードが多い場合は統一のために参照渡しにしないってのはあるかな。

516 :デフォルトの名無しさん:2018/08/04(土) 07:33:54.06 ID:YA1hWK5Y.net
extern "C"に参照渡しなんかするかよ

517 :デフォルトの名無しさん:2018/08/04(土) 07:42:44.96 ID:Xh+3QD0k.net
たかが参照にストレスを感じるようになったら、C/C++プログラマをやめた方がいい。引退時。

518 :デフォルトの名無しさん:2018/08/04(土) 08:00:44.90 ID:mQQzn2Q+.net
>>506
C++を知らない老害が自分の為に決めた規約
積極的に逆らおう

519 :デフォルトの名無しさん:2018/08/04(土) 08:29:49.29 ID:Xh+3QD0k.net
私見を言わせてもらうと、多様性を受け入れ状況に合わせて柔軟に合わせていくのもプログラマあるいは技術者の重要なスキルなので、
一神教的な偏狭な人は若年性認知症とまで言ってのける気はないがかなり情報処理能力が低くなっているはずなので、プログラミングをやめた方がいい。

520 :デフォルトの名無しさん:2018/08/04(土) 09:34:28.56 ID:0uMuTyGR.net
プログラミングがどうこういうより国語を勉強しろ。

521 :デフォルトの名無しさん:2018/08/04(土) 09:35:16.17 ID:o+LfwS0J.net
柔軟なのと規約を決めないのはまた別だけどね。
多様性といって新しい言語使って同じ過ちを繰り返している人を何人も見てると
色々バカバカしくなるってところはある。
老害と同じくらい歴史を見ない若造も有害という現実を見るのも良い。

522 :デフォルトの名無しさん:2018/08/04(土) 09:50:53.54 ID:2dadGiC9.net
まあ少なくとも>>506が老害であるのは確か
実務経験が少ない若者が多いのも当たり前

523 :デフォルトの名無しさん:2018/08/04(土) 09:53:11.49 ID:F7vd0ILk.net
老害なんて言っている奴、10年後に自分がそう呼ばれるって事気がついてないのかな・・・

524 :デフォルトの名無しさん:2018/08/04(土) 09:55:58.68 ID:2dadGiC9.net
老人全てが老害になるわけではない
害があるから老害と呼ばれる

525 :デフォルトの名無しさん:2018/08/04(土) 09:59:13.29 ID:2dadGiC9.net
>>521
歴史?

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

言語自体の歴史、CPU自体の歴史なんか
興味があるヤツだけ勉強すれば良い

526 :デフォルトの名無しさん:2018/08/04(土) 10:02:32.30 ID:F7vd0ILk.net
数人のグループで開発しているなら、あえてコーディング規約を設けずしても出来るだろうが
100人、1000人規模で開発しているなら、工業製品としての品質管理として必要になるでしょう

527 :デフォルトの名無しさん:2018/08/04(土) 10:03:35.96 ID:pDxZw3/e.net
>>525
ぼくがしらないのはまわりがおしえないから
さすがゆとり

528 :デフォルトの名無しさん:2018/08/04(土) 10:08:29.90 ID:2dadGiC9.net
ん?
おれは伝える側の人間だが

529 :デフォルトの名無しさん:2018/08/04(土) 10:11:50.81 ID:2dadGiC9.net
100人規模1000人規模のソフト開発で
若者に言語の決定権があるってのは
すごい会社だね

530 :デフォルトの名無しさん:2018/08/04(土) 10:20:39.15 ID:+vznLLf6.net
おかしくはない

好きにやれ動くブツだけもってこい

531 :デフォルトの名無しさん:2018/08/04(土) 10:27:14.97 ID:UzBGgsy3.net
いや別に好きにすればいいとは思うのだが
勝手に自分で選んだ言語固有の問題にぶち当たって
人に泣きつくなっつー馬鹿みたいな話があまりに多いんで。
>>525
まともに聞いてくれれば問題ない。

532 :デフォルトの名無しさん:2018/08/04(土) 10:54:42.16 ID:VXqPvtUW.net
出来たばかりの最新規格の機能ならともかく
C++98以前からずーっとある言語の基本機能を大した理由もなく縛ってるのは阿呆でしょ
(「大した理由」があるなら縛ってもいいのよ、本当に大した理由ならな)

533 :デフォルトの名無しさん:2018/08/04(土) 11:09:59.74 ID:9+U//wQd.net
>>460
横だがDLLにstd::stringとかSTLのオブジェクトを渡したり返したりする設計ェ、、、
std::string程度なら現実には動くが、STLの内部動作のバージョン間の整合を誰も保証してくれない以上、
そういう設計をされるともはや誰も動作を保証できなくなる

STLに限らずOpenCVやCRT絡みのオブジェクトでもそう、
というわけでこういうライブラリのバージョンの統一を担保できない状況ではchar[]の登場と相成りぬ、

534 :デフォルトの名無しさん:2018/08/04(土) 11:20:42.46 ID:Xh+3QD0k.net
char[]を使う関数をDLLにして、その関数をstd::string版関数オーバーロード的なラッパーをヘッダーに記述するでしょ、普通。
というか、std::string専用である必要はなく、template関数にしとけばSTLportだろうかstdだろうかEASTLだろうが対応可能になる。

535 :はちみつ餃子 :2018/08/04(土) 11:23:58.97 ID:SzDDeCK/.net
バイナリでの保証を考えると STL を使いにくいってのは確かにあるよな。
COM のような形式を使えばオブジェクト指向をバイナリレベルで管理することも出来るが、
それはそれで別の規約に縛られてしまうわけで。

どんな規約にするにせよ不満は有るよ。
一貫した規約が無い不満よりは規約に不満を持つ方がマシな世界になりがちなのが現実。

536 :デフォルトの名無しさん:2018/08/04(土) 11:33:14.55 ID:CpwGeL+S.net
そんなもん文字列のポインタ渡せばしまい
頭悪いのって悩む必要がないどーでもいい事で悩むからな

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

string ahoをaho.c_str()で渡すだけ

537 :デフォルトの名無しさん:2018/08/04(土) 11:50:08.73 ID:9+U//wQd.net
>>534
ワカル
それは全く普通の設計でおすなあ、

538 :デフォルトの名無しさん:2018/08/04(土) 11:54:01.62 ID:CpwGeL+S.net
頭悪いシロウトほど可変長の文字列クラスをいちいち使いたがるからな

539 :デフォルトの名無しさん:2018/08/04(土) 11:57:27.88 ID:CpwGeL+S.net
もしかしてvectorとかもいちいち自分で全部ラップしってんの
とにかく頭が悪すぎるわ

540 :デフォルトの名無しさん:2018/08/04(土) 11:59:57.25 ID:9+U//wQd.net
ここで問題なのは可変長の文字列クラスを使いたがる類の素人なのではなくて、
DLLのcallerとcalleeでSTLやCRTのバージョン相違しているケースを想像できない類の素人なのでは…

541 :デフォルトの名無しさん:2018/08/04(土) 12:07:08.58 ID:CpwGeL+S.net
このスレにいるような知恵遅れがどんな作り方しても
ぜんぜん問題にならない

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.92 ID:73YctOjT.net
>>484
極めて同意
仕事だと、過去のしがらみや、コーディングルール等に縛られて、思い通りにできない。
自分で地道に実験してゆくしかない

543 :デフォルトの名無しさん:2018/08/04(土) 12:16:41.91 ID:9+U//wQd.net
いやほんと
呼び出し元と同じ完結したモジュール内で定義された関数にはconst std::string& ahoやconst std::vector &vecで渡し、
DLLで定義された関数にはaho.c_str()や&(vec[0])で渡す、と区別すればwrapperは要りませんなあ、
いやはや>>541は便利なやり方をいろいろご存知ですなあ、、

544 : :2018/08/04(土) 12:54:24.58 ID:Rdsot1y5.net
>>519
「〜なので、〜なので、○○だ」
読んでとまどいを覚える日本語文ですね

545 : :2018/08/04(土) 12:56:26.35 ID:Rdsot1y5.net
>>532
K&R2 の世界の人にとっては、十分に未知な領域なのでしょう…
私は K&R2 自体がすでに「堕落したもの」と考えております

546 :デフォルトの名無しさん:2018/08/04(土) 13:59:14.93 ID:f+sj1d72.net
>>506
某エディタにこの宗教にご執心の開発者がいるな

547 :デフォルトの名無しさん:2018/08/04(土) 18:05:43.06 ID:Xh+3QD0k.net
ポリモーフィズム(多態性)を可読性を下げる欠点ではなく、可読性を上げる長所と考えるのがC++プログラマとしての信仰の基本なので、
様々な記述方法を許す多態性を嫌うのなら、C++を棄教せねばならないでしょう。
演算子オーバーロードを耐えられる情報処理能力があるなら、参照渡しにも耐えられるはずで、参照渡しだけ目の敵にするのはただの原理主義ですね。

548 :デフォルトの名無しさん:2018/08/04(土) 18:58:53.47 ID:YA1hWK5Y.net
原理主義なんて高尚なもんじゃなくただのバカ

549 :デフォルトの名無しさん:2018/08/04(土) 20:01:37.83 ID:5qDWXahz.net
>>547
なのでなのでは?

550 :はちみつ餃子 :2018/08/05(日) 00:20:51.12 ID:Sl8YWqHi.net
>>547
言葉のニュアンス的には原理主義というより教条主義と言った方がこの場合は近いかも

551 :デフォルトの名無しさん:2018/08/05(日) 05:07:56.69 ID:xG+zmDln.net
だれかたすけてください。
https://dotup.org/uploda/dotup.org1602882.zip
こういうプロジェクトを作ったんですよ。
一応、ゲームっぽいものですが本質はそこじゃなくて。
えーっと、前方参照の解決がよくわからないので直し方教えてください。
普段小さなコードしか扱ってないのでソース分割あまりしないのでわけがわかりません。
コンパイルが通るにはどうしたらよいでしょうか。

お願いします。

552 :デフォルトの名無しさん:2018/08/05(日) 08:56:46.93 ID:WhsUmrtL.net
ツッコミどころはいっぱいあるけど
とりあえずGameIssue.hの中でRougeStageの定義が見えてないからincludeしろ

553 : :2018/08/05(日) 17:21:41.90 ID:JAQP+wl+.net
>>506
http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html
「変数を参照しているのか逆参照しているのかがいつもわからなくなる、だから必ずポインタを使う。アスタリスクが思い出させてくれるから」

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

個人的には C# のように、呼び出し側でも参照渡しを明示するのがスマートだと思います
そのコーディング規約は良心的だと思います

554 :デフォルトの名無しさん:2018/08/05(日) 17:44:24.77 ID:kXrZdLCy.net
>>553
参照渡しを明示、とは具体的にどんな方法でしょう?

555 :デフォルトの名無しさん:2018/08/05(日) 17:48:52.51 ID:3KDX12Zf.net
ref とかoutとかじゃね?

556 : :2018/08/05(日) 17:55:52.90 ID:JAQP+wl+.net
>>554
https://ideone.com/FMEesh
呼び出し側にもキーワード "ref" を記述します

557 :デフォルトの名無しさん:2018/08/05(日) 18:07:51.68 ID:lZNE8En/.net
ゲーム的にはコレか?

Rog-O-Matic - Wikipedia
https://en.wikipedia.org/wiki/Rog-O-Matic

558 :デフォルトの名無しさん:2018/08/05(日) 18:26:33.87 ID:kXrZdLCy.net
>>556
C#ではなくC++での方法を聞きたかったのですが (^_^;)

559 :デフォルトの名無しさん:2018/08/05(日) 18:32:14.36 ID:yKLkGD1M.net
>>506
constなしで参照渡しするなっていうコーディング規約ならgoogleも採用してるよ

560 :デフォルトの名無しさん:2018/08/05(日) 18:34:25.86 ID:QdoPuPH9.net
立てました。移動はご自由に。

C++相談室 part138
https://mevius.5ch.net/test/read.cgi/tech/1533459756/

561 :デフォルトの名無しさん:2018/08/05(日) 18:35:44.95 ID:C8NdcnMU.net
>>558
お前はC++とかより日本語の勉強しなよ…

562 :デフォルトの名無しさん:2018/08/05(日) 18:56:17.20 ID:K/INtz2h.net
単純にc++だけで閉じてれば参照で統一ってのもありだろうけれど
c++ってそういう言語じゃないんだよね。
大抵大規模なコードは過去のcソースとごっちゃになってる。

563 :デフォルトの名無しさん:2018/08/05(日) 19:04:35.58 ID:lZNE8En/.net
>>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.29 ID:yKLkGD1M.net
いい加減な方法でビルドはできるようにしたのに遊べないよ!
なんとかしろ、作者

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個定義されているのでどちらかを消す。

565 :551:2018/08/05(日) 23:51:00.40 ID:xG+zmDln.net
こんにちは。色々ご指摘ありがとうございます。
これまだ、脳内コーディングでシステム組んだだけでコンパイルが通って無いように、デバッグさえしてません。
なんとなーく、ローグのAI書いたら面白いんじゃないかと思って書き始めたのですが、沼にハマってしまいました。
とりあえず、前方参照の件は解決したみたいです。
その後大量のエラーと格闘していますが、支離滅裂なエラー(?)が大量に出ていて吐きそうです。

とりあえず、この件については閉めます。
ありがとうございました。

566 :デフォルトの名無しさん:2018/08/06(月) 00:29:53.59 ID:b7eNDjo0.net
>>553-556
/* ref */

引数内で、コメントを使えば?

567 :デフォルトの名無しさん:2018/08/06(月) 04:28:30.45 ID:EZAi1/yQ.net
>>559
templateの右辺値参照もダメとか
さすがに修正が必要だな

568 :デフォルトの名無しさん:2018/08/06(月) 11:34:49.72 ID:aJPEpevk.net
>>567
別の項にmoveコンストラクタ、move代入演算子、perfect forwardingするときは右辺値参照使ってええよって書いてあるから、右辺値参照は対象外なんだと思う。

>>565
できたら遊ばせてねー

569 :デフォルトの名無しさん:2018/08/06(月) 12:01:58.56 ID:aJPEpevk.net
aiでautoってことは遊ぶんじゃなくて遊ばれちゃうのか…

570 :デフォルトの名無しさん:2018/08/06(月) 13:00:05.48 ID:6LLA+7Q/.net
Googleコーディング規約は古臭くてオワコンだからみんなはISOで作ってる規約を使おうね!
って禿先生が講演で言ってた

571 :551:2018/08/06(月) 18:02:56.58 ID:L/6qyfUO.net
>>596
ステージ生成してAIに解いてもらおうと。
そのAI書かないといけないんですけどね。

572 :デフォルトの名無しさん:2018/08/06(月) 18:04:44.92 ID:L/6qyfUO.net
しかし、ロジカルなことしたいのに、それ以外のエラーで死にかけるのは困ったなぁ。。。

573 :デフォルトの名無しさん:2018/08/06(月) 18:26:13.93 ID:0lSQ8xAg.net
>>572
アルゴリズムの間違いの発見や修正に比べたら、コンパイルエラーの解消なんてコンパイラさんが親切に教えてくれてるんだから、簡単なことだよ。
ロジカルなことしたいなら、コードの記述もロジカルに頑張れ

574 :デフォルトの名無しさん:2018/08/06(月) 19:18:24.62 ID:L/6qyfUO.net
はい。がんばります。

575 :デフォルトの名無しさん:2018/08/06(月) 19:34:04.04 ID:ykSda89u.net
>>570
今現在コード書いてないオワコン禿げのいう事のが信用ねーわ。
江添とかも同類。
コードをまともに書いてないやつが言語仕様決めてるってのがc++のクソなところ。

576 :デフォルトの名無しさん:2018/08/06(月) 19:45:02.37 ID:Xt7Beabr.net
>>575
コードがマトモに書ける人は書く方が忙しいので仕様どころではないって割とありそう

577 : :2018/08/06(月) 22:20:17.51 ID:zDoA3miN.net
ryzen threadripper 2950X 16C32T 3.5GHz〜4.4GHz !!
なんだか最近急にすごくなっていませんか?

578 :デフォルトの名無しさん:2018/08/06(月) 23:09:33.16 ID:L/6qyfUO.net
今までのAMDが怠けてただけだよ!

579 :デフォルトの名無しさん:2018/08/06(月) 23:12:22.15 ID:zQ2KZFwb.net
floatのゼロ割りって、infになるものの、別にそれ自体が問題ではなくて、
それがクラッシュに繋がるような演算を行うことが問題であって、
例えば条件分岐で一定の大きさ以下の場合のみ参照するようにしているなら問題ないですよね?

580 :デフォルトの名無しさん:2018/08/06(月) 23:30:48.85 ID:Xt7Beabr.net
ゼロで割り算したい意図は?

581 :デフォルトの名無しさん:2018/08/06(月) 23:38:20.39 ID:wPUCa9qR.net
>>579
うん
>>580
ゼロで割りたいなんて一言も書いてない

582 :579:2018/08/06(月) 23:40:51.75 ID:zQ2KZFwb.net
>>580
物体の速度なのでゼロのときがあるんです。
例えば、ある距離に到達する時間を求めるとなると、その距離を速度で割るのでゼロ割りがあり得ます。

583 :579:2018/08/06(月) 23:43:04.07 ID:zQ2KZFwb.net
>>581
ありがとうございます。
ゼロで割ること自体を回避するのって、けっこう厄介なんですよね・・・。
ある程度小さい場合は演算しないとか、どれくらい小さかったらいいの?みたいなことを考えないといけないので・・・。
無限大のときにどうする?という考え方の方が対処し易いように思います。

584 :デフォルトの名無しさん:2018/08/07(火) 06:50:16.11 ID:PssQ1NSH.net
今Python + Opencvで画像処理をしているのですが、速度の問題でこれをC++に書き換えたいです
Pythonのnumpyみたいなものはc++にも有りますか?
OpencvのMatを(多次元配列に格納するなりして)C++で弄くれると嬉しいのですが

585 :デフォルトの名無しさん:2018/08/07(火) 07:05:01.46 ID:rmdm0Ojo.net
まずOpenCVはもともとC++で書かれてるライブラリであってPythonのはラッパーだって所から始めようか

586 :デフォルトの名無しさん:2018/08/07(火) 08:33:46.01 ID:dagdXeyj.net
>>575
めっちゃコード書いてんじゃん

587 :はちみつ餃子 :2018/08/07(火) 15:24:28.59 ID:pMC2Ofi2.net
江添っちはコード例はたくさん書いてるけど、
アプリケーションとして完成したものはひとつだけしか見たことねぇ。

今はドワンゴにいるし、社内で使うツールを書いたりすることもあるのかなぁ?

588 :デフォルトの名無しさん:2018/08/07(火) 15:40:59.13 ID:3k81+fEr.net
snprintfには第一引数をNULLにすることで本来何文字の領域があればよかったかを判断できるみたいだけど
wchar_tにはそのようなものはないだろうか?

589 :デフォルトの名無しさん:2018/08/07(火) 15:59:59.84 ID:8+yE0dxd.net
>>570
もしかして先月の27日、行ってきたの?

590 :デフォルトの名無しさん:2018/08/07(火) 16:51:22.86 ID:rmdm0Ojo.net
おう行ってきたぞ
内容は知ってる話が多かったけど本人の口から聞けて楽しかった

591 :デフォルトの名無しさん:2018/08/07(火) 20:17:28.47 ID:7soFSQAi.net
int main(int argc, char** argv)
このchar**って他に変えれたりする?tcharとかwchar_tとか

592 :さまよえる蟻人間 :2018/08/07(火) 20:20:21.90 ID:p+v0mQmH.net
Win32では、int wmain(int, wchar_t**)に変えられるよ。環境変数の引数も付けるのは変態かも知れん。

593 :デフォルトの名無しさん:2018/08/07(火) 20:21:20.30 ID:7soFSQAi.net
>>592
wmainになるのね
助かります

594 :デフォルトの名無しさん:2018/08/07(火) 20:28:56.24 ID:rmdm0Ojo.net
標準で認められてるmain関数はint main();とint main(int argc, char** argv);だけ
それ以外は処理系の独自拡張

595 :デフォルトの名無しさん:2018/08/07(火) 20:40:16.10 ID:8+yE0dxd.net
>>590
何か変わったこと言ってたらレビューplz

596 :デフォルトの名無しさん:2018/08/08(水) 00:08:10.74 ID:N8tx/Inn.net
実は宗教的な会合ではなかろうか
教祖もしくは弟子・伝道者・教皇の御言葉を拝聴する、それが宗教だ

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

サイモン&ガーファンクルも生きてるし、K&Rも生きてる、ついでに、ビャーネ・ストロヴストルップとかESRも生きてる
21世紀の今がそういう時代というだけだ

597 : :2018/08/08(水) 00:15:12.33 ID:35SEMuEM.net
>>596
デニス・リッチーは2011年に亡くなった

598 :デフォルトの名無しさん:2018/08/08(水) 00:32:10.97 ID:bKO8QxvP.net
イタコがふえるんやなぁ・・・。

599 :デフォルトの名無しさん:2018/08/08(水) 05:08:18.88 ID:d90b/R1Y.net
宗教だと? 失礼だな
俺は禿を盲信なんかしてねえよ
newなんかいらねえと俺は初版の当時から思っていたし
動的例外指定なんぞISOで否定されてんだぞ

600 :デフォルトの名無しさん:2018/08/08(水) 05:53:47.96 ID:bKO8QxvP.net
ジェネリックなメモリ確保はどのみち必要だと思うよ。構文がどうであれ。
あと、動的にコンストラクタとか呼ばないといけないし必要だと思うよ。
個人的にnewはライブラリ屋さんが使えばいいものだと思ってる。

601 :デフォルトの名無しさん:2018/08/08(水) 06:09:55.58 ID:d90b/R1Y.net
placementみたいのがあれば充分

602 :デフォルトの名無しさん:2018/08/08(水) 06:18:49.25 ID:bKO8QxvP.net
タイプ量増えて嫌カモ。
new T[] ってできるのは結構強いと思う。
まぁ、自分でやる事はないけど。

603 :デフォルトの名無しさん:2018/08/08(水) 07:00:42.37 ID:/7C7gkY0.net
A, Bそれぞれコンソールアプリケーションで作成
AがBをCreateProcessする状況を作成しました

Aを実行したらBの専用のコマンドプロンプトが立ち上がって次々に処理をするのかな?って思ってたのですが
実際はAが立ち上げたコマンドプロンプトにBも出力などしてます
これ分離することできないのでしょうか

604 :デフォルトの名無しさん:2018/08/08(水) 07:11:53.05 ID:d90b/R1Y.net
タイプ量って、それは現状の構文での話やん
コンストラクタを実行する構文がたとえば3文字のキーワードでできるなら
その主張は崩れる

605 :デフォルトの名無しさん:2018/08/08(水) 07:12:46.84 ID:HlzHxdvD.net
startコマンド

606 :デフォルトの名無しさん:2018/08/08(水) 07:13:58.46 ID:EhLv0UZk.net
CreateProcess で "start cmd /c B.exe" を起動するんじゃだめ?

607 :デフォルトの名無しさん:2018/08/08(水) 07:16:30.26 ID:d90b/R1Y.net
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.25 ID:eb4eIp4R.net
>>603
AllocConsole

609 :デフォルトの名無しさん:2018/08/08(水) 08:30:47.37 ID:lcYbehB0.net
メタプログラミングをやってみたいんだけど、テンプレートが中々難しい
みんなどうやって駆使してる?

610 :デフォルトの名無しさん:2018/08/08(水) 08:31:50.27 ID:jzgqxY6J.net
慣れ

611 :デフォルトの名無しさん:2018/08/08(水) 12:14:27.90 ID:rnBqZLRU.net
LPCTSTRをマルチバイトでもUnicodeでも対応して文字列操作するコードってどう書けば宜しいのでしょうか

612 :デフォルトの名無しさん:2018/08/08(水) 12:22:29.48 ID:oJrY5QK4.net
>>611
関数名オーバーロード。それを応用するtemplate。の2つかな。

613 :さまよえる蟻人間 :2018/08/08(水) 12:22:37.74 ID:NS40+Y1c.net
>>611
まず、#include <tchar.h>。
次にTEXTマクロ、_Tマクロの使い方を学ぶ。
さらに、<tchar.h>を見ながら、文字列関数呼び出しをジェネリックなものに置き換える。

614 :さまよえる蟻人間 :2018/08/08(水) 12:24:54.57 ID:NS40+Y1c.net
必要に応じて#ifdef UNICODEを使う。

615 :デフォルトの名無しさん:2018/08/08(水) 14:22:56.63 ID:oRJqApyO.net
>>577
お前は未だにPhenomなんてガラクタ使ってるんだっけ
お前は無職だからそれでも恵まれすぎだけどな

616 :デフォルトの名無しさん:2018/08/08(水) 14:33:18.94 ID:y2s3oWVB.net
Phenomってガラクタだったんだっけ?
使い始めてそろそろ10年になるが
現在Windows10が動いているけどな

617 :デフォルトの名無しさん:2018/08/08(水) 17:05:37.41 ID:5Rj4GrBF.net
プログラムの板で、相手の使ってるハードウェアをネタに
悪口を言うのはよろしくないんじゃないか、と思ったけど、
アンカーの先を見たらそうでもないって気になった。

どうやら「固定ハンドルの人への攻撃はルール無用」という
より上位のルールがあるようだ(あくまで個人的な基準)。

618 :デフォルトの名無しさん:2018/08/08(水) 17:11:27.46 ID:7VVPJa90.net
>>617
ちょっとコテハンつけてくれないか?

619 :デフォルトの名無しさん:2018/08/08(水) 18:09:52.75 ID:d90b/R1Y.net
5ちゃんから入ったニワカ君だな
コテハン様は名無しより偉いんだよ
失礼のないようにね

620 : :2018/08/08(水) 19:20:38.29 ID:35SEMuEM.net
>>615
よく知っているね、phenomIIx6 1090 で粘っていますよ、zen2 7nm にて大人買いしようと資金を積んでいます…

621 :デフォルトの名無しさん:2018/08/08(水) 19:47:33.67 ID:y2s3oWVB.net
>>620
おれはそのちょっと前のやつ

https://i.imgur.com/VvRofi2.jpg

622 : :2018/08/08(水) 20:17:40.85 ID:35SEMuEM.net
>>617
>固定ハンドル
固定ハンドルじゃありません、トリップです!!

623 :デフォルトの名無しさん:2018/08/08(水) 20:31:08.79 ID:foEj61l6.net
ぬるぽ

624 :デフォルトの名無しさん:2018/08/08(水) 20:33:39.72 ID:y2s3oWVB.net
トリップ生成の種も後悔されているから、誰でもなりすませるかと

625 :デフォルトの名無しさん:2018/08/08(水) 20:35:12.86 ID:foEj61l6.net
好きな文字列をトリップにする枝

626 :デフォルトの名無しさん:2018/08/08(水) 21:20:41.90 ID:IxvHxUWv.net
>>611
Tに対応した文字列操作関数だけを使って操作するか、CT2W/CW2TでWに変換して操作するか実質二択。

627 :はちみつ餃子 :2018/08/08(水) 21:45:50.76 ID:X2pKT1V6.net
>>623
ガッ

628 :デフォルトの名無しさん:2018/08/09(木) 06:46:59.99 ID:YmSdriT+.net
>>622
ヌル文字列を固定ハンドルにして、
それに QZaw... ってトリップをつけてるのかと。

629 : :2018/08/09(木) 06:59:20.10 ID:pqAEhCoO.net
テスト
◆QZaw55cn4c の酉って割れてるよね?

630 :はちみつ餃子 :2018/08/09(木) 17:44:07.59 ID:HZcgpX+K.net
ワシのトリップもな。

631 :デフォルトの名無しさん:2018/08/09(木) 19:14:37.37 ID:oFkunHGA.net
この前のローグ、標準ライブラリにメモリ確保お願いしてるのに中でNULLオブジェクトを操作して落ちるようになって詰んだ。。。
もういやー。

632 :デフォルトの名無しさん:2018/08/09(木) 19:46:32.29 ID:pqAEhCoO.net
>>631
cpplintとかInferとかかければある程度は原因絞り込めると思うけど
Winじゃ導入が面倒か

633 :デフォルトの名無しさん:2018/08/09(木) 20:25:08.47 ID:oFkunHGA.net
>>632
返信ありがとう。ヤル気がゴッソリぬけのたのでしばらく放置します。
特殊なこと全くやってないになんでこうなるんやー。
うぅ。。。

634 :デフォルトの名無しさん:2018/08/09(木) 20:59:37.47 ID:N7zY56wf.net
>>633
メモリ管理の問題ということは、特殊なことをやってたかではなくて、基本的なことが正しくできてないということだよ。
プログラム初心者ならメモリ管理やポインタに煩わされない他の言語の方が良いかと思うよ。

635 :デフォルトの名無しさん:2018/08/09(木) 21:08:18.06 ID:pNZUF6kv.net
まずはgoかjavaでもやったらいいんじゃないかね。

636 :デフォルトの名無しさん:2018/08/09(木) 21:16:17.87 ID:8qUg7w5I.net
(ひっそりアップロードするんや…)

637 :デフォルトの名無しさん:2018/08/09(木) 21:21:51.13 ID:2CPDzClL.net
>>633
バグって自分が絶対に大丈夫なはずと思っている箇所に潜んでいる
しばらく放置してから見つけると、意外に簡単に見つかる

638 :デフォルトの名無しさん:2018/08/09(木) 21:47:57.57 ID:dPMfUDyX.net
gimpel の PC-LINTお勧め

639 :デフォルトの名無しさん:2018/08/09(木) 21:58:35.34 ID:jXGj01kj.net
共有メモリでBSTR型のデータを共有してるのだけど
これのデータサイズ取得する方法ある?
対象領域の先頭ポインタを基準にSysStringLen使ってデータサイズとれるかな?って思ったがとれなくて困ってる

640 :デフォルトの名無しさん:2018/08/09(木) 21:59:33.60 ID:oFkunHGA.net
>>637
正解。慢心してた。
とおった!!俺のせいだった。ごめんなさい。
なんでスマポのインスタンス自動確保されると思い込んでたんやろ。ここだけ。
ごめんなさい。ごめんなさい。ごめんなさい。。。、

641 :デフォルトの名無しさん:2018/08/09(木) 22:30:56.92 ID:BtZU6oOJ.net
慢心と呼ぶべきか、脳内キャッシュを利用した最適化と呼ぶべきか。
しばらく放置することで脳内キャッシュが解放され最新データの利用が可能になる、ありふれた光景。

642 : :2018/08/09(木) 22:34:40.62 ID:rS9AJYq6.net
>>641
私の場合は、しばらく放置しただけではダメで、リリース(公開)することを契機に問題点が不思議と浮き彫りになる、という感覚を持っています

643 :デフォルトの名無しさん:2018/08/09(木) 22:39:20.96 ID:BtZU6oOJ.net
>>642
リリース(公開)する時の質問の文章を書くことで、脳内のメモリ配置が変わり、脳内キャッシュが破棄されたのでしょう。

644 :デフォルトの名無しさん:2018/08/10(金) 01:22:05.57 ID:W2ty1llG.net
>>639
https://www.artonx.org/collabo/backyard/?BasicString
bstrはちょっと特殊

645 :デフォルトの名無しさん:2018/08/10(金) 02:28:33.68 ID:p9jfuJcV.net
https://dotup.org/uploda/dotup.org1607631.zip
ふー。皆さまのおかげで、最初のAIが階段に到達するまでできました。
とはいっても想像するよりよっぽどチープだけどね。
やっとまともにデバッグできるようになったら、色々仕様変更したい病発動してジレンマに陥ってる。
特にトラップクラスいらねーんじゃね?とか思い出して、根幹を揺るがせつつある・・・。
というわけで、皆様どうもありがとう。

ちなみにgithubにも公開してるけど、ライセンスはmitなので煮るなり焼くなりしていいよ。
そんな酔狂な人間がいるか知らんし、多分同じコンセプトで書き直したほうがいいカモだけど。
githubはソース置き場にしてるだけからgitの操作さっぱりわからん・・・。Orz

646 :デフォルトの名無しさん:2018/08/10(金) 03:17:37.39 ID:rT8gQk9M.net
>>644
URLサンクス
もしかしてサイズ取れないと言うことだろうか

647 :デフォルトの名無しさん:2018/08/10(金) 03:47:22.54 ID:B+R4+INY.net
左様そう考えて差し支えない
ID:rT8gQk9M は近隣住民の安全のために、BSTRをもたず、つくらず、もちこませずを堅持すること

648 :デフォルトの名無しさん:2018/08/10(金) 03:49:46.96 ID:p9jfuJcV.net
https://ideone.com/eDOvCH
これで、Next保存する方法ないですか?
ダイナミックキャストだけかな?
継承したら自分の型忘れるのホント面倒。

649 :デフォルトの名無しさん:2018/08/10(金) 03:49:53.40 ID:beAAeNyA.net
>>645


650 :デフォルトの名無しさん:2018/08/10(金) 04:01:00.88 ID:B+R4+INY.net
>>648
保存(シリアライズ)のインターフェースをBaseに持たせてNextでNextの保存処理を実装したらいいんじゃね

651 :デフォルトの名無しさん:2018/08/10(金) 04:06:44.82 ID:p9jfuJcV.net
>>650
ゴメン。ちょっと舌ったらずだった。
各クラスが持ってるTypeに自分の型を保存する方法ないですか?
継承して記憶喪失になっても復元できるようにしたいのです。
システム内でちょくちょく必要になるのは俺がタコだからなんだろけど。
もちろん、ユーザーコードには見せないようにしますよ。

652 :デフォルトの名無しさん:2018/08/10(金) 04:18:39.10 ID:B+R4+INY.net
型を知りたいというならdynamic castが一番可搬性が高いやり方だと思うが
型を知りたいだけ、なんてことがあるのかどうなのか

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

※ 個人の感想です

653 :デフォルトの名無しさん:2018/08/10(金) 04:35:15.48 ID:p9jfuJcV.net
static_cast<DeleteAster<decltype(p)>::OldType*>(p)->OldTypeMethod();
的なことをやりたいのですよ。
システム制作者が完全に意思疎通してて型がどうなってるか周知って前提なんだろうけど、
継承したものをごっちゃにコンテナに入れたら破綻するんだよなぁ。。。
anyもいいなぁと思ったけど、結局キャストする手間は変わらない。むしろキャスト必須。
なくても何とかなるけど、余計なコード書かないといけないからスマートな方法ないもんかなぁ、と。

654 :デフォルトの名無しさん:2018/08/10(金) 04:38:40.37 ID:p9jfuJcV.net
動的に型を保存する型がほしい。

655 :さまよえる蟻人間 :2018/08/10(金) 04:42:20.85 ID:KaDy9gZn.net
スクリプトすればぁ〜?

656 :デフォルトの名無しさん:2018/08/10(金) 04:45:12.86 ID:p9jfuJcV.net
ですよねぇ。。。はう。

657 :さまよえる蟻人間 :2018/08/10(金) 04:50:41.18 ID:KaDy9gZn.net
usingとかtypedefとかtype traitsとかautoとか使へば、何とかできる気もするが、
さういうコードをなかなか書けぬ人はスクリプト言語へ行くへし。

658 :デフォルトの名無しさん:2018/08/10(金) 04:58:16.48 ID:p9jfuJcV.net
rustがレールに乗ればなぁ。
そういえば、anyはtype_infoを返すメソッドがあるのでので動的にチェックができるみたいだねぇ。
ないよりましだけど、確率になっちゃう。ぐぬぬ。

>>657
そうそう、できそうな気はするんだよね。うーん。。。

659 :デフォルトの名無しさん:2018/08/10(金) 05:13:40.93 ID:B+R4+INY.net
>>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.45 ID:d4sNno4d.net
実行したいこととオブジェクトの型が一対一対応であるという保証はない。
C++固有のポリモーフィズム機能を使うと他の言語に移植できなくなる。
実行したいことを列挙型なりビットフラグのメンバ変数として保存しておくのが一番楽だろう。

661 :デフォルトの名無しさん:2018/08/10(金) 05:53:49.02 ID:0eRJE2kB.net
テンプレートでダックタイピング的なことをするとか

662 :デフォルトの名無しさん:2018/08/10(金) 05:59:59.43 ID:d4sNno4d.net
追記。
やりたいことが1種類だけなら型と紐づいていても問題ないが、
やりたいことが複数の組み合わせになったら型と紐づいた設計は破綻する。
何がいいたいかというと、アキラメロンということだ。

663 :デフォルトの名無しさん:2018/08/10(金) 06:38:46.33 ID:p9jfuJcV.net
皆さまありがとうございます。無理ぽいことがよくわかりました。

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

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

>>661
コンセプトがいるような気がする。
さっき上げたコードをテンプレートとanyで書けば同じようなことはできるけど、エラー吐いたら地獄な気がする。
でも、そっちの方が高機能かもしれんなぁ。anyのキャスト問題を除けば。

664 :デフォルトの名無しさん:2018/08/10(金) 06:40:45.22 ID:p9jfuJcV.net
とりあえず、お付き合いいただきありがとうございました。
今日は寝ます。また。

665 :デフォルトの名無しさん:2018/08/10(金) 07:05:11.27 ID:f/eWc4F9.net
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.43 ID:iZqKv3XP.net
コピーだけなら簡単

667 :デフォルトの名無しさん:2018/08/10(金) 07:10:21.06 ID:f/eWc4F9.net
>>666
コピー以外も色々と

668 :デフォルトの名無しさん:2018/08/10(金) 07:19:12.22 ID:iZqKv3XP.net
色々と
じゃ答えようが無い

669 :デフォルトの名無しさん:2018/08/10(金) 07:19:41.44 ID:iZqKv3XP.net
色々と
頑張ってね

670 :デフォルトの名無しさん:2018/08/10(金) 07:31:58.40 ID:d4sNno4d.net
>>665
以下のようなwchar_t, char に応じたオーバーロード関数もある。私は使わないけど。

std::char_traits::length(const T* s)

671 :デフォルトの名無しさん:2018/08/10(金) 07:31:58.98 ID:PNfVMsqd.net
色々と間違ってる

672 :デフォルトの名無しさん:2018/08/10(金) 07:33:16.73 ID:X/p1NsAX.net
コンパイル時に決まってるならテンプレートにすればいい

673 :デフォルトの名無しさん:2018/08/10(金) 07:40:29.94 ID:f/eWc4F9.net
>>668
文字列長を求める
データコピー
Stringstream

674 :デフォルトの名無しさん:2018/08/10(金) 07:44:16.79 ID:f/eWc4F9.net
>>670
これだとLengthに特化したやつだけになるのかな?
他にもあるので切り替え方法が知りたく

>>672
コンパイル時には決まってます
テンプレートを作成するってのはT型を作るってことかな?

675 :デフォルトの名無しさん:2018/08/10(金) 07:46:33.59 ID:uYApHCeM.net
クラスのインスタンスのコピーさせない方法ってコンストラクタにdeleteをつけるだけで実現可能?
それとも違うんかね?
参考を探していてもデフォルトコンストラクターにつけているだけで
複数のコンストラクターがある場合とかがわからない

676 :デフォルトの名無しさん:2018/08/10(金) 07:59:27.52 ID:iZqKv3XP.net
コピーコンストラクタとoperator = をprivateにして
関数の実体も作らない

677 :デフォルトの名無しさん:2018/08/10(金) 08:15:19.60 ID:cglfv0MQ.net
今は=deleteも出来るぜ。

678 :デフォルトの名無しさん:2018/08/10(金) 08:48:18.73 ID:uYApHCeM.net
privateにすることでできそう
ありがとう

679 :デフォルトの名無しさん:2018/08/10(金) 08:49:25.57 ID:a+3O8uOm.net
C++極める方法教えてよ

680 :デフォルトの名無しさん:2018/08/10(金) 08:53:13.90 ID:FVsJ4La+.net
STLの仕様を見ます
自分で実装します
ソースコードをみて答え合わせをします

まずはvectorから、ハイ、どうぞ

681 :デフォルトの名無しさん:2018/08/10(金) 09:02:52.19 ID:I9yy5anA.net
高位合成toolを入手します。
あなたの思った通りの動きをするCPUを作れば完成

682 :デフォルトの名無しさん:2018/08/10(金) 09:44:57.66 ID:UZimlLTI.net
CreateProcess失敗したときのhProcessに何が入るか記載しておいてよmsdn
NULLなの!?それとも別なの!?
msdn使いこなせるやつすげぇよ本当に

683 :デフォルトの名無しさん:2018/08/10(金) 09:51:57.65 ID:I9yy5anA.net
そんな引数無い事について以下100レス程

684 :デフォルトの名無しさん:2018/08/10(金) 10:25:12.98 ID:NKvoiPPS.net
>>670
char_traitsの関数はオーバーロードじゃねえだろ
引数ではなくスコープで区別するんだから

685 :デフォルトの名無しさん:2018/08/10(金) 12:02:09.34 ID:d4sNno4d.net
>>684
スコープ?

686 :デフォルトの名無しさん:2018/08/10(金) 12:20:52.35 ID:LvXbuhRM.net
>>683
CreateProcess()使ったことあれば lpProcessInformation.hProcess ってわかると思うが…

>>682
何も書いてない → 何が入っているかわからない
ってことだろ

687 :デフォルトの名無しさん:2018/08/10(金) 12:21:22.72 ID:nFJe7QfE.net
>>675
https://cpprefjp.github.io/lang/cpp11/defaulted_and_deleted_functions.html

688 :デフォルトの名無しさん:2018/08/10(金) 13:06:07.39 ID:I9yy5anA.net
>>686
HANDLEならINVALID_HANDLE_VALUEがデフォでしょ

689 :デフォルトの名無しさん:2018/08/10(金) 14:25:58.73 ID:NKvoiPPS.net
>>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.93 ID:LvXbuhRM.net
>>688
だからそんなことを期待しちゃダメってこと

691 :デフォルトの名無しさん:2018/08/10(金) 15:10:51.55 ID:ayqbPQA0.net
>>689
wchar_tを使うとわかっていてテンプレート引数にcharを入れるのはおかしくない?

692 :デフォルトの名無しさん:2018/08/10(金) 18:49:42.52 ID:hMB1uQwa.net
>>682
関数が失敗したら新しいプロセス自体作れられないんだから
hProcessが不定でも何も困らないと思うが

693 :デフォルトの名無しさん:2018/08/10(金) 18:53:21.62 ID:NKvoiPPS.net
>>691
std::char_traits::length(x); //error

694 :デフォルトの名無しさん:2018/08/10(金) 19:18:52.44 ID:7XXHmUWL.net
おまいらコミュ障かよ

695 :デフォルトの名無しさん:2018/08/10(金) 19:19:41.62 ID:JXFPQdyt.net
std::char_traits<wchar_t>::length(x);//0

696 : :2018/08/10(金) 19:23:47.91 ID:H9lF8aPc.net
>>680
>まずはvectorから、ハイ、どうぞ
これ、いちどやってみたいですね…
https://mevius.5ch.net/test/read.cgi/tech/1434079972/33

697 :デフォルトの名無しさん:2018/08/10(金) 21:04:31.61 ID:U4E1U51M.net
このメンツで開発とか地獄だろうな。。

698 :デフォルトの名無しさん:2018/08/11(土) 08:11:36.74 ID:dFDFw6X4.net
ガイジしかおらんやんけ…

699 :デフォルトの名無しさん:2018/08/11(土) 11:00:44.96 ID:X6Hz/xY3.net
char_traitsの件、どうも話通じてないなあ

700 :デフォルトの名無しさん:2018/08/11(土) 11:25:54.74 ID:4zfRZVUI.net
多重定義, オーバーロード - 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.68 ID:X6Hz/xY3.net
>>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 :はちみつ餃子 :2018/08/11(土) 13:37:39.73 ID:zO3XAoAm.net
たしかに >>670 のいう「オーバーロード」は用語の使い方が誤っているが、
それはそうとしてオーバーロードっていう言葉の中にバーローという言葉が入ってるから、
オーバーロードの話題が出るたびに俺の中のコナン君がバーローとささやくので、
お前らにも同じ呪いをかけてやろう。

703 :デフォルトの名無しさん:2018/08/11(土) 13:41:08.56 ID:xFvEQmr2.net
真実はいつも多重定義されない!

704 :デフォルトの名無しさん:2018/08/11(土) 13:43:33.49 ID:xFvEQmr2.net
std::char_traits<char>::length()と
std::char_traits<wchar_t>::length()は
互いに同じ名前(a single name)なんやろうか…

705 :デフォルトの名無しさん:2018/08/11(土) 15:53:50.27 ID:xFvEQmr2.net
>>663
>どうしてこう融通が利かないのか。設計のせいか・・・Orz
ユーザーコードにクラスの中で定義された型(Base::TypeやNext::Type)を見せるのはやめて、
NextやBaseのオブジェクトのふるまいとしてだけ見せたら宜しいかと

ふるまいだけを見せる抽象化はまず純論理的にはポリモーフィズムで逝ける
次の段階として、呼び出しの度にvtblの間接参照が一発入る遅さを嫌い、高速化したいという要求が生じるかもしれないが
そのときは知らん(テンプレートによるダックタイピングでさらに戦うこともできるが同一翻訳短以内でのcloseが前提でありかつクラスの継承の恩恵にはなかなかあずかれない

706 :デフォルトの名無しさん:2018/08/11(土) 15:58:27.82 ID:xFvEQmr2.net
なおふるまいだけを見せる抽象化ができないオブジェクト指向言語とか無いから他言語への移植性とかを気にするのは狂気の杞憂
ていうか非オブジェクト指向言語であっても関数ポインタと構造体が使えれば似たようなことはいつでもできる

707 :デフォルトの名無しさん:2018/08/11(土) 18:59:43.05 ID:X6Hz/xY3.net
非オブジェクト指向言語とオブジェクト指向言語で
最終的に作れるものと作れないものは
その違いによる差は全くないんだが

708 :デフォルトの名無しさん:2018/08/11(土) 22:22:49.51 ID:xFvEQmr2.net
ちな>>707は、>>660へのレス。

709 :デフォルトの名無しさん:2018/08/11(土) 22:42:05.15 ID:4zfRZVUI.net
技術系の板でID使い分けする惨めさよ

710 :707:2018/08/12(日) 07:44:03.92 ID:2Xoj+DoI.net
俺の偽物がいるな

711 :デフォルトの名無しさん:2018/08/12(日) 20:13:35.92 ID:KnTIebYQ.net
レイトレーシングをやってみたいんですけど、何もない状態から画像を生成するのと、画像処理(opencv)でやろうと思ってます。
前者と後者とも資料は見つけたのですが、どうやって勉強するのがおすすめですか?
opencvで例えばアイドルの画像をCGっぽく、またはアニメっぽくはできたりするのでしょうか?

712 :デフォルトの名無しさん:2018/08/12(日) 22:21:45.58 ID:MDfKI+a6.net
>>711
多分君には無理だからそういったアプリを探しなさい
煽りでも何でもなく実力不足

713 :デフォルトの名無しさん:2018/08/12(日) 23:17:59.82 ID:RJjtK8Ko.net
>>711
レイトレーシングの本質は三次元空間での光の挙動のシミュレーションであって
既存の画像を加工するような技術じゃないぞ

714 :デフォルトの名無しさん:2018/08/13(月) 00:27:19.20 ID:p4qIMBze.net
Late racing.

715 :デフォルトの名無しさん:2018/08/13(月) 00:28:37.24 ID:p4qIMBze.net
視線の追跡したほうが効率よさそうな気がする。
目に入らない光は無いも同然だし。

716 :デフォルトの名無しさん:2018/08/13(月) 00:31:27.67 ID:sn7iPKpv.net
一番シンプルなレイトレの実装は視線追跡だからな

717 :デフォルトの名無しさん:2018/08/13(月) 00:33:31.73 ID:sn7iPKpv.net
>>716
寝ぼけて謎な用語の用法をしてしまった忘れてくれ
視線側からのレイの追跡だ

718 :デフォルトの名無しさん:2018/08/13(月) 00:36:44.24 ID:XxWurSAu.net
トイレの覗きかと一瞬勘違いしましたw

719 :デフォルトの名無しさん:2018/08/13(月) 00:43:21.17 ID:MxL7CAkg.net
ちゃんとミラーボールの映像から抽出しないと

720 :デフォルトの名無しさん:2018/08/13(月) 01:42:46.41 ID:+YkMTMKz.net
遠い昔だが、いい基礎解説本があったんだがタイトルが思い出せない
98用のCのソースコードも附録でついてた
98なんかもってなかったから、Xlibで動かした記憶がある

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

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

で、レイトレーシングはサーフェイスモデルより超簡単だからな
このスレのアホが難しいといってるだけで
むしろレイトレーシングはバカでもチョンでも分かる

721 :デフォルトの名無しさん:2018/08/13(月) 01:48:30.63 ID:GxmByJ3O.net
せっかく良い質問なのに、
あまり汚い言葉で、アホとかバカとかチョンとか言わなない方がいいよ…

722 :デフォルトの名無しさん:2018/08/13(月) 02:07:33.90 ID:Zz4bK/+7.net
レイトレならこれもおすすめ
https://qiita.com/mebiusbox2/items/89e2db3b24e4c39502fe

723 :デフォルトの名無しさん:2018/08/13(月) 02:52:34.70 ID:J+SKK2b0.net
Oh!Xにソース付きで事細かく書いてあってだな

724 :デフォルトの名無しさん:2018/08/13(月) 03:13:41.34 ID:bfksj/4u.net
多分これだと思う
https://www.amazon.co.jp/dp/4871481999
3冊とも名著。1と2はBASICだけど

725 :デフォルトの名無しさん:2018/08/13(月) 03:39:58.88 ID:p4qIMBze.net
レイトレーシングに限らないけど、アルゴリズムの勉強にはLinuxが良いですよ。

726 :デフォルトの名無しさん:2018/08/13(月) 04:00:12.36 ID:3+Hm6Wut.net
紹介されてる本全部古い...

linuxだと何がいいの?

727 :デフォルトの名無しさん:2018/08/13(月) 04:14:38.66 ID:p4qIMBze.net
Kernelソースが勉強になります。

728 :デフォルトの名無しさん:2018/08/13(月) 04:15:34.47 ID:J+SKK2b0.net
openclとグラボの勉強したら?
レイトレーシングの大量の計算するのがグラボでしょ

729 :デフォルトの名無しさん:2018/08/13(月) 06:59:52.73 ID:k7xD/gvg.net
>>724
アスキーの『応用グラフィックス』か。入門・実習・応用の3冊シリーズだね。
各巻のつながりは緩いから順番に読まなくてもほぼ大丈夫だけど。

確かに良い本だった気がするけど、なにぶん読んだのが昔なんで
いくらも理解できなかったわ。今ならもう少しマシだと思いたい。
大学近くの古本屋でなら見つかるかも。

730 :デフォルトの名無しさん:2018/08/13(月) 07:05:01.34 ID:JKsq+WjD.net
 
畏(おそ)れ多くも森喜朗元帥閣下の有り難いお言葉:
 「オレはIT(いっと)のことはよく知らんがぁ
   時計をたった2時間早めるだけだろぉ?
  オレなら1分あれば済ませるぞぉ!
   サマータイムの何がそんなに難しいんだぁ?」
 
システム開発現場の勇ましい言葉:
 「畏れ多くも森元帥閣下のご下命を賜った以上
   現場SEは有り難いお言葉に勇気百倍
  デスマーチとバンザイ突撃を敢行いたします!」
  
 「マラソン選手さまが涼しい時間に走るためなら
   現場SEの千人や二千人死んでも本望です!
  私たちSEの生命など、虫けらと同じです!」
 
 「畏れ多くも森元帥閣下の有り難いご下命にしたがって
   最前線システム開発現場で殉職出来るとしたら
  現場SEとしてこれに勝る喜びはありません!」
 
日本という国では
 体育会系が一番偉い(森元帥閣下、田中理事長)
  文科系がその次で(財務省、教授会)
 理科系は最底辺の奴隷とされています(現場SE)
 

731 :デフォルトの名無しさん:2018/08/13(月) 07:26:44.37 ID:WtSMvp2C.net
レイトレーシングがサーフェイスモデルより簡単とか
半透明物体内部の散乱表現に踏み込んだらそんな寝言は言えないんじゃ…

732 :デフォルトの名無しさん:2018/08/13(月) 10:07:11.78 ID:uSgRX9ke.net
みんな例外と戻り値ってどう使い分けてる?
例えば以下みたいな、ファイルからとある要素を抜き出して返す関数とかで

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

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

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

みんな例外クラスとかはstd::exception継承して自作してるのかな?
バックトレースやコード行数とれないのが使いにくくて、javaっぽい例外クラスを自作してる

733 :デフォルトの名無しさん:2018/08/13(月) 10:16:27.95 ID:Z0vFISs/.net
例外は発生時の動作が遅い

734 :デフォルトの名無しさん:2018/08/13(月) 10:17:50.65 ID:gsTSbRo/.net
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.97 ID:uSgRX9ke.net
>>733
発生時は確かに遅いね
ただ、あくまでも例外的なものだけに利用をとどめておけば、そんなに発生するものでもないし、その場合は戻り値をifで見るより命令数が少なくなるから、結果的に高速になるって俺は考えてる

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

ただ、調べて見た感じsystem_errorも使いやすそうね。最近開発で使えるようになったC++11だからこんなのあるの気づいてなかったわ
std::optionalとかあったんだね、ちょっと調べてみるわありがとう

736 :デフォルトの名無しさん:2018/08/13(月) 11:20:33.79 ID:NtbFT1j9.net
>>720
レイトレーシングが簡単なのは入り口だけ
20世紀あたりのなんちゃってレイトレーシングは楽だけど本格的にやると解決できない問題が多数出てくる

737 :デフォルトの名無しさん:2018/08/13(月) 11:32:34.68 ID:D1VtDJH7.net
ファイル開くのはそれ自体がすっごい遅い操作だから例外のコストなんか無視できるのと
開き損なうとそれ以降の処理が致命的な失敗になりやすい
そういう操作のエラー通知が例外に向いてる

738 :デフォルトの名無しさん:2018/08/13(月) 11:47:23.91 ID:2dORgvS5.net
>>733
例外発生時の速度が問題になるなら例外の使い方を見直した方がいい

739 :デフォルトの名無しさん:2018/08/13(月) 12:31:28.26 ID:Z0vFISs/.net
>>832に対して
例外は遅いから例外の時に使いましょう
ということを書いたつもりなんだけど

単なる終端マークとか区切りとか
そういう頻出する可能性のある用途では使っちゃダメってこと

740 :デフォルトの名無しさん:2018/08/13(月) 12:35:13.84 ID:Z0vFISs/.net
例外は仕組みを入れるだけで、
例外が発生しなくてもオーバーヘッドが発生する環境がほとんどなので
組み込みだとわざと無効にすることも多い

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

そういうことがわかっていれば
どこに使うべきかがおのずとわかる

741 :デフォルトの名無しさん:2018/08/13(月) 12:41:46.34 ID:WtSMvp2C.net
低水準ライブラリに属するべき関数が例外みたいな高級なしくみに依存するのは美しくないキモス
システム設計とかアプリの基本設計レベルで例外の種類とcatch箇所とcatch時の処理を定義して使うなら良い
が、呼び出し側でif文を書きたくないからという理由でイミフな例外定義を行うと、結局第三者に正しく使ってもらえない
キモス

742 :デフォルトの名無しさん:2018/08/13(月) 12:48:07.11 ID:WtSMvp2C.net
例外のオーバーヘッドについてはこれな↓↓↓
ttp://zakkas783-blog-blog.tumblr.com/post/3870295160/c-の例外ハンドリングとパフォーマンス

>>740の通り例外処理の裏側の実装には2つの潮流があるんじゃ

743 :デフォルトの名無しさん:2018/08/13(月) 13:03:58.12 ID:u8inRKlo.net
制御をすっ飛ばす必然性があるほどの例外的状況に限るのが吉だろうな。
返値で返せないものを返すのに使うなら検査例外のような保証が欲しいところ。

744 :デフォルトの名無しさん:2018/08/13(月) 13:22:39.94 ID:BGH31mSy.net
別スレッドでの関数呼び出し階層が深すぎて安全にスレッド終了させる方法が分からない時に便利でしょ、例外。

745 :デフォルトの名無しさん:2018/08/13(月) 13:37:06.53 ID:hqkLiaZ4.net
このパーセンテージどうやって表示してるのですか?
http://aokomoriuta.hateblo.jp/entry/2016/05/05/145810

746 :デフォルトの名無しさん:2018/08/13(月) 13:37:33.57 ID:hqkLiaZ4.net
すいませんこれです
https://i.imgur.com/p53FZao.jpg

747 :デフォルトの名無しさん:2018/08/13(月) 14:16:12.02 ID:uSgRX9ke.net
前測ったときはアセンブリ言語にしてみると、戻り値ifチェックだと2命令だったのが例外使うと20命令くらいだったなぁ

748 :デフォルトの名無しさん:2018/08/13(月) 14:27:34.65 ID:uSgRX9ke.net
>>741
自前の文字列操作のUtilとかだと例外にするかすごいその観点で迷うんだよね

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

>>744
すごく同感

749 :デフォルトの名無しさん:2018/08/13(月) 14:39:38.06 ID:gsTSbRo/.net
>>739
困ったことにbasic_iosはexceptionsで頼みもしてないのにEOFで例外を投げる

750 :デフォルトの名無しさん:2018/08/13(月) 14:48:44.15 ID:p4qIMBze.net
HTTPで400番台500番台は例外投げればいいのかな。

751 :デフォルトの名無しさん:2018/08/13(月) 14:51:05.76 ID:p4qIMBze.net
例外を投げるクラスはピッチャーって名前でいいんか?
受け取るクラスはキャッチャー?

752 :デフォルトの名無しさん:2018/08/13(月) 15:18:30.60 ID:m/ibS17x.net
甘めの例外を打ちかえすのはバッター

753 :デフォルトの名無しさん:2018/08/13(月) 15:38:43.20 ID:Twrhv79p.net
C++17では多値が返せるようになりました。
できるならレガシーを切って次へ行きたいものです。
またはstd::optionalなんてものもありますな。

std::tuple<bool,Item> Fun(){return {true,Item()};}
auto [F,I] = Fun();

754 :デフォルトの名無しさん:2018/08/13(月) 15:41:48.16 ID:Twrhv79p.net
あ、多値自体は返せたけど受け取って初期化できるようになったか。
ちなみにすでに実体化している変数は、std::tie(...);で受け取れます。

755 :デフォルトの名無しさん:2018/08/13(月) 16:14:15.10 ID:gsTSbRo/.net
>>754
prvalueでもforward_as_tupleならおk

756 :デフォルトの名無しさん:2018/08/13(月) 16:15:13.67 ID:gsTSbRo/.net
auto func()
{
return forward_as_tuple(123, "456");
}

757 :デフォルトの名無しさん:2018/08/13(月) 19:17:45.97 ID:Twrhv79p.net
お、なるほど。良いこと聴いた!

758 :デフォルトの名無しさん:2018/08/13(月) 20:21:18.19 ID:m/ibS17x.net
ただ元からタプルがある言語と比べたら劇的に汚い仕上がりだよね

759 :デフォルトの名無しさん:2018/08/13(月) 21:43:01.79 ID:3hlPfGdJ.net
http://itest.5ch.net/test/read.cgi/tech/1528382412


前スレのURL違うくね
これがただしいっしょ

760 :デフォルトの名無しさん:2018/08/14(火) 02:06:11.13 ID:41LFYoyc.net
>>758
何と比べてる?

761 :デフォルトの名無しさん:2018/08/14(火) 02:50:24.34 ID:oCVPQ4uM.net
そんなに汚いかねえタプル

762 :デフォルトの名無しさん:2018/08/14(火) 03:32:08.59 ID:+lmSJTba.net
演算子オーバーロードっぽいものを珍重するのはやめた方がいいと思うけどね。

763 :デフォルトの名無しさん:2018/08/14(火) 08:20:26.94 ID:8F/Sy9ZI.net
autoでしか受けられないのがイマイチかなあ
メインの戻り値は期待する型を明示したいことがある
エラーの方が何のenumかは知ったこっちゃないからautoにしたかったりするからややこしい

764 :デフォルトの名無しさん:2018/08/14(火) 09:31:57.53 ID:oMbBbcEB.net
無名の共用体と似たようなもので
構造体のメンバをバラで貰えるってだけやん

765 :デフォルトの名無しさん:2018/08/14(火) 09:44:39.80 ID:fJuFDfsp.net
型推論のautoを見て嘔吐

766 :デフォルトの名無しさん:2018/08/14(火) 12:12:14.83 ID:9UC8tUq9.net
C++のメタプログラミングって実際にはどうすればあんな複雑に書けるの?
自分は出来ても階乗を求めると型の判別くらいしか出来ない

767 :デフォルトの名無しさん:2018/08/14(火) 12:16:05.35 ID:aWfB90DT.net
まずは脳内バッファを増やす訓練からだな

768 :デフォルトの名無しさん:2018/08/14(火) 12:26:17.71 ID:8F/Sy9ZI.net
関数型言語を勉強するといいよ

769 :デフォルトの名無しさん:2018/08/14(火) 12:41:59.55 ID:9UC8tUq9.net
>>767
脳内バッファがなぜ必要?
>>768
そうしてみる‥
Lisp読んで見る

770 :デフォルトの名無しさん:2018/08/14(火) 13:29:44.46 ID:z3VJK4Uc.net
>>766
メタプログラムは今ほとんどconstexprに置き換えれない?

771 :デフォルトの名無しさん:2018/08/14(火) 14:16:24.99 ID:9UC8tUq9.net
>>770
確かに置き換えられるんだけど、それじゃあ普通のプログラミングと変わらなくて面白みが無いと思って‥

772 :デフォルトの名無しさん:2018/08/14(火) 14:39:49.94 ID:vEMT9LA3.net
>>770
型でメタプログラミングするとき困らんか?

773 :デフォルトの名無しさん:2018/08/14(火) 14:41:24.25 ID:UlU0qat0.net
>>772
もちろんtemplateも使う

774 :デフォルトの名無しさん:2018/08/14(火) 16:24:16.29 ID:oKGdiTQg.net
>>760
特に何とは言わないけど

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

みたいに現行のc++ではできないタプル表現のほうがすっきりして見える (個人の感想です)

775 :デフォルトの名無しさん:2018/08/14(火) 16:31:09.91 ID:fJuFDfsp.net
123には副作用が無いから最適化でreturn "456";になるんじゃ…

776 :はちみつ餃子 :2018/08/14(火) 16:32:25.07 ID:EPC9iky2.net
>>775
「できない」って話だから……

777 :デフォルトの名無しさん:2018/08/14(火) 17:01:49.73 ID:zHCh+0V6.net
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.55 ID:oMbBbcEB.net
list->at[i]はまずいだろ
typoか? それとも本当にそう書いているのか?

779 :デフォルトの名無しさん:2018/08/14(火) 17:27:33.05 ID:8F/Sy9ZI.net
typoじゃないとしたら、上は通ってるんだから
hogeMethodの引数がobjectかobject&なんだろうな

780 :デフォルトの名無しさん:2018/08/14(火) 17:31:42.31 ID:zHCh+0V6.net
えーっとtypoじゃないです。
何がまずいんでしょうか。ポインタだしアロー演算子で問題ないのでは。
それとhogeMethodの引数はobject*ですね。抜けてましたすいません。

781 :デフォルトの名無しさん:2018/08/14(火) 17:49:25.24 ID:K29Njy0m.net
listの前の*が邪魔?

782 : :2018/08/14(火) 18:00:20.07 ID:5K5qKv3G.net
>>777
vector<string *>::iterator list;
なら理解できるのですが、
vector<string *> *list;
というのが、よくわからないのです
プログラム例では list にすでに値が入っているようですが、実際には
list をどのように初期化しているのでしょうか?

783 :782 :2018/08/14(火) 18:19:15.36 ID:5K5qKv3G.net
>>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.03 ID:oMbBbcEB.net
>>780
何がまずいって
listはvector<object*>へのポインタ
list->atはvector<object*>::atでメンバ関数
ここまではいいが
at[i]は関数に添え字だろ

こうやってんのと同じだぜ
void func();
func[1];

785 :デフォルトの名無しさん:2018/08/14(火) 18:32:33.03 ID:9UC8tUq9.net
なんでメンバ関数を配列にしたいのかかが気になる

786 :デフォルトの名無しさん:2018/08/14(火) 18:35:36.38 ID:zHCh+0V6.net
あ、すいません、確かにat(i)はtypoでしたね。
ごっちゃになってましたすいません

787 :デフォルトの名無しさん:2018/08/14(火) 19:46:01.17 ID:TB9AjC50.net
>>786
> 確かにat(i)はtypoでしたね。
なら普通に両方コンパイルはできるはず
エラーになる最小限のコードにしてどこかにアップして

788 :デフォルトの名無しさん:2018/08/14(火) 20:00:34.01 ID:aWfB90DT.net
そんでだいたい最小化してるうちに気づくんだよなw

789 :デフォルトの名無しさん:2018/08/14(火) 20:01:24.90 ID:UKq+CNIv.net
関数テンプレートの部分特殊化ってC++17でもできないの?

790 :デフォルトの名無しさん:2018/08/14(火) 20:08:30.24 ID:HhG+br3u.net
>>788
まあ本人気づくのが一番いいから

791 :782 :2018/08/14(火) 20:18:07.26 ID:5K5qKv3G.net
>>790
寛大ですね…

792 :デフォルトの名無しさん:2018/08/15(水) 13:34:49.18 ID:bAZUebux.net
>>789
できない

# いらんだろ、多重定義で同じ目的を達成できるから

793 :デフォルトの名無しさん:2018/08/15(水) 15:58:12.56 ID:/VaqEwQY.net
関数の多重定義もクラステンプレートの部分特殊化でstaticメソッドを特殊化したら代替できるからイラン

794 :デフォルトの名無しさん:2018/08/15(水) 17:45:56.30 ID:bAZUebux.net
>>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.14 ID:GkoLimxd.net
普通は関数オブジェクトにするんじゃね?auto operator()(...);

796 :デフォルトの名無しさん:2018/08/15(水) 18:46:53.07 ID:GkoLimxd.net
あ、余計なこと言った。
https://dotup.org/uploda/dotup.org1613077.zip

797 :デフォルトの名無しさん:2018/08/15(水) 18:48:12.11 ID:GkoLimxd.net
うご、投稿してモータ。
例のローグのシステムが大分できたのでなんとなく投下してみた。
汎用AIってどうやって書けばいいんや?
しかも、まだバトルシステム作ってないし。

798 :デフォルトの名無しさん:2018/08/15(水) 19:02:43.98 ID:GkoLimxd.net
ところで質問なんだけど、パスファインディングってサービスとして入れたほうがいいのかなぁ。。。

799 :デフォルトの名無しさん:2018/08/15(水) 22:40:01.74 ID:QxvGNpoJ.net
>>766です
C++テンプレートメタプログラミングという本を買ってみたのですが、この本C++BoostのMPLの解説本です
C++17がある今、この本の価値ってあるんでしょうか?
一応全部読んでみようと思ってるのですが

800 :デフォルトの名無しさん:2018/08/16(木) 07:25:03.80 ID:t6OwQxX1.net
>>799
> 一応全部読んでみようと思ってるのですが
読んでみてから判断すれば?

801 :デフォルトの名無しさん:2018/08/16(木) 08:19:40.35 ID:NceGg90N.net
多分聞きたいのはこれ読んだらオラついていいですか?ってことだと思う。

802 :デフォルトの名無しさん:2018/08/16(木) 08:50:47.25 ID:MDl/UAh8.net
>>800
>>801
すみません
Boostを使わず、mplを使わないのでメタプログラミングするのが目的なので、それがこの本を読んで可能なのか?という質問の趣旨です

803 :デフォルトの名無しさん:2018/08/16(木) 09:51:57.97 ID:t6OwQxX1.net
>>802
> Boostを使わず、mplを使わないのでメタプログラミングするのが目的
そんな明確な目標あるのになんでこんな本買うかなぁ
ちょっとググればこんな意見が見つかるだろうに…

ちょっと文章が直訳っぽくてところどころ不自然だけど,丁寧にBoost.MPLの実装(と使い方)について解説してあってとても分かり易い!
http://d.hatena.ne.jp/eldesh/touch/20100412/1271090614

804 :はちみつ餃子 :2018/08/16(木) 10:25:53.58 ID:f3MTrlhW.net
>>802
メタプログラミングを活用すればこういうことも出来得るという事例集として見れば無駄ではないと思うが、
それを読んでメタプログラミングが出来るようになるかというと否だと思う。

805 :デフォルトの名無しさん:2018/08/16(木) 12:02:41.09 ID:MDl/UAh8.net
>>803
この本を買ったのは高橋晶のC++11対応のテンプレートテクニックって本を読んで、巻末に本の紹介があって、メタプログラミングについて知りたいならこの本を読むべきって書かれてあって、読むことにした
そのブログはすでに読んである
>>804
メタプログラミング自体はどうすれば出来るだろうか?

806 :デフォルトの名無しさん:2018/08/16(木) 12:37:43.15 ID:jOS7jxfN.net
魔除けとして重宝している

807 :デフォルトの名無しさん:2018/08/16(木) 12:41:22.12 ID:lxkNuozk.net
> そのブログはすでに読んである
私はバカです
って言われても…

808 :デフォルトの名無しさん:2018/08/16(木) 13:19:15.31 ID:MDl/UAh8.net
>>806
売ることにします‥
>>807
もう日本人に頼るのは辞めました
そもそもWG21から情報を検索したほうが有意義かも
これからは日本語のプログラミング書籍は買わない方がいいって教訓になりました

809 :デフォルトの名無しさん:2018/08/16(木) 13:24:07.84 ID:AI90/kCO.net
捨てゼリフ来たね
そろそろご退場かな
総員塩の用意

810 :デフォルトの名無しさん:2018/08/16(木) 13:27:57.29 ID:MDl/UAh8.net
>>809
いやだって日本人でC++やってる人少ないじゃないですか(´・ω・`)

811 :はちみつ餃子 :2018/08/16(木) 13:47:10.99 ID:f3MTrlhW.net
>>810
んなこたーない。

812 :デフォルトの名無しさん:2018/08/16(木) 14:10:22.64 ID:yO9+GMaw.net
「少ない」に比較がついてないから何とも言えない

813 :デフォルトの名無しさん:2018/08/16(木) 14:34:47.46 ID:jOS7jxfN.net
やっぱPerl人口が一番多いと思うのねん
その次がPHP

814 :デフォルトの名無しさん:2018/08/16(木) 16:39:09.24 ID:TxXnQ6gb.net
英語をスラスラ読めるなら「遅い・高い・分かりにくい」の
和訳版を買うことはないわな。
原書ならPDF版がタダでネット公開されてたりするし。

815 :デフォルトの名無しさん:2018/08/16(木) 20:44:21.68 ID:JF8AnYsh.net
>>799
前半とこどこBoost.MPLの設計理念とかどう実装されてるかとか書いてあるから、そこは参考になると思う
後半のTMP関連のテクニックはおそらく求めているものではないかと
ExpresionTemplateの実装にあまり踏み込まないけど、どのように誤用されているかは少し参考になった

816 :デフォルトの名無しさん:2018/08/17(金) 11:29:50.85 ID:lqMuboYf.net
https://wandbox.org/permlink/TC3VtzZ4Dd53Z1Y4
こういうコード書きました。
UIはとりあえず置いといて、Jsonの構造ってこんな感じでいいのでしょうか。
ご意見あったら教えてください。

817 :デフォルトの名無しさん:2018/08/17(金) 11:54:52.92 ID:BEBC5Dle.net
あの初歩的な質問で申し訳ないんですけど、クラスのメンバ関数のことです
例えば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.82 ID:BEBC5Dle.net
あ、すいませんhogehogeではxyzを呼び出す以外にも処理を行うものとします
そうでないとxyzをメンバ関数にしてhogehogeなくせってことになるので

819 :デフォルトの名無しさん:2018/08/17(金) 12:17:52.69 ID:TtX4VAeH.net
> x()y()z()はhogehoge以外から呼び出されることはありません。

だったらラムダ式じゃね?
auto x = [this]{};
auto y = [this]{};
auto z = [this]{};

820 :デフォルトの名無しさん:2018/08/17(金) 12:27:19.70 ID:6wrElEJt.net
>>817
どっちでも良い
というか時と場合によってどっちにすべきかが違う

821 :デフォルトの名無しさん:2018/08/17(金) 12:29:57.76 ID:JC8oBFgD.net
メイヤーズは独立できるならメンバにせずに関数にしろって言ってた

822 :デフォルトの名無しさん:2018/08/17(金) 12:31:59.93 ID:PQea+QN+.net
言語処理ってphythonとC++どっちが向いてる?

823 :デフォルトの名無しさん:2018/08/17(金) 12:37:52.08 ID:lqMuboYf.net
処理内容によると思う。
一応、自分は、protectedのメンバ関数にするかなぁ。

824 :デフォルトの名無しさん:2018/08/17(金) 12:49:54.76 ID:UZUA85Xq.net
>>822
漠然過ぎてどうとも
ゼロから書く気はないんだろうから試行錯誤するのも含めてPythonのほうを勧めるよ

825 :デフォルトの名無しさん:2018/08/17(金) 13:08:34.93 ID:KaaDwp63.net
>>817
関数にできるってことはメンバ変数の参照とか他のメソッド呼び出しがないんだよね
なら関数にした方が微妙に速度が稼げる(thisを渡さずに済むから)
各々一回しか呼ばないなら呼び出し箇所に展開しても良いような気がする

826 :デフォルトの名無しさん:2018/08/17(金) 13:39:31.71 ID:BEBC5Dle.net
参考になりました。皆様ありがとうございました。
effective C++のメイヤーズ先生に従い、通常の関数にすることにします。

……あれ、そうするとその関数群だけで使う共通の変数ってメンバ変数にすべきなのかcpp冒頭で宣言してグローバル変数にすべきなのか
いやぁ難しいですね

827 :デフォルトの名無しさん:2018/08/17(金) 13:59:24.66 ID:IJ2e6Mcr.net
データメンバーにしなさい
グローバル変数は悪である

828 :デフォルトの名無しさん:2018/08/17(金) 14:21:39.44 ID:TtX4VAeH.net
>>826
「共通の変数を使う関数群」をクラス化するんだよ
そのためにあるんだから

829 :デフォルトの名無しさん:2018/08/17(金) 15:10:01.00 ID:ujK6h2XS.net
>>826
> ……あれ、そうするとその関数群だけで使う共通の変数
いや、そんなもんがあるならメンバ変数にするか、それらを構造体とかにまとめて引数で渡すとかしなよ
ファイルスコープだとしても今時グローバル変数は無いわ

830 :デフォルトの名無しさん:2018/08/17(金) 17:26:14.63 ID:xjFqJl5K.net
いまどきグローバル変数を使うおとこの人って…

831 :デフォルトの名無しさん:2018/08/17(金) 17:26:59.41 ID:PQea+QN+.net
>>824
ゼロから書く気はある

832 :デフォルトの名無しさん:2018/08/17(金) 17:32:51.82 ID:uIPUTYG+.net
「すべての男はグローバル変数である」

833 :デフォルトの名無しさん:2018/08/17(金) 17:33:46.61 ID:6wrElEJt.net
わたし女だけど

834 :デフォルトの名無しさん:2018/08/17(金) 17:41:55.00 ID:mGHQIGDT.net
クラスのstaticメンバにすりゃええんちゃうのん?

835 :デフォルトの名無しさん:2018/08/17(金) 17:52:51.84 ID:TtX4VAeH.net
わざわざstaticにする強い理由があればそうするが
消極的な選択なら非staticのほうが何かと楽だぞ

836 :デフォルトの名無しさん:2018/08/17(金) 17:54:48.35 ID:xjFqJl5K.net
staticおじさん、再び

837 :デフォルトの名無しさん:2018/08/17(金) 18:06:46.13 ID:H85EoLGL.net
ちょうど気になる話題だから聞くけど
OpenCVで1つの画像データを複数の関数で扱う場合って、引数として渡すのとグローバル変数として定義するのってどっちが良いのかな?(速度とかの面で)

無限ループで毎フレーム毎にWebカメラから読み取った画像を(グローバル)変数に代入するからそこでの速度とかメモリ管理の差とかあるのかな?

838 :デフォルトの名無しさん:2018/08/17(金) 18:08:23.37 ID:UZUA85Xq.net
>>831
そこまでして再発明したいんなら言語なんて何でもいいんじゃね?
ちなみに素養はお持ちなの?
そういう研究してたとか

839 :デフォルトの名無しさん:2018/08/17(金) 18:09:24.28 ID:ABziGu/h.net
>>833
オカマはだまってろw

840 :デフォルトの名無しさん:2018/08/17(金) 18:09:55.69 ID:UZUA85Xq.net
>>831
あ、読み違えた
自然言語処理ではないんだね
何かのパーサーでも書きたいんですかね?

841 :デフォルトの名無しさん:2018/08/17(金) 19:04:11.30 ID:/oSEwJ0G.net
>>837
OpenCVのMatなら何も考えずにコピーすると浅いコピーになる
浅いコピーのコストが問題になるならグローバルなりメンバなりにする方がいいのでは

842 :デフォルトの名無しさん:2018/08/17(金) 19:06:50.86 ID:6wrElEJt.net
何で浅いコピーだよ
普通はポインタか参照だろ

843 :デフォルトの名無しさん:2018/08/17(金) 19:10:12.86 ID:IJ2e6Mcr.net
cv::Matがスマポみたいなもんだということを知らずにチャチャ入れてるなら黙ってたほうがいいよ

844 :デフォルトの名無しさん:2018/08/17(金) 19:17:25.23 ID:6wrElEJt.net
そんな事はしっている
目の前に浅いコピーって書いてあるし

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

構造体やクラスを渡すのに深い浅いに関わらず
コピーなんか使うなよ

845 :デフォルトの名無しさん:2018/08/17(金) 19:28:06.57 ID:KaaDwp63.net
>>837
> (速度とかの面で)

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

  ドナルド・トラン…
  じゃなくてクヌース

846 :デフォルトの名無しさん:2018/08/17(金) 19:44:40.54 ID:0e7dWRcF.net
今更になって>>825で言ってくれたことが理解できた
クラス内でメンバ変数使おうとするとメンバ関数じゃないとだめなのね。普通に分けたただの関数からじゃ呼べなかった
えーこういうもんなのか

847 :デフォルトの名無しさん:2018/08/17(金) 19:55:12.57 ID:RgiGOjCt.net
cv::Matとcv::Mat*のコピーコストの差を気にするくらいならデリファレンスのコストも気にしなきゃな。

848 :デフォルトの名無しさん:2018/08/17(金) 20:02:22.24 ID:IJ2e6Mcr.net
844はunique_ptrやshared_ptrも参照渡ししてそう

849 :デフォルトの名無しさん:2018/08/17(金) 22:11:59.07 ID:6wrElEJt.net
>>847
構造体やクラスだと
ポインタや参照がデフォなんだよ

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

わざわざ無駄に重くしなくて良い
コードサイズも実行時間も使用メモリも増える
悪いことしかない

850 :デフォルトの名無しさん:2018/08/17(金) 22:28:22.24 ID:p6eculQx.net
>>838
世の中の殆どは再発明の繰り返しではないか
そこから新しいものが生まれる
>>840
機械学習、音声言語処理に興味ある
生成や知識獲得とかも

851 :デフォルトの名無しさん:2018/08/17(金) 22:33:47.04 ID:rVfGTX61.net
とりあえず車輪からだな

あっそれロン。大車輪で役満です

852 :デフォルトの名無しさん:2018/08/17(金) 23:28:39.10 ID:2sBNjScG.net
ユーザーの実行コストを考えたらC++しかありえない

853 :さまよえる蟻人間 :2018/08/17(金) 23:29:57.49 ID:L+nRWRoK.net
>>852
Rustを知りませんか?

854 :デフォルトの名無しさん:2018/08/17(金) 23:48:03.15 ID:3Fyou0AL.net
>>848
間違って通常のポインタを引数に指定されないよう、共有ポインタの参照を引数にすることはあり得るでしょ。

855 :デフォルトの名無しさん:2018/08/17(金) 23:49:26.53 ID:2sBNjScG.net
RustはいつになったらC++を殺すんだ?

856 :デフォルトの名無しさん:2018/08/18(土) 02:00:38.26 ID:/pVEXQTC.net
https://github.com/rust-lang/rust/issues
エラーが4000件だから、しばらく無理。

857 :デフォルトの名無しさん:2018/08/18(土) 10:32:16.38 ID:zXZq/jKJ.net
Visual Studioのデバッグ実行ってクラッシュとかしてもコードのどこでクラッシュしたかを示してくれるのですごく便利なんですが、
ただでさえ重めだった実行が、2015から拍車がかかり、かなり使いにくくなってしまいました。
どうもvector等のSTLの範囲チェック等が重たいとのことで、たしかにSTLの使用割合が多いアプリほど重たい傾向にあります。
たしかに範囲チェックはありがたいのですが、多少デバッグ能力を妥協して動作を軽くできないでしょうか?

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

ご助言、よろしくお願いします。

858 :デフォルトの名無しさん:2018/08/18(土) 12:38:36.62 ID:C9f4IyR8.net
>>857
IDEに頼るな
vimを使え

859 :デフォルトの名無しさん:2018/08/18(土) 12:58:55.58 ID:qRHlEVCy.net
理想は平均的な性能のPCを買うことかな

860 :デフォルトの名無しさん:2018/08/18(土) 13:48:15.95 ID:9bYd+OzJ.net
>>857
https://msdn.microsoft.com/ja-jp/library/hh697468.aspx

861 :デフォルトの名無しさん:2018/08/18(土) 15:07:37.45 ID:T6klohyz.net
質問ですが
class Foo {
public:
  int a[100];
  Foo();
};
というクラスにおいて、構築時にメンバa[]をゼロ初期化する簡単な書き方はありませんか

ちなみに
Foo::Foo() : a({ }) { }
とやったらエラーになりますた、

862 :デフォルトの名無しさん:2018/08/18(土) 15:27:11.61 ID:/pVEXQTC.net
https://ideone.com/BuNLLF
こう?

863 :デフォルトの名無しさん:2018/08/18(土) 16:07:29.18 ID:cIuR0GWn.net
普通に書いたらええがな。

Foo::Foo(){
for(int i=0; i<100; i++){
a[i] = 0;
}
}

864 :デフォルトの名無しさん:2018/08/18(土) 16:21:12.10 ID:T6klohyz.net
レスdクス、

>>862
申し遅れましたがやpっぱC++11では_ですかそうですか…

865 :デフォルトの名無しさん:2018/08/18(土) 16:59:01.67 ID:/pVEXQTC.net
初期化法自体はC言語からある方法だけど。
構文はC++だけどね。

866 :デフォルトの名無しさん:2018/08/18(土) 17:03:27.71 ID:/pVEXQTC.net
あー、そうなのね。あれって環境依存だったのか。ゴメン。

https://wandbox.org/permlink/ASJ3oCbkha0Ren8B

867 :デフォルトの名無しさん:2018/08/18(土) 17:32:50.09 ID:dGIgNVTb.net
>>859
平均的じゃ足りんだろ
VMwareとか使いまくるには
RAMとHDDがたんまりないと心許ない

868 :デフォルトの名無しさん:2018/08/18(土) 17:34:51.43 ID:WtnFgJ11.net
Foo::Foo() : a{ } { }
でええやん

869 :デフォルトの名無しさん:2018/08/18(土) 17:36:04.82 ID:dGIgNVTb.net
>>861
Foo::Foo() : a{ } { }

870 :デフォルトの名無しさん:2018/08/18(土) 17:36:29.52 ID:/pVEXQTC.net
>>868
そんなことできたのかぁー。うぼぁー。

871 :デフォルトの名無しさん:2018/08/18(土) 17:36:36.32 ID:dGIgNVTb.net
あ、被った
すまんこ

872 :さまよえる蟻人間 :2018/08/18(土) 17:36:58.77 ID:ONgNSdiS.net
今時はSSDだろ。SSDにデータ移行しなよ。VS2017が数秒で起動するぜ。

873 :デフォルトの名無しさん:2018/08/18(土) 18:54:50.29 ID:dGIgNVTb.net
うんC:はSSD一択だね
できればSLCのやつ

874 : :2018/08/18(土) 19:32:14.99 ID:/9y7PjMS.net
>>872
何もかもがめんどくさっくて、C ドライブになんでもたんまりと仕込むのが好きなんですが、
1TB くらいある SSD ってお高いんでしょう?

875 :デフォルトの名無しさん:2018/08/18(土) 19:49:21.94 ID:Q0JvwYe1.net
最近は途中にマウント出来るのよ

876 :デフォルトの名無しさん:2018/08/18(土) 19:55:17.69 ID:gititOy1.net
>>874
例えば、だが
Crucial SSD 1000GB MX500 内蔵2.5インチ 7mm ¥23,738

877 :デフォルトの名無しさん:2018/08/18(土) 21:21:58.94 ID:F905Yoig.net
理由はわかるが柔軟性が欲しい

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 :さまよえる蟻人間 :2018/08/18(土) 21:38:06.56 ID:hlXM+cNJ.net
型を分けて、共通型を使えば?

879 :デフォルトの名無しさん:2018/08/18(土) 23:59:13.75 ID:3zCcdQf6.net
>>874
きみなら一時間とは言わないが、一日でそのくらい稼ぎ出すんやろ?

880 :デフォルトの名無しさん:2018/08/19(日) 00:05:39.35 ID:RqnFNWUi.net
>>878
こうすればokというのはわかるけども面倒
template<typename LT, typename RT>
void test(LT const& a, RT const& b){

}

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

>>858
vim、興味深いですが、慣れるまで時間がかかりそうですね^^;

882 :デフォルトの名無しさん:2018/08/19(日) 09:02:49.22 ID:qd68oMAq.net
じゃあメモ帳で。

883 :デフォルトの名無しさん:2018/08/19(日) 09:12:46.20 ID:qaYG8ur7.net
notepad++かサクラエディタ

ttps://forest.watch.impress.co.jp/library/software/notepadplusp/
ttps://sakura-editor.github.io/download.html

884 :デフォルトの名無しさん:2018/08/19(日) 09:25:18.62 ID:wM6XArJ0.net
vim は、

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

:q! 保存せずに終了
:wq 保存して終了

885 :デフォルトの名無しさん:2018/08/19(日) 09:26:24.72 ID:xXXJlhyc.net
今は spacemacs 以外あり得ないよ

欠点が厳密にゼロ個な完全なチョイス

886 :デフォルトの名無しさん:2018/08/19(日) 09:40:59.64 ID:0vPM1br5.net
最近はVSCodeが使い物になってきたぞ
CMakeとの連携も賢い
補完がまだ遅いが

887 :857:2018/08/19(日) 10:56:19.69 ID:KCtnHGyc.net
自分はサクラエディタを10年以上愛用しています。
VisualStudioはコンパイラ兼デバッガとして利用してます。

888 :デフォルトの名無しさん:2018/08/19(日) 14:03:03.06 ID:5+hPFDRj.net
俺の main.cpp が 9万5千行 を超えた
ファイルサイズにして2.37MBある
クラス内でなら前方参照が可能なC++の盲点をついて
適当な struct でプログラム全体を丸ごと囲って
前方参照しまくり & ヘッダに全部書くスタイルで
一つのファイルに全部押し込めた
C++サイコー

889 :デフォルトの名無しさん:2018/08/19(日) 14:03:58.10 ID:5+hPFDRj.net
ちなみにコンパイルが遅くなるのと
コード補完が重くて使い物にならなくなるので
素人にはお勧めしない

890 :デフォルトの名無しさん:2018/08/19(日) 14:13:18.08 ID:MSEMVqOe.net
キモイコードだなぁ。メンテナーが泣くぞ。

891 :デフォルトの名無しさん:2018/08/19(日) 14:20:44.33 ID:5+hPFDRj.net
大丈夫
サンデープログラマーで俺一人だけしか書かないから
ソースコードも公開してないしな

892 :デフォルトの名無しさん:2018/08/19(日) 14:22:38.72 ID:RqnFNWUi.net
なんのプログラムを書いたらそうなるんだ・・・

893 :デフォルトの名無しさん:2018/08/19(日) 14:58:05.30 ID:0c0A7VGq.net
>>888
キモすぎやろ…

>>891
見してくれ

894 :デフォルトの名無しさん:2018/08/19(日) 15:04:46.82 ID:5+hPFDRj.net
こういうのは怖いもの見たさみたいなのもあると思うし
これだけでコンパイルして動くものでもないので一応ソースコード
あまりにもアレで、そっ閉じだろうけど
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.51 ID:5+hPFDRj.net
庶民には理解できなくても
プログラマであるあなたたちなら
ピン止めできるツリービューが如何に画期的か理解できると思うんだよね
タスクバーでも何でもピン止めの時代なのに
ツリービューもピン止めできて良いと思うのよね

896 :デフォルトの名無しさん:2018/08/19(日) 15:09:21.21 ID:5+hPFDRj.net
ああ、ツールバーとかスクロールバーとかのレベルで
全部フルスクラッチでDirectXで手書きだから

897 :デフォルトの名無しさん:2018/08/19(日) 16:00:06.94 ID:RqnFNWUi.net
庶民なる俺様にはピン留出来ることの利点がわからん

898 :デフォルトの名無しさん:2018/08/19(日) 20:23:08.28 ID:qaYG8ur7.net
サクラエディタが優秀だということは分かった

899 :デフォルトの名無しさん:2018/08/19(日) 21:38:13.69 ID:Vpx5N+CG.net
見て欲しくて我慢できなかったんだな

900 : :2018/08/19(日) 22:28:08.34 ID:bW/fB7v7.net
>>711
https://www.amazon.co.jp/dp/4871481689/

901 :デフォルトの名無しさん:2018/08/20(月) 08:03:46.47 ID:4c85aa3D.net
>>900
Makeって何?

902 :デフォルトの名無しさん:2018/08/20(月) 14:14:50.32 ID:PcIDGZDw.net
>>901
来年にはSunOSにも移植される予定の超最新自動ビルドツールの紹介だよ!

903 :デフォルトの名無しさん:2018/08/20(月) 15:49:07.20 ID:YVC1gYT/.net
>>901
オライリーがおかしな実験をする本だよ

904 : :2018/08/20(月) 18:47:45.43 ID:VU5jvdn2.net
>>901
昔から使われている原始的といってよいビルドツールです
makefile に依存関係を書いておいて、コマンドラインで「 make -j」と起動すると、記述した依存関係にしたがってコンパイル・リンクが行われます

905 :デフォルトの名無しさん:2018/08/20(月) 18:59:55.06 ID:ftO9aq8g.net
Linuxなんかで配布されたソースから実行ファイルを作成したいって時にお世話になります

906 :デフォルトの名無しさん:2018/08/20(月) 20:29:15.33 ID:MlhHAxXO.net
>>904
この本を読めばコンパイルについても分かるの?

907 : :2018/08/20(月) 20:46:46.88 ID:VU5jvdn2.net
>>906
>>900 は make を C で記述するものであり、コンパイル自体について記述するものではありません

908 :デフォルトの名無しさん:2018/08/20(月) 23:46:22.40 ID:qkN29+U3.net
クラス生成に挫折したのかな?w

909 :デフォルトの名無しさん:2018/08/21(火) 00:03:12.90 ID:Y1eCmHG/.net
C++自体の本はたくさんあるのにビルドやプロジェクト構成について解説した本って全くないよな
コピペで受け継いできた秘伝のMakefileやconfigureが蔓延してるのなんとかしてくれ
売れないだろうがCMakeの解説本が一冊欲しい

910 :デフォルトの名無しさん:2018/08/21(火) 00:06:59.04 ID:FygfW+En.net
cmake はつい最近のVisual Studio 2017アップデートで標準インストールされるようになったから潜在需要あるかもね…。

911 :デフォルトの名無しさん:2018/08/21(火) 00:51:54.00 ID:zakr4cIe.net
なんでビルドツールっていつも怪物化しちゃうんだろうな
makeがもう誰も手に負えない怪獣のくせにずっと定番に居座ってて、「Makefileを作るツール」が乱立してそれぞれ怪物化してるの勘弁してほしい

912 : :2018/08/21(火) 01:03:38.38 ID:Wpz7rvAB.net
>>911
>makeがもう誰も手に負えない怪獣

make ですら怪獣になるのだったら、他の高機能ビルドツールはとっくに破綻している現状だったのか!と、ふと

913 :デフォルトの名無しさん:2018/08/21(火) 01:35:58.44 ID:mIqstMqN.net
makefileなんて複雑な事求めないなら手でかけるレベルだよ
これが複雑で手に負えないとなると、プログラミングも怪しくなる

914 :デフォルトの名無しさん:2018/08/21(火) 01:36:31.95 ID:Y1eCmHG/.net
ビルドについての教育がないがしろにされてるのが全ての元凶
ある程度以上の規模のプロジェクトを構成するベストプラクティスが示されているところを見たことがない
適当に好きなところから取ってきて動けばいいやくらいに改変して使ってるのが現状

915 :デフォルトの名無しさん:2018/08/21(火) 07:06:57.27 ID:agJOmNk0.net
丁寧に書いてるのはこれくらい。

ttp://aegis.sourceforge.net/auug97.pdf

916 :デフォルトの名無しさん:2018/08/21(火) 11:19:53.91 ID:zakr4cIe.net
複雑なことをしたいからビルドツールを使うわけでしてねぇ・・・

917 :デフォルトの名無しさん:2018/08/21(火) 11:24:41.92 ID:mIqstMqN.net
したいという意思があるなら、がんばって理解も出来るだろう
そこまでしなくても、最低限のルール覚えれば使える

918 :デフォルトの名無しさん:2018/08/21(火) 11:53:12.22 ID:gERn4ySS.net
>>915
goto有害説をもじってるんだなw

Makefileを書いていていつも思うのは
ソースファイルの依存関係はソースファイルの中に書いてあるのに
それをまた二度手間で書かねばならないのがイヤ
面倒くさいのはともかく間違えやすいから

919 :デフォルトの名無しさん:2018/08/21(火) 12:20:54.13 ID:JvEAafEP.net
>>918
automake とか gcc -MM とかの話?

920 :デフォルトの名無しさん:2018/08/21(火) 12:38:18.13 ID:Dn6CvPAP.net
rustとc++どっちも使ってる人いる?

921 :デフォルトの名無しさん:2018/08/21(火) 12:59:21.72 ID:gERn4ySS.net
>>919
gcc -MMか、いいこと聞いた
ありがとう

922 :デフォルトの名無しさん:2018/08/21(火) 13:56:49.24 ID:Y1HyydAv.net
>>919
詳しい解説サンクス
こんなのがあったのか

923 :デフォルトの名無しさん:2018/08/21(火) 16:55:02.40 ID:59eaeAGG.net
>>917
ここで根性論とはセンスあるわ
もちろんエンジニアでなく笑いの

924 :デフォルトの名無しさん:2018/08/21(火) 17:26:56.17 ID:/1sxYxCd.net
エンジニアでなく園児にゃ

925 :デフォルトの名無しさん:2018/08/21(火) 19:40:42.98 ID:Y1eCmHG/.net
WindowsでCMakeはfind_packageでだいたい詰む
vcpkgで対応できなければ結局自分で書くはめになり、面倒くさくなってmingw使うかVSのプロジェクトと同居することになる

926 :デフォルトの名無しさん:2018/08/22(水) 16:26:31.16 ID:BT6ndhEb.net
C++ とは直接関係ないけど make/Makefile は擬似ターゲットを使って
バッチ的な定型処理を1個のファイルでまとめて管理できるのが便利でね。

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

自分で作った便利ターゲットの使い方を usage: に書いとくのを忘れるけど。

927 :デフォルトの名無しさん:2018/08/22(水) 17:38:28.37 ID:ua+EoSC8.net
>>926
perlでok

928 :デフォルトの名無しさん:2018/08/22(水) 19:10:59.67 ID:lMaJ9TV4.net
C言語のビルドシステムならC言語で書けるようにするべきだと思うのだがよく分からない専用の言語を使わされるのは何故
この手のスクリプト言語は可読性がデバッガもないから中身を探るのが難しすぎる

929 :デフォルトの名無しさん:2018/08/22(水) 19:27:23.21 ID:J6lVaoNe.net
君がそれを作って公開してみれば良いと思うんだが

930 :デフォルトの名無しさん:2018/08/22(水) 20:50:10.20 ID:4/HlUcDP.net
C++のビルドツールといえばboostでお馴染みのbjam
実質boost専用に作ってるだけなのにあんな聳え立つ糞の山になっちゃうんだからビルドツールって怖いね

931 :デフォルトの名無しさん:2018/08/22(水) 22:31:38.77 ID:G7PvCZFg.net
ソフト名がまだ決まっていないけどプログラム開発がスタートするって一般的だと思うんですが、
こういうときってコードネームを付けますよね?
このとき、VisualStudioのプロジェクト名もコードネームにしますよね?

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

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

みなさんがどうされてるのか気になったのでお聞きしました。

932 :デフォルトの名無しさん:2018/08/22(水) 23:03:51.57 ID:4/HlUcDP.net
必要なら変えるよ
slnやvcxprojはただのxmlだから名前変えるだけならそんなに難しくない

933 :デフォルトの名無しさん:2018/08/23(木) 00:06:20.88 ID:0/a4zf/K.net
英国ポエムシリーズでしょう
bjam=ブージャムは言うまでも無く、パンジャンドラムすらも無論英国のポエムから採られた
他にも兵器界隈ではスナークとかが存在するのは周知の通り

日本だと仏教用語から採ればいいんじゃあないですかね

934 :931:2018/08/23(木) 00:10:54.70 ID:U43QDDsh.net
>>932
なるほど〜、プロジェクト関連ファイルを編集することで名前を変えることはできるんですね。
なら気兼ねなく最初はコードネームにしときます。
ありがとうございました^^

935 : :2018/08/23(木) 22:00:21.31 ID:NMfUyUL+.net
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 :さまよえる蟻人間 :2018/08/23(木) 22:17:07.10 ID:Z2Fii0dD.net
std::refの規格表とソースを見たか?
余計なコピーを抑制してるんだ。

937 :さまよえる蟻人間 :2018/08/23(木) 22:18:22.48 ID:Z2Fii0dD.net
s/表/票/

938 :デフォルトの名無しさん:2018/08/23(木) 22:33:14.61 ID:/6RK1Hlx.net
非参照なテンプレートな引数に一時変数を作らずに参照を渡せる

939 : :2018/08/23(木) 22:52:37.79 ID:NMfUyUL+.net
>>938
コメントありがとうございます
コピーコンストラクタが禁止されている std::cout をテンプレート引数にわたす場合で理解できました(かもしれません)
https://ideone.com/3eqEJY

一つ質問ですが、私なら、このプログラム例の y()
template<class T> void y((*f)(), T &os) { ... }
のように、テンプレートを書く時点で参照に書いてしまうのですが、
あえて非参照なテンプレート引数を書く「便利さ」みたいなものはありますでしょうか?

940 :デフォルトの名無しさん:2018/08/24(金) 02:37:15.13 ID:kcQyW4E+.net
大阪はいたって平和
しょぼいにもホドがある

941 : :2018/08/24(金) 03:55:21.10 ID:A5L5xSI8.net
>>939
>あえて非参照なテンプレート引数を書く「便利さ」みたいなもの
std::thread のコンストラクタを眺めていて気が付いたこと…これ、可変長テンプレートですね

942 : :2018/08/24(金) 04:17:14.78 ID:A5L5xSI8.net
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.64 ID:ZkSPfVdV.net
何で出来ないと思うの?

944 :デフォルトの名無しさん:2018/08/25(土) 08:53:09.59 ID:/11s7nnG.net
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.64 ID:rL3qzGy6.net
そりゃまー、実体化した内部ではTは決定済みだろうから無理だろう。
Anyつかうとか・・・。

946 :デフォルトの名無しさん:2018/08/25(土) 14:24:43.54 ID:rL3qzGy6.net
あ、すまん。おかしなこと言った。
えーっと、変数が一個じゃ足りないな。
イニシャライザーリスト使うか、下位関数にキックするか。

947 :デフォルトの名無しさん:2018/08/25(土) 15:05:48.05 ID:XmdDRLnv.net
そもそもコンストラクタの委譲は再帰禁止だったと思うが
別のクラステンプレートのメンバ関数とか関数テンプレートで再帰するしかないと思う

948 :デフォルトの名無しさん:2018/08/25(土) 15:57:42.66 ID:rL3qzGy6.net
https://wandbox.org/permlink/KrUV4MTPdV0l4OoO
興味があったのでそれっぽいコード書いてみた。
これキャッチするの無理だろ。

949 :デフォルトの名無しさん:2018/08/25(土) 16:53:35.24 ID:rL3qzGy6.net
そういえば、例外の時にメモリ確保したらなんか弊害あるんだっけ?
昔、例外投げるときはメモリが足りなかったりとかクリティカルな状況だからやめろって言われたような気がする。
どうやったっけ?

950 :デフォルトの名無しさん:2018/08/25(土) 18:24:33.46 ID:/11s7nnG.net
>>948
なんか面白そうなのうpしてくれてありがとう
すまん、今かなり酔っ払ってる
素面に戻ってからじっくり読むから
ちょっと待ってて

951 :デフォルトの名無しさん:2018/08/25(土) 18:56:26.92 ID:5ar3I1wr.net
>>948
つ catch(A<B, C> E)

952 :デフォルトの名無しさん:2018/08/25(土) 19:23:40.93 ID:r5O9PJUC.net
>>949
> そういえば、例外の時にメモリ確保したらなんか弊害あるんだっけ?
メモリー不足による例外発生時だとその例外処理時のメモリー確保自体が失敗するから例外処理(例えばログ出力)ができなくなるってこと

953 :デフォルトの名無しさん:2018/08/25(土) 20:44:16.72 ID:rL3qzGy6.net
>>951
そらまー、引数がそれの時はできるけど、必ず把握はしてないでしょ。

>>952
あぁ、なるほど。ありがとう。

954 :デフォルトの名無しさん:2018/08/25(土) 20:51:49.46 ID:cO/mJ1mq.net
>>952
メイヤーズ本に簡単な回避テクが書いてある
希ガス

955 :デフォルトの名無しさん:2018/08/25(土) 20:52:40.48 ID:cO/mJ1mq.net
真にご法度なのはデストラクタの中での例外発生なんじゃ…

956 :デフォルトの名無しさん:2018/08/25(土) 21:06:57.48 ID:tfF8aOe1.net
>>953
951だけど、何したいのか分からない。
catch (decltype(X) E)
ならええの?

957 :デフォルトの名無しさん:2018/08/25(土) 22:12:01.59 ID:rL3qzGy6.net
https://wandbox.org/permlink/uEH5L9KBV9L1BdYn
うはー、気が向いたから、コンストラクタに推論させようと思ったら手間食った。あー疲れた。
しかし、理解が深まって良かったかな。うえー。

>>956
投げた本人ならできるけど別のところから飛んできたやつはつかめなくない?

958 :デフォルトの名無しさん:2018/08/25(土) 22:26:38.94 ID:rL3qzGy6.net
しかし、色々試したが結局うまくいかず、解説ページの死角にぽろっとあるのが最高にリアル。

959 :デフォルトの名無しさん:2018/08/25(土) 23:19:11.18 ID:5ar3I1wr.net
>>957
例えばA<B, C>とA<D>は全く別の型なのだから、どっちの型が飛んでくるかわからないのに両方catchするのは無理でしょ。
Base型で試そうとした痕跡があるけど、catchした先でA<B, C>またはA<D>の関数を呼び出そうとしているからそれもできない。

「別のところ」から飛んでくる例外の型はコンパイル時には確定しているのだから、メタプログラミングが通常やるように、「別のところ」のテンプレ引数でthrowする型を決定できるようにすればいいんじゃね?

960 :デフォルトの名無しさん:2018/08/25(土) 23:23:12.69 ID:rL3qzGy6.net
>>959
うん。多分それで困ると思う。>>944が!
メタプロやらないから可能性は感じるけど限界がわからない。
まぁ、俺は興味で書いただけだから、>>944がどうするかはシラネ・・・。

961 :デフォルトの名無しさん:2018/08/25(土) 23:24:09.84 ID:Efgla6YW.net
>>939
>あえて非参照なテンプレート引数を書く「便利さ」みたいなものはありますでしょうか?
threadの場合デフォルトで参照だとdata raceを気づかないで起こす可能性が上がる。
設計としてスレッドの引数はコピーして渡すほうが安全性は高い。

一般論で言えば一時オブジェクトを受け取るならconst&になるけど、
これだとmoveできないので逆に性能が劣化する場合がある。

962 :デフォルトの名無しさん:2018/08/25(土) 23:32:37.06 ID:Efgla6YW.net
最近の提案なんかではメモリ確保失敗は回復が難しく一般的な例外とは
区別して考えるのが合理的なんじゃないかって話が出てきてる。
んで新しく静的な例外を導入しようっていう話が上がってる。

963 :デフォルトの名無しさん:2018/08/25(土) 23:39:53.83 ID:rL3qzGy6.net
>>962
コンパイルタイムで例外わかるんだったら、普通にコンパイルエラーにしよ?

964 :デフォルトの名無しさん:2018/08/25(土) 23:47:31.99 ID:cO/mJ1mq.net
メメント・メモリ

965 :デフォルトの名無しさん:2018/08/26(日) 02:56:15.82 ID:zhFpXu2e.net
ヒープが無くなったら、HeapCreateで作れば良いのに。
by マリー・アンチョワネット

966 :デフォルトの名無しさん:2018/08/26(日) 14:06:36.91 ID:Q8b2w7YQ.net
メモリがどれくらい必要なのか簡単に静的解析できたらいいなあと思うけど
再帰関数のメモリ消費量とか計算難しそう

967 :デフォルトの名無しさん:2018/08/26(日) 14:10:00.99 ID:BwlGzYMc.net
mcc68kなんかは-Sでアセンブラ出力させると
コメントにスタック使用量を入れてくれてたな

968 :デフォルトの名無しさん:2018/08/26(日) 19:26:38.30 ID:OiuVvKbz.net
割り込みになるけどちょっと質問させてください
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.94 ID:Ws2ZfrVi.net
int[]は int * のシンタックスシュガー

970 :デフォルトの名無しさん:2018/08/26(日) 19:34:14.95 ID:OiuVvKbz.net
int[4]でもだめだったんですよね・・・・
というか今思いついて(int[4]){1, 2, 3, 4}でやったらいけました
お騒がしてすみませそ

971 :デフォルトの名無しさん:2018/08/26(日) 20:05:48.84 ID:qnZA5cjL.net
auto b ={1, 2, 3, 4};

972 :デフォルトの名無しさん:2018/08/26(日) 20:12:01.81 ID:2rP1aXG6.net
>>970
それはC99の複合リテラルになるけど、C++で使ってよかったっけ?

973 :デフォルトの名無しさん:2018/08/26(日) 20:19:57.43 ID:qnZA5cjL.net
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.00 ID:hANAm2gW.net
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.21 ID:hANAm2gW.net
c
b1:8
b2:16
b3:16

c++
b2:16
b3:16

976 :デフォルトの名無しさん:2018/08/26(日) 20:27:01.66 ID:hANAm2gW.net
うん
やっぱり
このスレにもアホしかいない

977 :さまよえる蟻人間 :2018/08/26(日) 20:28:44.90 ID:Vxoswi+g.net
>>976
自分が天才だと思っているなら、こんなところで遊んでないで、なんか凄いソフトを作ってくれよ。

978 :デフォルトの名無しさん:2018/08/26(日) 20:31:31.48 ID:BwlGzYMc.net
レス番が飛んでるなあ

979 :デフォルトの名無しさん:2018/08/26(日) 20:31:32.32 ID:hANAm2gW.net
オレは自分を天才とか思ってない
オレは天才じゃないが普通の人間だ

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

教育の程度や知能に大きな問題があるといってるわけ
しかもその自覚がない
まずまともな人間になるところから

980 :デフォルトの名無しさん:2018/08/26(日) 20:44:37.30 ID:qnZA5cjL.net
誤解したまま帰った?

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.49 ID:OiuVvKbz.net
あー、すみませんautoって書いたのがまずかったですね
試してみたんですが、実際にはコンストラクタに渡すので大丈夫でした

autoだと配列の一時オブジェクトへのポインタになるからまずいですね

982 :デフォルトの名無しさん:2018/08/26(日) 21:54:34.00 ID:7VGl0ROF.net
>>981
autoでなくても不味いよ

983 :デフォルトの名無しさん:2018/08/26(日) 22:13:43.13 ID:zpiwFHmU.net
>>977
ほんこれ

984 :デフォルトの名無しさん:2018/08/26(日) 22:53:29.24 ID:OiuVvKbz.net
>>982
なにがどうまずいですかね?

985 :デフォルトの名無しさん:2018/08/27(月) 08:18:57.12 ID:YiUsgylF.net
まったりとしてコクが無く、魚介類の生臭さを濃縮したような
スープと同じぐらい不味い

986 :デフォルトの名無しさん:2018/08/27(月) 13:42:16.09 ID:QRiCvp9j.net
きも

987 :944:2018/08/27(月) 13:55:56.63 ID:vY3QDx2y.net
>>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.11 ID:vY3QDx2y.net
>>955
std::uncaught_exceptionというのがあるね

989 :デフォルトの名無しさん:2018/08/27(月) 14:23:40.86 ID:QRiCvp9j.net
>>987
クラステンプレートの引数の推論補助(deduction guide

990 :デフォルトの名無しさん:2018/08/27(月) 14:26:19.85 ID:vY3QDx2y.net
>>989
deduction guideね、thx

991 :さまよえる蟻人間 :2018/08/27(月) 15:42:34.96 ID:JbKLTkj/.net
次スレ頼む

992 :デフォルトの名無しさん:2018/08/27(月) 16:02:51.38 ID:r/wp9j7z.net
わたくしがC++で書き上げた超高性能次スレ立てマシーンなら次スレなんて一発ですよ

993 :デフォルトの名無しさん:2018/08/27(月) 16:03:14.62 ID:vY3QDx2y.net
立てたよ
https://mevius.5ch.net/test/read.cgi/tech/1535353320

994 :デフォルトの名無しさん:2018/08/28(火) 01:49:58.08 ID:rjIDuLFn.net
スレ番インクリメント機能はC++でも実装不可能なまでに困難な作業だったか

995 :デフォルトの名無しさん:2018/08/28(火) 06:13:26.80 ID:UQgP5OTn.net
スレ立てが競合した時の排他制御を実装してくれ

996 :デフォルトの名無しさん :2018/08/28(火) 06:22:11.76 ID:XE/KW9kf.net

板復帰(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.99 ID:fGjEV9Ei.net
997

998 :デフォルトの名無しさん:2018/08/28(火) 20:40:50.96 ID:fGjEV9Ei.net
998

999 :デフォルトの名無しさん:2018/08/28(火) 20:41:19.69 ID:fGjEV9Ei.net
999

1000 :デフォルトの名無しさん:2018/08/28(火) 20:41:56.22 ID:fGjEV9Ei.net
1000

1001 :2ch.net投稿限界:Over 1000 Thread
2ch.netからのレス数が1000に到達しました。

総レス数 1001
288 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★