[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 06/17 22:51 / Filesize : 282 KB / Number-of Response : 1031
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part135



1 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 20:20:06.25 ID:o3PNwIlC0.net]
次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512

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

前スレ
C++相談室 part134
mevius.5ch.net/test/read.cgi/tech/1516406742/

このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.102【環境依存OK】
mevius.5ch.net/test/read.cgi/tech/1509780815/

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

[C++ FAQ]
https://isocpp.org/wiki/faq/
www.bohyoh.com/CandCPP/FAQ/ (日本語)
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured

751 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 18:40:33.53 ID:PbE4ojLD0.net]
>>725
世間では「どちらのコンパイラを使うか」ではなく、
「どちらのスタイルで書いているか」でCとC++を区別してるんだよ。

752 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 18:42:16.14 ID:VFvkGYoW0.net]
>>727
> 演算結果が ±inf になることを「オーバーフロー」と言うのですか?ちょっと耳慣れないですね
それ反対、オーバーフローしたら結果をinfにしてるだけ

753 名前: mailto:sage [2018/05/12(土) 18:49:16.74 ID:HeMwMf3D0.net]
>>729
inf も NaN も浮動小数点表現の中にあるので「オーバーフロー」と呼びにくい、と思っています、まあ人それぞれ

754 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 19:04:56.38 ID:VFvkGYoW0.net]
>>730
だから誰もinfがオーバーフローとは言ってないだろ
オーバーフローしたらそれっぽい値としてinfを入れてるだけ

755 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 19:24:22.69 ID:yANyZ1HYd.net]
>>728
それなら
Cスタイル、C++スタイル
と言えば良い

CかC++かは当然コンパイラで決まる
C++は元々上位互換を目標に作られた物だ

756 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 19:29:38.17 ID:VFvkGYoW0.net]
>>728
お前の変な世間はどうでもいい

757 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 19:48:04.17 ID:PbE4ojLD0.net]
>>732
> C++は元々上位互換を目標に作られた物だ
そうだ。そしてだからこそ、スタイルで区別されるんだよ。

元々C++はCの完全上位互換だった。
だから君らの定義なら、C++が登場したときから全てのCは消滅し、C++になっているはずだろ。
実際はそうじゃない。
「○○のコードはCで書かれています」
「○○のコードはC++で書かれています」というのは、
世間では俺の言った定義(>>676)で使われてる。

その後、CとC++が仕様的に分離してしまったから、
今現

758 名前:在はCコンパイラで通るコードがC++コンパイラで通らないケースが存在する。
だから今は明確に「どちらのコンパイラを使うか」を想定しておく必要があるが、
それもコーナーケースで、
大半の「Cのコード」はC++コンパイラでもそのまま通る。

お前らがC++信者でC++の範囲を広く取りたいのは分かるが、世間はそうじゃない。

C++がCの仕様を全て取り込んだら、
お前らにとってはCは消滅、全てはC++になり、お前らは幸せになれるだろうさ。
ただ、その後も世間はCとC++を引き続き区別するだろうよ。
[]
[ここ壊れてます]

759 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 20:09:12.78 ID:sI+Q43v80.net]
お前用語の定義の説明とかどうでもいい
スタイルの意味ならスタイルと書け



760 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 20:09:24.63 ID:D4Rf+0xLd.net]
>>734
それは嘘だなぁ
extern "C"が無いとCライクに見えるオブジェクトを吐かない事が常となっているC++(コンパイラ)について、いくらpure Cライクなコードを書いてもpure Cでないextern "C"を書かないとCライクに見えるオブジェクトは吐けないってそれはもうC++でしょう

他の内容にも誤りがあって君の世間ではCライクなコードであればCで書いたと宣言していいらしいけど、少しでも世間のOSSのコードを見て回れば良いよ
Cで書かれているのはCだから

761 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 20:30:38.36 ID:PbE4ojLD0.net]
お前らが誤解したままでいるのはお前らの自由だが、
お前らの定義だと、CとObjective-Cを区別できないだろ。
あれはCの完全上位互換で、Cコードそのまま食えるらしいからね。

お前らも少し考えれば自分で矛盾に気づけるはずだが。

762 名前:デフォルトの名無しさん [2018/05/12(土) 20:58:42.38 ID:cTj25fOrM.net]
>>734
それは言い過ぎでしょ。
流石にそれは、世間を知らなすぎ、と言われても仕方ない意見にみえてきたなあ。。。

763 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 21:57:33.16 ID:PbE4ojLD0.net]
ならもうちょっと分かりやすい説明をしてやる。

>>677-678について、お前らの定義では『コード』について議論できないだろ。

俺の定義では、677は「Cのコード」で、678は「C++のコード」だ。コンパイラに依らない。
お前らの定義では、678は明確に「C++のコード」だが、677については、
「Cコンパイラを通した場合、677はCのコード」
「C++コンパイラを通した場合、677はC++のコード」
になってしまうだろ。
それだと、CとC++の『コード』の速度比較自体が定義できないだろ。

677をCコンパイラを通した場合とC++コンパイラを通した場合の速度差は、
「コードの差」ではなく、「コンパイラの差」なんだよ。
当たり前だろ。

というか、C++erもここまでレベルが落ちたのか。世も末だな。

764 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 22:16:57.78 ID:DXsEIRbfM.net]
std::filesystemで片方のスレッドでファイルを出力し
もう片方のスレッドでファイルが存在していたら読み込むというプログラムを書いた場合
出力中に存在すると判定されて読み込んでしまいそうですが、
そんなことないでしょうか?
もし読み込んでしまう場合、自力でフラグ管理かMutexを使うなどして
判定する以外の方法はあるでしょうか?

765 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 23:29:24.63 ID:sI+Q43v80.net]
>>739
お前が考えた定義とかどうでも良いって言ってるの

766 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 23:53:40.44 ID:PbE4ojLD0.net]
というか何でお前らそんなに必死なんだ?
俺の言ってる定義が世間一般の定義だよ。
そうじゃなきゃ『コード』の善し悪しの議論が出来ないだろ。自明だと思うが。

繰り返すが、C++がCよりも遅いのは事実で、それもググレばいくらでも出てくるだろ。
ただこれはC++そのものよりもオブジェクト指向の弊害だが。
chrismdp.com/2015/04/how-i-doubled-the-speed-of-my-game-by-giving-up-on-c-plus-plus/
https://www.quora.com/Why-is-object-oriented-programming-OOP-slower-than-procedural

逆に言えば、C++の機能をふんだんに使ったとして、Javaに対する速度優位がどれだけあると思ってるの?
C++で世界が再統一されることは、今のC++の仕様/方向

767 名前:性ではあり得ない。C++ではCを殺しきれない。
だからRustが生まれた。
>>711の表を信じるなら、RustはCの代替としてはC++以上に上手く行ってる。
[]
[ここ壊れてます]

768 名前:デフォルトの名無しさん mailto:sage [2018/05/12(土) 23:56:27.27 ID:sI+Q43v80.net]
お前の定義じゃないと議論が出来ないのは
おまえがアホだから

769 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 00:02:56.89 ID:VV8A9gRv0.net]
定義の布教なんかより技術的な会話をしろよ



770 名前:デフォルトの名無しさん [2018/05/13(日) 00:03:10.09 ID:C4Q8t1mmM.net]
必死なのはどちらなんだろう…

771 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 00:20:47.86 ID:OjngaL1la.net]
C++スレらしい流れだと思うよ

772 名前: mailto:sage [2018/05/13(日) 00:59:58.71 ID:eWw2CnRZ0.net]
面白くていいじゃないですかぁ…
ここで linus メールをコピペ(省略)

773 名前: mailto:sage [2018/05/13(日) 01:17:46.49 ID:eWw2CnRZ0.net]
>>742
面白い表ですね
つい C# とか lisp の立ち位置を確認してしまった…

774 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 08:12:09.87 ID:pAG2qz7m0.net]
>>739
だからお前のオレオレ定義なんてどうでもいい

そもそも>>638みたいな話でC++→Cで全面書き換えなんてする奴はいないだろ
まともなプログラマーならボトルネックを見つけてその部分を書き換える

例えば1つのファイルに関数f1()とf2()があってf2()がボトルネックだからC++からCの範囲で動くようなコードに書き換えたとする
お前はそのファイルの記述言語は何て言うんだよ?
関数毎に記述言語が違うとか言い出すのかよ w

775 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 08:18:26.86 ID:pAG2qz7m0.net]
>>740
> 出力中に存在すると判定されて読み込んでしまいそうですが、
> そんなことないでしょうか?
そりゃ普通にそんなことあるだろ

> もし読み込んでしまう場合、自力でフラグ管理かMutexを使うなどして
> 判定する以外の方法はあるでしょうか?
そもそも何をしたいのよ?
出力完了してから読みたいだけなら出力完了してから読み込む側のスレッド起動するとかする方法もあるだろうし

776 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 09:30:39.74 ID:tSRcUD9w0.net]
>>749
お前がIDコロコロしてまでも定義にこだわる理由が分からん。

お前の定義なら、仮に全面インラインアセンブラで記述してあっても、
Cコンパイラを通したらそれは「Cのコード」であり、
C++コンパイラを通したらそれは「C++のコード」になり、
Objective-Cコンパイラを通したらそれは「Objective-Cのコード」と言うんだろ。
そんな定義の奴はいない。それは「アセンブラ」と言うんだよ。

ただこの定義はもういい。
君は間違いを認めないようだし、仮に俺が間違っていたとしても、
お互いの認識のズレは確認できたのだからそれでいいだろ。
そして>>638は最初からそう言っているだけだ。

お前は「コンパイル単位」でしか言語を規定できないからおかしな事になっている。
世間は「コード単位」でも言語を規定する。だから、お前が
> f2()がボトルネックだからC++からCの範囲で動くようなコードに書き換え
と言うのを、世間では「f2()をCコードに書き換え」と言うんだよ。
仮にお前の定義が正しくても、これを日常的にやるようなら、じきに略されて
俺(世間)の言い方に落ち着くのも分かるだろ。

だから>>638は最初から、お前の言葉で言う、
> f2()がボトルネックだからC++からCの範囲で動くようなコードに書き換える
「f2()がボトルネックだからC++からアセンブラの範囲で動くようなコードに書き換える」事を
> もっと速くしたい所をCやasmで書く
と表現している。元々「コンパイル」単位ではなく、「コード」単位なんだよ。
その「コード」について議論するのに、「コンパイル」単位を持ち出すのはおかしいだろ。
「速くしたい『所』」ってのは一部限定って事を明示してるだろ。
お前はどうしても認めないようだが。

お前は根本的に考え方がおかしい。それではまともな議論が成立しないだろ。
議論している粒度に合わせた言葉を使え。

777 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 09:51:06.22 ID:pAG2qz7m0.net]
>>751
> ただこの定義はもういい。
> 君は間違いを認めないようだし、仮に俺が間違っていたとしても、
> お互いの認識のズレは確認できたのだからそれでいいだろ。
いきなり弱気になってて笑うわ w

778 名前:740 mailto:sage [2018/05/13(日) 10:01:51.37 ID:ntCzq/+YF.net]
自己解決しました。
仮の名前でファイルを書き出してからリネームすれば書き込み中か書き込み済みか
判定する処理をなくせるみたいでした。

779 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 11:07:48.71 ID:Q3HZm9Uhd.net]
>>751
コンパイラが変わらない単なる最適化で
C++からCにする
なんて言わないから普通
少なくともエンジニアの会話では無い

簡単にいう場合は「最適化」「チューニング」だし
詳しくいう場合は中身を具体的に言う

頭の悪い文系を騙すのには使えるのかもしれないけど



780 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 11:09:34.85 ID:Q3HZm9Uhd.net]
C言語風なコード

C言語のコード

全く意味が違う

781 名前:638 mailto:sage [2018/05/13(日) 11:24:15.00 ID:YEhpfoS10.net]
「C++で書く」→カジュアルにSTLとか使って読みやすく書く
「Cやasmで書く」→キャッシュやSIMDとか低級に考慮してガリガリ最適化する

くらいの軽い気持ちで書いただけなのに紛糾しすぎててワイ将困惑

782 名前:デフォルトの名無しさん [2018/05/13(日) 12:17:41.91 ID:oMdj20B0d.net]
話が長い上にどうでもよすぎる

783 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 12:26:54.36 ID:yds9udeH0.net]
またいつものキチガイか

784 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 12:43:30.13 ID:AL0mRZz+0.net]
>>756
おまえさんの頭がC++03のまま更新が止まってしまっていることはわかった

785 名前: mailto:sage [2018/05/13(日) 12:46:19.41 ID:eWw2CnRZ0.net]
>>759
そう判断した理由は?

786 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 12:51:49.36 ID:AL0mRZz+0.net]
C++11以後の「低級」を知らんだろ

787 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 13:01:15.34 ID:DrlMjc+O0.net]
C++xx
この末尾のへんなナンバリングが施されるようになったのっていつ頃から?

788 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 14:22:28.62 ID:pAG2qz7m0.net]
>>762
元々はC++09を狙ってたらしいから2008年頃じゃね?

789 名前: mailto:sage [2018/05/13(日) 14:53:37.16 ID:eWw2CnRZ0.net]
>>761
具体的に



790 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 15:27:50.96 ID:AL0mRZz+0.net]
>>764
人に聞くのは知らないからだな

791 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 15:47:31.87 ID:CI2jyTw+0.net]
>>759
STLが03から入ったと思ってんのか

あと
>Cコンパイラってポインタ周りは最適化をかけないから、多分、
>速度差はコンパイラ起因であって
こんなこと言ってる時点でID:PbE4ojLD0の話は聞くに値しない

792 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 16:22:20.14 ID:AL0mRZz+0.net]
>>766
あの流れからどうやってSTLが03からという話になったんだ?

793 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 17:44:42.77 ID:tSRcUD9w0.net]
>>756
馬鹿につき合ってすまんかった。

少なくとも俺とLinusは君と同じ定義で使ってるよ。俺の認識では世間もそう。
俺はこれでこれまで話が通じなかったことはないから。
おそらくはCをやらずにC++だけやってる世代と、
必ずCをやったうえでC++に進んだ世代の違いだ。
ゆとりだけで閉じてる世界では、彼らの主張する定義なのかもしれん。

ただまあ、話を聞いてる限り、こいつらは色々と無知だし、無知なことに無自覚だね。
まあもういいが。
自分が知らないだけのことをすべて間違いだと断定しているようでは上達しない。
C++erもここまでゆとり化が進んだのは残念だ。

794 名前:デフォルトの名無しさん [2018/05/13(日) 19:37:46.91 ID:5h/P5YlNM.net]
本当に通じていたのかな?
いわゆるフツーの人達は、めんどくさいから適当に話し合わせてテキトーに打ち切るものだが…

795 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 20:05:09.29 ID:tSRcUD9w0.net]
ついでだからもう少し書いておいてやるよ。

ゆとりC++erが「C++は速い」ということにしたがるのは、C++「言語」以下の解像度がないからだ。
「C++コンパイラさえ使えばおk」になってくれてないと困るからこそ、そこに異常にこだわる。
(他言語でも同様に、低位実装を直感的に推測できない馬鹿はこの傾向がある)

お前らは>>722-723の結果、同じデータ構造で同じアルゴリズムを適用した物に対し、
速度差が出た場合にそれを「言語の差」と言い張るようだが、
それは明確な間違いだ。ただの不勉強でしかない。
実際、それだとそれ以上の最適化は

796 名前:出来ないだろ。
C出身者なら、必要ならasm書いてチューニングすることも出来る。

現在C++は失敗しつつある。
それはRustを見ても明らかだ。以下ページを見てみろ。
https://imoz.jp/note/rust-functions.html
スマポ(キリッな連中にとってはC++よりもRustの方が明らかにいい言語だろ。(後発なので当たり前だが)

C++だけにすがるのは止めとけ。
もうそういう時代じゃないし、C++はそれを満たせる言語ではない。
[]
[ここ壊れてます]

797 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 20:17:51.87 ID:CI2jyTw+0.net]
別にC++とCの宗教論争に加わるつもりはないが、
お前qsortがstd::sortより遅くなりがちな理由わかってないだろ
アセンブラ使わんでも自分で書きゃCでも同等の速度は出る
(というかVCの最適化にハンドアセンブルで本当に勝てるんか?こいつ)

>CよりもC++の方が速くなるコードの方があり得ないと思うが。
>CのほうがC++より遅いケース出してみろ。ないから。
調べもせずにこんな決めつけを書く低レベルさ以前に
これをC++のスレで書くお前はどう見てもただの荒らしだから。

798 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 20:53:01.09 ID:tSRcUD9w0.net]
>>771
お前は根本的に勘違いしている。
出発点は自前のコードでもいいが、逆アセンブル結果でもいいんだから、
改善できなくとも、遅くなることはあり得ない。

アセンブラを読めない君らでは、これは無理だ。
そして、遅くなる可能性の方が高いからやらないってのは、
馬鹿な君らなりの対処法としては正しい。

まあ、C++スレではC++マンセーしないと荒らしだ、ってのは理解した。
C++erがそこまで落ちぶれたのは残念だが、俺は去るよ。

799 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 20:57:13.19 ID:HhTyaKjTd.net]
それぞれの言語の良くある使い方であれば
Cの方が速いコードもC++の方が速いコードも
どちらも存在する

同じ処理を同じように書けば普通は同じ速度
(ただし、一部細かい例外あり)



800 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 20:59:07.22 ID:HhTyaKjTd.net]
一般的な使い方では
C++の方が開発効率が高く
Cの方がバイナリの性能が高い事が多い
(もちろん逆になる要素もある)

801 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 21:06:47.71 ID:CI2jyTw+0.net]
>>772
以前ここに書いたこともあるけど、最近ET+simd(SSE、NEONのイントリンシック)で
ゲーム用の自前の線形代数ライブラリとか作ったんで
>アセンブラを読めない君ら
残念ながらこれは当てはまらないよw
どれだけ逆アセ読んで比較したか・・・・

>C++マンセーしないと
お前が”正しい批判をしてれば”荒れてないんだよ

ついでに言えば、
>「C++で書く」→カジュアルにSTLとか
STLをカジュアルとか呼ぶ辺り、最近のC++界隈は
「流行に流されて自分で考えることを放棄する」という、かつてJavaの流行に荒らされた時代と
同じ愚を犯してるな、とは思うけどねぇ
C++er憎し、では色々と話がおかしくなるよ

802 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 21:07:47.84 ID:HhTyaKjTd.net]
同じ処理を同じ動作で記述出来ない例

Cの可変長配列
C++の例外処理

803 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 21:09:03.49 ID:pAG2qz7m0.net]
もうアホらしくなって途中離脱したけど
例えば関数内のループで使ってるstd::unique_ptr が遅いからその部分だけ生ポインタに書き換えたら ID:tSRcUD9w0 は何言語で書いたって言うんだろ?
って言うのはちょっと気にはなる
まあまた明後日の長文書くだけだと思うけど w

804 名前:デフォルトの名無しさん [2018/05/13(日) 21:32:59.83 ID:Q+Wg2L410.net]
禿は神。
禿4はバイブル。

805 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 21:41:37.55 ID:AL0mRZz+0.net]
禿5マダー?(tntn

806 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 22:13:01.62 ID:tSRcUD9w0.net]
>>775
> どれだけ逆アセ読んで比較したか・・・・
ならコンパイラ出力コードが手書きアセンブラと比べてどれだけ糞かも知ってるはずだ。
それでその言い方には矛盾を感じるけどね。

> STLをカジュアルとか呼ぶ辺り、最近のC++界隈は
その発言は俺ではないが、
基本的には抽象度を上げるのは簡単にプログラミングする為であって、
「カジュアル」という表現は妥当だ。
Cみたいに全部手でゴリゴリ書く意味なんて無い。
速度が問題ない部分は出来るだけ手抜きすべきだ。STLがそれに適しているのなら使えばいい。

ただ、「STL使わなくてもどうとでもなる奴が手抜きでSTLを使う」のと、
「STLを使わないと何も出来ない連中がSTLを使う」のは全然意味が違う。
とはいえ、俺は後者が前者になるべきだとは思ってない。
ただ、後者ならC++ではなくJavaやC#を使った方が妥当だとは思うが。

君が見落としているのは、STLをカジュアルと呼ぶ連中は、
基本的に、STLを使わずに最速な実装が出来るものの、面倒なので、
「手抜き」を「カジュアル」と言い換えてごまかしているだけだということだ。
連中は君みたいにSTLが無いと何も出来ない馬鹿ではないんだよ。

> C++er憎し、では色々と話がおかしくなるよ
これは違うぞ。俺は無知なくせにデタラメを言い張るゆとりは死ねと思っているだけだ。
ただし、お前が無知のままで死ぬ権利は尊重するので、
有用な情報は書かないようにするが。

807 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 22:14:29.75 ID:VV8A9gRv0.net]
キチガイにさわるな

808 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 22:15:45.94 ID:AL0mRZz+0.net]
密度が低い

809 名前:デフォルトの名無しさん [2018/05/13(日) 22:19:54.88 .net]
>>772
>俺は去るよ。
>俺は去るよ。
>俺は去るよ。
>俺は去るよ。
>俺は去るよ。
>俺は去るよ。
>俺は去るよ。
>俺は去るよ。
>俺は去るよ。
>俺は去るよ。
>俺は去るよ。



810 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 22:28:00.02 ID:AL0mRZz+0.net]
吐いた唾は呑ませんぞ

811 名前:デフォルトの名無しさん mailto:sage [2018/05/13(日) 23:48:52.64 ID:d5CbxlL9M.net]
>>780
> ならコンパイラ出力コードが手書きアセンブラと比べてどれだけ糞かも知ってるはずだ。
爺いは早めに滅びればいいのに

812 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 00:21:52.22 ID:BWBgd2BN0.net]
constexpr+UCS=ニューパラダイムのはずだったんだがなぁ。
コンパイルタイムは夢がある。

813 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 02:44:09.99 ID:xNObD1oN0.net]
昔はライブラリもそんなに充実してなかったしアルゴリズム事典とか読み漁りながら色々自作してやってたけどね
しかしまぁ便利な時代になったもんだ
C言語だと型が変わるだけで使い物にならなくなっていたものが大半だったけど
型に囚われないSTLライブラリは本当に有能だよ
型に囚われない部分は全部インラインになっちゃうけどね

814 名前:デフォルトの名無しさん [2018/05/14(月) 13:39:06.22 ID:0aBfdvZZ0.net]
オンラインになるんか!

815 名前:デフォルトの名無しさん [2018/05/14(月) 13:40:44.68 ID:0aBfdvZZ0.net]
実行可能形式はC++、スクリプトはPython。
これができる大人の選択。

816 名前:デフォルトの名無しさん mailto:sage [2018/05/14(月) 13:48:17.86 ID:mA8jyKTp0.net]
バッチは?

817 名前:デフォルトの名無しさん [2018/05/14(月) 13:56:29.91 ID:0aBfdvZZ0.net]
バッチは他人からパクるので贅沢は言いませぬ。

818 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 20:21:01.90 ID:L6tD5feN0.net]
スタイルについての質問なんですけど、Cの文法で書けるならできるだけCで書いたほうがいいのでしょうか
上司のC++のコードがもうほんとゴリゴリのCって感じで、C++でcharの配列も無かろうよと思ったりするんですよ
確かにその方が分かる人は多くなるかもしれないですけど

819 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 20:32:27.71 ID:tHLzTn7F0.net]
>>792
C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。

C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:

- うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が
安定してるとか移植性があるとかいう奴は、どいつもこいつも大ウソつきで、
もはや笑えるレベルを超えている)

- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の
コードがその素晴らしいオブジェクトモデルに依存していて、直すためには
アプリ全体を書き直さなきゃなんない。

言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。



820 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 20:34:21.22 ID:joZeDATc0.net]
いや別に
C++で問題ない

上司の意図は知らんが
パフォーマンスを考えたコードとか
互換性を考えたコードとか
そういう可能性も
5chの一般的な価値観とは違って
C++っぽいのが良いコードって訳じゃない

821 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 20:36:35.58 ID:joZeDATc0.net]
逆に若者はコストも考えずに安易に汎用コンテナを使ったりと思うことがある

822 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 21:03:22.33 ID:5psId9wb0.net]
ものによるのじゃん?
メモリイメージを意識するならCスタイルの方がきれいにおさまる。

823 名前:デフォルトの名無しさん [2018/05/15(火) 21:09:12.04 .net]
バグを生む可能性が一切ないならCスタイルのほうがいいに決まってる

824 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 21:41:08.24 ID:h7VmA7z3a.net]
c言語って移植性あるの?まともなの?

825 名前:片山博文MZ mailto:sage [2018/05/15(火) 21:41:08.58 ID:NlOsi0K3d.net]
最近のC++は、std::vectorが配列に最適化されるのか? 遅いだろ

826 名前:片山博文MZ mailto:sage [2018/05/15(火) 22:23:39.58 ID:NlOsi0K3d.net]
C++11以降ならstd::array使うけど、覚えることがともかく多い

827 名前:片山博文MZ mailto:sage [2018/05/15(火) 22:26:59.43 ID:NlOsi0K3d.net]
区間チェックしてくれる配列を簡単に指定できると嬉しいの†

828 名前:片山博文MZ mailto:sage [2018/05/15(火) 22:31:58.98 ID:NlOsi0K3d.net]
例えば、[ ]を二重に書くと添字チェックしてくれるとか。どうかな。

int a[[10]];

829 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 22:42:37.30 ID:PNM8l+laM.net]
atじゃだめなんか?



830 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 22:43:36.39 ID:sqV4cudU0.net]
例外投げるインデクサと投げないインデクサ両方ありますから。

831 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 22:46:39.90 ID:IhUmYIjB0.net]
プロパティONにするとチェック有効で

832 名前:デフォルトの名無しさん mailto:sage [2018/05/15(火) 22:46:50.65 ID:IPNyvhtL0.net]
>>802
オブジェトCを彷彿させるので嫌です

833 名前:デフォルトの名無しさん mailto:sage [2018/05/16(水) 03:32:46.81 ID:gRCAgj/W0.net]
>>802
attributes構文と紛らわしい。

834 名前:デフォルトの名無しさん [2018/05/16(水) 23:25:18.23 ID:cmH84vOv0.net]
arrayはなんで[]でチェックしてくれないの

835 名前:はちみつ餃子 mailto:sage [2018/05/16(水) 23:28:49.70 ID:axtQyUCZ0.net]
ゼロコストの原則

836 名前:デフォルトの名無しさん [2018/05/17(木) 02:43:52.94 ID:vEqyw0xg0.net]
C++のコストの大部分は例外に起因するらしい。
Cでコンパイルできるコードであっても、C++としてコンパイルするとバイナリが肥大化する。
その原因は例外。

837 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 07:10:31.59 ID:AhjFsLsi0.net]
x86-64だとゼロコストだよ

838 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 08:34:28.77 ID:FVFi5bM10.net]
どこにコストが消えたんだろ
サボってるの?

839 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 09:12:53.49 ID:UhXGat7x0.net]
>>810 要出典。



840 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 14:51:21.43 ID:T9EnGAyld.net]
x86-32だと割り込み発生時に対応出来るように
関数コールの度にスタックに情報を埋め込む

x86-64はこれが不要
割り込み処理がなければコストはかからない

841 名前:デフォルトの名無しさん [2018/05/17(木) 18:56:39.80 ID:vEqyw0xg0.net]
>>813
組み込み開発の株式会社○○みたいなサイトで読んだんだけどな。
なかなかためになる内容だったしブックマークしとくんだった。
見つけたらリンクくれ。

842 名前:デフォルトの名無しさん [2018/05/17(木) 18:58:28.25 ID:vEqyw0xg0.net]
俺の見解では、例外にコストが割かれるなら、それは必要なコストだと思うんだよな。

843 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 19:43:22.14 ID:WDNJ9RfY0.net]
元記事消えてるっぽいからアーカイブだけど
bytepointer.com/resources/pietrek_amd_x64_primer.htm

Windowsの例外機構がx64ではスタックベースからテーブルベースの通過するだけならゼロコストなものに変わった
ただしバイナリサイズは増える

844 名前:はちみつ餃子 mailto:sage [2018/05/17(木) 19:46:45.63 ID:oI1zc+Au0.net]
>>816
例外を使うならコストがかかるのは当然なんだが、
例外が通過しないかもしれないのにそこかしこで情報を積まないといけないのは良くないってことなんよ。
そんでまあ例外を投げたときだけにコストが生じる方式がいいよねっていう話。

845 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 20:29:27.85 ID:AhjFsLsi0.net]
例外が発生しない時のコストなんてゴミみたいなもんだけどな

846 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 20:30:03.35 ID:AhjFsLsi0.net]
イヤなら64bitで組みなさい

847 名前:デフォルトの名無しさん [2018/05/17(木) 20:38:19.60 ID:vEqyw0xg0.net]
64ビット化するとサイズが1.5倍になるらしいけどな。

848 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 20:40:58.24 ID:AhjFsLsi0.net]
今時コードのサイズなんて問題にならんだろ
その代わりに得るものは大きい

849 名前:デフォルトの名無しさん [2018/05/17(木) 21:11:41.72 ID:vEqyw0xg0.net]
1.5倍って40sの可愛い少女が60sのオバはんになるってことではないだろか。
さあどっちか選ぶんだ。



850 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 21:42:32.65 ID:53fi3uKJ0.net]
どうしても対応し続けないといけない32bitのレガシーデバイスがあるなら頑張って
そうじゃなけりゃもう32bitなんて捨てろ

851 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 21:43:14.24 ID:egaCGTtIM.net]
>>823
それ得るもの無さすぎないか?

852 名前:デフォルトの名無しさん [2018/05/17(木) 21:57:59.98 ID:vEqyw0xg0.net]
60kgのオッサンになるよりはいいだろ。

853 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 22:02:48.61 ID:/ukQRMvg0.net]
32bitがレガシーだあ?
どこで吹き込まれたか知らんが
騙されやすいやつだな

854 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 22:20:15.79 ID:yYAGBjqQ0.net]
クラスのconst配列メンバをコンストラクタで初期化するにはどうしたらいいでしょうか?

class A
{
 const double array[];

 void A( double &temp[] ) : array(temp)
 {
 }
};


これはコンパイルでエラーが出てダメでした

855 名前:デフォルトの名無しさん [2018/05/17(木) 22:32:37.31 .net]
>>828
できないからあきらメロン

素直にconst外してアクセサで制御するか、vector使うかしとけ

テンプレートとかを駆使して無理に実現しようと試みるのはいかにも頭が悪いし時間の無駄

856 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 22:33:23.35 ID:MPVDtJCy0.net]
constの問題というよりサイズが決まってないからダメなんじゃないの?

857 名前:デフォルトの名無しさん [2018/05/17(木) 22:34:24.00 .net]
ここ3年ほど32bitの組み込み機器に触ったことない

858 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 22:37:16.99 ID:53fi3uKJ0.net]
今はほとんど64bitの上で無理矢理32bit動かしてるんだよ
ネイティブ32bitCPUなんて化石

859 名前:デフォルトの名無しさん mailto:sage [2018/05/17(木) 22:51:21.67 ID:yYAGBjqQ0.net]
>>829
了解です、constは諦めマスカット

>>830
どんなサイズの配列が来るかはコンストラクタが呼び出されるまでわからないんで
サイズは未定にしておきました



860 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 17:13:18.87 ID:8ieomEvbM.net]
vc++のマルチコアのオプ

861 名前:ティマイズなんて甘々だから余裕で
勝てるけどなぁ。
あんなのに負ける人もいるって、世の中広いなぁ(棒)
[]
[ここ壊れてます]

862 名前:771 mailto:sage [2018/05/18(金) 18:23:15.07 ID:G5mHfuQa0.net]
アホだろお前

863 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 18:33:25.05 ID:pNV6CZfO0.net]
そりゃあ頑張れば勝てるだろう
コーディングコストと可読性の犠牲に見合うほど速くなるかどうかは別問題だがね

864 名前:771 mailto:sage [2018/05/18(金) 18:57:13.66 ID:jCVxhDbN0.net]
VCもそうだけど大体のコンパイラは並列化や自動ベクタライズは強くないと思う
古くからある機能とそうでないものでは最適化に差が出るのは当然
だからこそSIMD使うときはみんなイントリンシック命令使ってるのであって

865 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 20:11:41.99 ID:Xj+Uy2RAd.net]
>>834て誰に対してのレス?

866 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 21:20:25.60 ID:TsUe9Yho0.net]
>>828

template<std::size_t N>
class A {
public:
const double array[N];

template<typename ...ARGS>
A( ARGS&&... args ): array{std::forward<ARGS>(args)...} {}
};

template<typename ...ARGS>
inline auto make_A( ARGS&&... args ) -> A<sizeof...(args)>
{
return A<sizeof...(args)>(std::forward<ARGS>(args)...);
}

auto a{ make_A( 1.0, 2.0 ) };

こんな感じだろうか。
要C++11以降。

>>どんなサイズの配列が来るかはコンストラクタが呼び出されるまでわからないんでサイズは未定にしておきました
要素数が決まってないとコンパイル時に困るので、テンプレートクラスにしちゃったけれど…

867 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 22:05:36.49 ID:TsUe9Yho0.net]
あーいや、 >>828 は配列を渡して初期化したいのか…
↑じゃだめだ

だいぶ別物になっちゃった。
ttps://wandbox.org/permlink/gUlWoKLb3QfigsQk

868 名前:デフォルトの名無しさん mailto:sage [2018/05/18(金) 22:33:37.26 ID:G5mHfuQa0.net]
参考にしてみた
https://wandbox.org/permlink/3asRA3QSPQXmmn8l
C++17ならヘルパー不要にはなる・・・(コンストラクタに与えた引数から推定
けどどっちにしても配列数可変にはできない

ていうか配列の参照とか初めて使ったw

869 名前:デフォルトの名無しさん mailto:sage [2018/05/19(土) 00:03:26.14 ID:9PVep4LN0.net]
>>828
C++14のinteger_sequence使ってみた

#include <iostream>
#include <utility>

template <size_t N>
class A
{
const double array[N];
public:
template <size_t... I>
A(const double (&temp)[N], std::index_sequence<I...>) : array{temp[I]...}
{
for (auto x : array) std::cout << x << std::endl;
}
A(const double (&temp)[N]) : A(temp, std::make_index_sequence<N>()){}
};

int main()
{
double t[] = {1.1, 2.2, 3.3};
A<sizeof(t)/sizeof(t[0])> a(t);
//A a(t); // C++17
}



870 名前:デフォルトの名無しさん mailto:sage [2018/05/19(土) 00:10:45.61 ID:WRHfxyyT0.net]
糞面倒だな

871 名前:デフォルトの名無しさん mailto:sage [2018/05/19(土) 00:15:37.45 ID:VIvIbG0Fa.net]
アンチパターンを生み出すための新機能が次々出てくるのがc++だ!

872 名前:デフォルトの名無しさん mailto:sage [2018/05/19(土) 00:33:17.81 ID:WRHfxyyT0.net]
こういうのからiostreamみたいになってゆくんだろうな

873 名前:デフォルトの名無しさん mailto:sage [2018/05/19(土) 03:41:10.01 ID:BMt6S/TK0.net]
つか引数にconst double(&temp)[]って何だと渡せるのこれ
()ないとエラー出るし

874 名前:デフォルトの名無しさん mailto:sage [2018/05/19(土) 06:54:38.61 ID:KlOWaW480.net]
何も渡せないよ
配列数のない配列型はどんな文脈でも不完全型だからその型のオブジェクトは存在し得ない

875 名前:デフォルトの名無しさん mailto:sage [2018/05/19(土) 07:39:54.12 ID:03NPLOb40.net]
>>842
VS2017 15.7.1のVCのReleaseモードだとtemplateの部分が赤の下波線になるな
Debugモードにするとなぜか消える
そしてReleaseモードはエラーが出ているのにコンパイルして実行可能
バグじゃね

876 名前:はちみつ餃子 mailto:sage [2018/05/19(土) 12:37:22.83 ID:WMhjioR90.net]
>>847
仮引数として表れる場合はポインタに調整されるんじゃなかったっけ?

877 名前:デフォルトの名無しさん mailto:sage [2018/05/19(土) 13:11:36.50 ID:KlOWaW480.net]
配列型はね
配列の参照型はされない

878 名前:デフォルトの名無しさん mailto:sage [2018/05/21(月) 09:24:48.82 ID:SHQ/MEmo0.net]
引数で渡す場合は配列自体が参照型だもんな

879 名前:デフォルトの名無しさん mailto:sage [2018/05/21(月) 21:45:00.90 ID:SySmX4Pj0.net]
配列への参照ってのはあるんだけどね
template <typename T, int N>
N size(T (&)[N]) { return N; }



880 名前:デフォルトの名無しさん mailto:sage [2018/05/21(月) 21:45:22.62 ID:SySmX4Pj0.net]
あ、ミスった
わかる人笑ってw

881 名前:デフォルトの名無しさん mailto:sage [2018/05/22(火) 10:34:44.57 ID:QHYj3MXfM.net]
>>848
> バグじゃね
未定義ならコンパイルできて実行できると言うのも規格に準拠してる正しい動作

882 名前:デフォルトの名無しさん mailto:sage [2018/05/22(火) 17:07:12.03 ID:CbgK21am0.net]
>>854
見当違いのレスだな
DebugとReleaseでエディタの動作が首尾一貫してないって言ってるんだがな
15.7.2が来たから入れてみる

883 名前:デフォルトの名無しさん mailto:sage [2018/05/22(火) 17:37:39.23 ID:LzyusK+ZM.net]
>>855
普通の知能を持ってたら
> コンパイルして実行可能
に突っ込まれてることぐらいわかるだろうに...

884 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 09:57:56.51 ID:NT2O+rqe0.net]
>>856
15.7.2にしたらReleaseでも赤い波線出なくなったぞ
エディタのバグが直ったようだ

885 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 10:14:09.85 ID:2zsXYckB0.net]
>>848の3行目は無かったことにすると

886 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 10:39:06.93 ID:NT2O+rqe0.net]
だから「エディタの」バグと書き忘れただけなのにお前らしつこいな
DebugモードでもReleaseモードでもコンパイルして実行できてたんだから

887 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 12:24:31.22 ID:fJYH1ZEbM.net]
書き忘れとか知らんがな w
そもそもエディタのバグと言うなら三行目は元々不要
余計なことを書いて突っ込まれるとか低能にありがちな行動ってだけ

888 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 12:33:07.54 ID:8Hna4W5Ya.net]
>>859
気にするな。俺には>>854の方がよほど的はずれなことを言ってると思うよ。

889 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 12:40:43.11 ID:fJYH1ZEbM.net]
>>861
>>856
同じようなレスを書いてループさせるのも低能にありがちな行動



890 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 13:02:27.39 ID:nSCJSr52M.net]
エラーの話なのになぜか未定義とか言い出す奴が

891 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 15:37:22.12 ID:fJYH1ZEbM.net]
未定義の意味を理解してないなら絡んでこない方がいいぞ

892 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 17:20:05.74 ID:CpOh1zRO0.net]
エラー
警告
未定義
不適格

混同するやつが後を絶たないな

893 名前:デフォルトの名無しさん [2018/05/23(水) 19:15:29.66 ID:Au5e7VGg0.net]
僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方
役に立つかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

V9EWM

894 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 21:13:20.83 ID:CpOh1zRO0.net]
しょーもね

895 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 21:13:21.12 ID:fJYH1ZEbM.net]
この文脈でエラーとか警告とか言い出す時点でアホ丸出しなんだが...w

896 名前:デフォルトの名無しさん mailto:sage [2018/05/23(水) 22:07:04.14 ID:lbYCZF160.net]
VisualStudioはインテリセンスとコンパイルに使うコンパイラが違う
ちょっと設定変えると、とてつもなくエラーが出るのにコンパイルは通るという事態は稀に良くある

897 名前:デフォルトの名無しさん mailto:sage [2018/05/24(木) 12:25:45.78 ID:hqF4m+XgM.net]
>>838
>>771

898 名前:デフォルトの名無しさん mailto:sage [2018/05/24(木) 23:58:30.63 ID:XccjINB00.net]
あるコンテナaとコンテナbを連結?するようなクラス(イテレータ)を作りたいんだが

イメージとしてはa.begin()からa.end()-1までいったら次はb.begin()になるようなやつを思い浮かべてるんだけど

どんな風につくればよいかアドバイスください

899 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 00:18:38.25 ID:HgmGhgcw0.net]
>>871
concat_iteratorでググるとそれっぽい実装がチラホラ



900 名前:デフォルトの名無しさん [2018/05/25(金) 10:18:09.43 ID:SC+wi2VoM.net]
C++で2Dのwindowsで動くゲーム作ろうと思っているのだけど、ライブラリって何使えばいいんだ?

901 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 10:18:58.21 ID:AT66E0O7M.net]
GDI

902 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 11:33:06.12 ID:JXMMrzE70.net]
direct2d

903 名前:デフォルトの名無しさん [2018/05/25(金) 12:11:02.95 .net]
Unity

904 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 12:19:23.12 ID:lIIOH/4a0.net]
Opengl

905 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 12:52:26.94 ID:s00mTA6Oa.net]
DirectX Tool Kit

906 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 14:11:55.60 ID:7mkguDclM.net]
cairo

907 名前:デフォルトの名無しさん [2018/05/25(金) 18:33:18.15 ID:vSqqKkie0.net]
いっぱいあるなー、一通り試してみようかな

908 名前:放置された蟻人間 mailto:sage [2018/05/25(金) 18:37:43.90 ID:mtapFpQed.net]
全部は時間的に無理。

909 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 19:06:13.22 ID:O4zlrz7ka.net]
DirectX Tool Kit一択だとおもうが



910 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 19:16:41.38 ID:BiCg0uer0.net]
OpenGLなんてのは?

911 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 19:17:34.72 ID:el+ngQt20.net]
windowsに限定するならopneGLにする意味は薄い

912 名前:デフォルトの名無しさん [2018/05/25(金) 23:32:47.23 ID:vSqqKkie0.net]
DirectX tool kit なるものは一般的なDirectXの上位互換みたいな捉え方でおk?

913 名前:デフォルトの名無しさん mailto:sage [2018/05/25(金) 23:41:23.37 ID:9e9u/b+G0.net]
>>882
よこからだけど、これ面白そう。

914 名前:はちみつ餃子 mailto:sage [2018/05/26(土) 01:45:05.97 ID:r5N0xqhb0.net]
Siv3D とかも楽に使えると思う。 (3D という名前がついてるけど 2D もいける)

915 名前:デフォルトの名無しさん mailto:sage [2018/05/26(土) 09:49:22.16 ID:Gw/MbzDj0.net]
今の時代なら cocos 2d とかモバイルでも使えるライブラリ使った方がいいんじゃないのか

916 名前:デフォルトの名無しさん [2018/05/26(土) 10:01:48.35 ID:KfOwUuVld.net]
c++ならアンリアルエンジンで行こうぜ

917 名前:デフォルトの名無しさん mailto:sage [2018/05/26(土) 15:38:59.11 ID:dTnlF+1t0.net]
あれESCキーが消えるから…

918 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 08:17:20.26 ID:kgP2LOmLa.net]
string::size_type についてですが、

size_type の前についている

「string::」

というのは何ですか?

919 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 08:20:28.98 ID:kgP2LOmLa.net]
名前空間ではないようですし。



920 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 08:28:38.63 ID:HMjaHK3IM.net]
静的メンバ関数
でぐぐれ

921 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 09:38:09.06 ID:kgP2LOmLa.net]
>>893

ありがとうございます。

string::size_type は companion type というものらしいのですが、
この companion type とは何でしょうか?

922 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 12:33:02.70 ID:WLsT9puy0.net]
メンバ関数の引数や戻り値、メンバ変数などで使用するためにクラススコープで定義された型のこと

クラス(この場合はstd::string)を利用する側は、
実際にはその型がなんであるかを知る必要なく
文字列のサイズの型としてstring::size_type を用いることができる

参考
https://stackoverflow.com/questions/41471741/string-companion-types

923 名前:デフォルトの名無しさん [2018/05/29(火) 13:47:00.51 ID:kgP2LOmLa.net]
>>895

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

924 名前:デフォルトの名無しさん mailto:sage [2018/05/29(火) 23:46:46.84 ID:vO9YU0hS0.net]
std::threadでサブスレッドで処理をしているのですが、処理をキャンセルするためthreadをdetachすると
メモリを破壊しているようで全然別の箇所で色々なエラーが出てきます。system_errorは送出されていません。
サブスレッドではnewでのリソース確保もしていないので理由がわからないです。

detachする際にはjoinableである以外に条件があるのでしょうか。

925 名前:デフォルトの名無しさん [2018/05/29(火) 23:59:57.19 ID:6Y/6D3P7M.net]
>>897
スレッドローカル記憶域とか破棄されたあとにアクセスしてんじゃないの?

926 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 00:33:26.79 ID:4+P0NcT60.net]
std::threadのdetachってスレッドを手放すだけでキャンセルはしないのでは
ラムダ式で処理を渡してるなら、ローカル変数の参照キャプチャとかしてるない?

927 名前:デフォルトの名無しさん [2018/05/30(水) 00:33:44.46 ID:D8xt/f/p0.net]
detachしてもスレッドは動き続けますが。

928 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 00:56:37.13 ID:OvmXW6ID0.net]
一般にスレッドのキャンセルは難しいので適当に処理を終わらせてjoinするのが良いも思う

929 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 01:10:14.80 ID:K2528e3P0.net]
https://ideone.com/3LDXGx
質問です。定期的に同じ関数をスレッドで起動するクラスを作りました。
んでコード中のここ無駄って書いてある行を削除する方法はありませんか。
開発はVCでやってますが、GCCでも通ればいいなーと思っています。



930 名前:897 mailto:sage [2018/05/30(水) 02:51:38.91 ID:gP4Z92jH0.net]
すみません。言葉足らずでした。
メインスレッド:GUI、サブスレッド:既存のライブラリでデータ補間の重い処理
を担当していて、途中でデータ補間パラメータを変更したくなった場合
キャンセルボタンを押してやり直す、という処理を考えています。
CPUは複数コアあるのでサブスレッドが走り続けてリソース開放が遅れるのは
構わないのですがjoinするとそこで処理終了まで待ってしまうのでdetachしたいわけです。重い処理のループの中にキャンセル用フラグでも用意できればキャンセル通知後
ループを抜けて速やかにjoinするところまで到達させる等の方法があるのですが、
既存ライブラリなのでそうはいかず諦めてdetachしようと考えています。
そのまま走り続けるだけだから結果を回収せずほっておけば良いのかと思ってましたが
甘かったみたいです。
>>898
thread_localは使っていないです。
>>899
アドバイスありがとうございます。関数オブジェクト作ってキャプチャは使っていないです。
>>901
スレッドを平和理に終了させる方法はなさそうなのでdetachできなければ諦めてjoinするしかなさそうですね…

とりあえず最小の再現例を作ってみることにします。

931 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 09:53:15.07 ID:eD7a+sCF0.net]
重い処理の方を別プログラムのプロセスにしちゃって止めるときはブチ殺すのがシンプルで良さそうに見える

932 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 17:43:48.31 ID:K2528e3P0.net]
>>903
async つかえ。
wait_forっていう関数がプロミスにある。

933 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 17:44:50.87 ID:K2528e3P0.net]
>>902
たのんますー。

934 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 17:50:39.57 ID:K2528e3P0.net]
基本的にstd::threadでキャンセルは不可能。
自分でそういう機構を汲んでやらないといけない。
whileの実行をキャンセルするbool変数つっこむとか。
それでもクリティカルパスの実行は避けられない。

935 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 18:55:49.81 ID:DJsvI6z80.net]
強引にスレッドを殺すと、
そのスレッドが確保してたリソースが解放されないかもしれないぞ
メモリであったりセマフォだったりハンドルだったり

ちゃんと終了処理を追加しないとダメだよ

936 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 19:05:49.61 ID:EimB82cz0.net]
そのスレッドが使用するメモリ等のリソースを全て
スレッド終了まで保持していても

>>897
>メモリを破壊しているようで全然別の箇所で色々なエラーが出てきます。system_errorは送出されていません。

となるなら、そもそもそのライブラリがスレッドセーフじゃないのかもしれない。

>>904式に別プロセス化するのが一番なのかもね

937 名前:デフォルトの名無しさん mailto:sage [2018/05/30(水) 22:01:02.21 ID:K2528e3P0.net]
ぷぅうううううううううりいいいいいいいぃいいいいいいいいいずへーーーーーーーるぷみーーーーーーーーーー。

938 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 16:11:24.94 ID:W0WQ5cWo0.net]
関数の中にif(cancel)return;みたいなのを大量に仕込んで外からフラグを立てて止めろ

939 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 19:02:31.60 ID:OT8Sfmwc0.net]
基本的にはフラグで止めるか別プロセスで実行するのが定石だが
質問者は

>CPUは複数コアあるのでサブスレッドが走り続けてリソース開放が遅れるのは
>構わないのですがjoinするとそこで処理終了まで待ってしまうのでdetachしたいわけです。

と言ってるからなぁ



940 名前: mailto:sage [2018/05/31(木) 20:27:20.65 ID:4k9lsrlf0.net]
join なんて、カラクリが良く分からないものを、よく使う気になるなぁ
私なら、チャイルドプロセスが自爆するように、陽に記述するなぁ

941 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 20:40:15.15 ID:nmebeT/e0.net]
joinが嫌ならdetachすればいいのよ
パンがなければお菓子をたべればいいのよ

942 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 20:53:09.91 ID:VgZC2OSf0.net]
世の中には信じられないメンタリティの人がいるもんだなあ

943 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 21:03:58.91 ID:3a+XHa0i0.net]
join のカラクリは何も難しいことないと思うが

944 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 21:13:34.61 ID:nmebeT/e0.net]
標準ライブラリが嫌ならpthread使えばいいのよ

945 名前:897 mailto:sage [2018/05/31(木) 21:49:57.28 ID:VY6h/Th40.net]
いろいろアドバイスありがとうございます。
どうもdetachした後に局所変数が確保されるとスタックを破壊してしまうようで、
局所変数を確保する前に>>911氏のいうようにif(cancel)return;入れるとLinuxでは落ちなくなりました。
ですが、windowsでは改善せず諦めました。atomicにするのものも面倒ですし。

結局キャンセルするときは結果を回収せず、さらに別スレッド立ち上げてjoinすることで
メインスレッドのGUIに制御が戻るようにしました。長期的には別プロセス化するしかなさそうですね。
ありがとうございました。

946 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 21:53:20.51 ID:TwfgGFWOM.net]
> 既存ライブラリなのでそうはいかず
って書いてあるのに>>905,>>907-908,>>911とかバカなら黙っとけよ...

947 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 22:35:57.56 ID:EV/maKH/0.net]
913はスレッドを自爆させた後joinしないのであろう…

948 名前:デフォルトの名無しさん [2018/05/31(木) 22:51:40.57 .net]
子スレッドが一つならjoinで待っててもいいけど、複数個になったら無限ループで待つよね

949 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 22:52:12.55 ID:EV/maKH/0.net]
ていうか「重い処理かつ終了に時間が要するスレッド」複数個を所有するサーバみたいなスレッドを一発噛ませて、
パラメータを変えたくなったら「現行スレッド停止」と「新しいパラメータでのスレッド起動」をサーバに対して指令するつくりにすれば
良い
この場合は「重い処理かつ終了に時間が要するスレッド」が終了するまで誰も待つ必要はなく(※サーバ終了時は除く
、サーバみたいなスレッドは、クライアントから「新しいパラメータでのスレッド起動」コマンドを受けたときおもむろに
「死んでる(再利用できる)スレッドはどれかいな〜、」とタイムアウト0秒のjoinでポーリング式にサーチすれば良い

現行スレッドが死ぬまでの間現行スレッドと新たに起動するスレッドが並列に動くことになるが
>CPUは複数コアあるのでサブスレッドが走り続けてリソース開放が遅れるのは 構わない
ということですしおすし、



950 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 22:56:14.51 ID:EV/maKH/0.net]
>>921
ウィンドーズならWaitForMultipreObjects()とかその亜種で複数の終了待ちができうる
そうでなくともイベントフラグの同時待ちはだいたいどんなマルチタスクOSでもできるから
それを使って類似のしくみを作れうる、。

951 名前:デフォルトの名無しさん mailto:sage [2018/05/31(木) 23:21:33.93 ID:i2WXWbd70.net]
>>923
できうる、作れうるって日本語的におかしいだろう

952 名前:デフォルトの名無しさん [2018/06/01(金) 04:04:16.74 ID:p3jBadVq0.net]
ウインドーズとか何か別物感あるし、multipleのスペルもおかしいし大丈夫か

953 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 04:08:40.92 ID:ampOWGNn0.net]
色々なところで糞が露呈している
それがWindows

954 名前:はちみつ餃子 mailto:sage [2018/06/01(金) 04:11:32.11 ID:uW2rQW//0.net]
デザインとしては Windows の方が現代的なんだけど、
色んなものが POSIX を基本にしたデザインになってるから噛み合わないんよなぁ。

955 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 04:16:04.83 ID:ampOWGNn0.net]
POSIXに準拠できないWindowsがどうかしている

956 名前:はちみつ餃子 mailto:sage [2018/06/01(金) 04:22:16.25 ID:uW2rQW//0.net]
>>928
昔は POSIX 準拠にしてたよ。
アメリカの政府が採用するのに POSIX を要求してたみたいで、仕方なくやったって話。
だけど、基本的なモデルが違うものに API だけ接ぎ木してもなぁ。

957 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 04:43:45.31 ID:SICoZSIN0.net]
windowsでpthread使うたびにトラブル起こってつら

958 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 08:14:44.74 ID:WJ5uQBEIM.net]
>>921
他に条件があるならともかく、普通にjoinで待てばよくね?

959 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 08:27:54.49 ID:WJ5uQBEIM.net]
>>922
joinしたら再利用できないだろ



960 名前:デフォルトの名無しさん [2018/06/01(金) 08:30:22.24 .net]
>>931
別に、joinで済むならjoinでいいんじゃね

961 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 09:15:20.19 ID:oHKnNuZr0.net]
キャンセルしたくなるほど長い処理ならスレッドキューイングする利点はない
もちろんしたいならしてもいい

962 名前:デフォルトの名無しさん [2018/06/01(金) 09:35:53.16 ID:uCsHgk1n0.net]
C++を使うなら、Windowsでいいんじゃないの。
Clang、gcc、clと主要なコンパイラが動く貴重な環境だし。
文書を残さないといけないからアプリも必要。
図を描くのにvimでSVG書くって人もいるけど、流石にそれは労力の使い方を間違えてる。

963 名前:デフォルトの名無しさん [2018/06/01(金) 10:01:00.93 ID:oDn7ey18M.net]
サブスレッドでjoinして結果を使わない、というのとデタッチするのとどう違うんやろな。デタッチってなんのメリットあるんやろか。

964 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 10:15:36.25 ID:oHKnNuZr0.net]
自分で書いてる通り結果を使わなくて終了も待ちたくないなら join せずデタッチ。
メリットはリソース(スレッドハンドルなど待ち合わせ用リソース)の自動的な解放くらいか。

965 名前:デフォルトの名無しさん [2018/06/01(金) 11:41:29.12 ID:sIQxQP9sa.net]
連結リストのクラス list があります。
addFirst
removeFirst

などのメンバ関数があります。

この list を継承して、 stack クラスを作ります。

stack クラスにはメンバ関数 push と pop があります。

push の中で addFirst を呼んでいます。
pop の中で removeFirst を呼んでいます。

stack クラスのインスタンスからは、 list クラスの addFirst, removeFirst などを
利用不可としたいのですが、どうすればいいのでしょうか?

: public list と継承するともちろんダメです。
: private list と継承すると push の中で呼んでいる addFirst が使えなくなってしまいます。

どうすればいいのでしょうか?

966 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 11:47:52.19 ID:1LiDvq+rd.net]
protect

967 名前:デフォルトの名無しさん [2018/06/01(金) 11:55:31.26 .net]
friend

968 名前:デフォルトの名無しさん [2018/06/01(金) 11:55:48.39 ID:uCsHgk1n0.net]
・stack : protected listとして、必要なメンバをstackで明示的に公開する。
  ・listとstackのポインタに互換性がなくなる。

969 名前:デフォルトの名無しさん [2018/06/01(金) 11:58:45.22 ID:uCsHgk1n0.net]
・assert、throw等で警告するだけのaddFirst、removeFirstをstack側に作りオーバーライドし、規約で使うなと言っておく。
  ・非常にダサい。



970 名前:デフォルトの名無しさん [2018/06/01(金) 12:00:33.78 ID:uCsHgk1n0.net]
・基底クラスbasic_listを設け、そこからlistとstackを別に派生する。

971 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 12:12:54.27 ID:SICoZSIN0.net]
>>935
釣りか?
MSYSがあるからなんとか我慢して作業できるが
仕事以外でそんな苦痛を受けながらプログラミングなんかしたくはない

972 名前:デフォルトの名無しさん [2018/06/01(金) 12:31:43.05 ID:uCsHgk1n0.net]
>>944
wslでおk。

973 名前:デフォルトの名無しさん [2018/06/01(金) 12:33:20.56 ID:uCsHgk1n0.net]
wslを有効にしてコルタナにウブンツと言えばすぐ使えます。

974 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 12:41:08.30 ID:SICoZSIN0.net]
wslでWindowsネイティブなバイナリ作れんの?

975 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 12:43:01.01 ID:Iz+jFShBM.net]
>>944
> 仕事以外でそんな苦痛
でもどんな苦痛なのかは書けない w

976 名前:デフォルトの名無しさん [2018/06/01(金) 12:44:36.05 ID:uCsHgk1n0.net]
さあどうだろ?
Linux側からWindowsのファイルは読めるけど。
環境設定が大変そうだな。
逆にWindows側からLinuxのファイルを直接変更したらだめらしい。

977 名前:デフォルトの名無しさん [2018/06/01(金) 12:47:41.68 ID:uCsHgk1n0.net]
俺のおすすめの使い方は、Windowsバイナリはcl、Linuxバイナリはwsl上のgccで作る。
開発環境はVisual Studio2017、CMakeプロジェクトを使う。
これだけでWindowsとLinux両方対応できる。

978 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 12:51:07.74 ID:SICoZSIN0.net]
>>950
それ良さそうだな
今度試してみる

979 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 13:01:33.50 ID:sIQxQP9sa.net]
>>939-943

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

Macを使っている人はいませんか?
コンピュータサイエンティストって大抵Macのノートパソコンを使っているイメージがあります。



980 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 13:11:39.88 ID:pUOZzX0iM.net]
>>952
mac使ったところでmacしか使えないだけ
本物になりたいならシェアが高いウインドゥスを使え
もしくはLinux

981 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 13:29:21.95 ID:A9MSzynoM.net]
>>944
別に補陀落渡海しても良いのよ

982 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 13:30:34.27 ID:STCtC+aF0.net]
>>952
Macの内部はUnixだから

983 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 16:26:14.37 ID:WJ5uQBEIM.net]
>>952
念の為、標準ライブラリにlistもstackもあるからね。
あと標準ライブラリのlistは継承して使えるように設計されてないからね

984 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 18:47:58.65 ID:U3fjUVmpd.net]
リスト構造のスタックなんて簡単なんだからゼロから作っちゃえば?

985 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 18:52:33.22 ID:U3fjUVmpd.net]
push pop size
copy move swap constructor destructor
くらいでしょ使うの
片方向でもいいだろうし

986 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 19:38:34.27 ID:nSTFCyDP0.net]
stackはlistではないし継承は間違ってるわな

987 名前:デフォルトの名無しさん [2018/06/01(金) 19:48:21.87 ID:uCsHgk1n0.net]
俺、リストツリーっていうの考えたんだけど、聞きたい?

988 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 19:58:07.59 ID:U3fjUVmpd.net]
>>959
頭が硬いやつはソフトに向いてない

989 名前:デフォルトの名無しさん [2018/06/01(金) 20:19:59.69 ID:sIQxQP9sa.net]
>>953
>>955

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

>>956-959

実は、

最近出版された岩沼宏冶他著『データ構造とアルゴリズム』(コロナ社)
という本にスタックとキューのそのような実装が書いてあるんです。
まず連結リストをテンプレートを使って実装しています。

その関係で質問しました。

まえがきに「本書の前半ではC++言語での実装コードを示すが、これは
初学者によいコードを読ませることが目的であり、Art of Programmingに
つながるような解説を付記するように努力する。」と書いてあります。



990 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 21:27:36.17 ID:naL+ZRGN0.net]
下手が伝染るから、クヌースを取り寄せしたほうが良いぞ

991 名前: mailto:sage [2018/06/01(金) 21:36:56.16 ID:/qAuBE/I0.net]
>>938
私なら委譲を使います

992 名前:デフォルトの名無しさん mailto:sage [2018/06/01(金) 21:52:15.80 ID:eT4/jjIPM.net]
>>933
どんな用途を想定してるの?

993 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 01:50:36.43 ID:z1beHaLa0.net]
>>965
横レスだけど複数スレッドがあったとき
・どれかの終了を待つならjoinでは無理
・全ての終了を待つなら適当な順でjoin
というだけのことでは

994 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 07:25:22.85 ID:uqsytqRM0.net]
>>938
そういうことをやるなっていうのが「リスコフの置換原則」

995 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 07:40:27.42 ID:SH+PTz7E0.net]
「外から見えるインターフェースが変わらなければ
内部の具体的な実装がまったくの別物に変わっても使うのに支障ない」


996 名前:いうオブジェクト指向のカプセル化だっけ、あのあたりの教材じゃなかろうか。

それと継承のアクセス制御の使い方。
[]
[ここ壊れてます]

997 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 11:23:31.53 ID:SH+PTz7E0.net]
派生クラスのアクセス制御、と書くべきだったかな。
意味は通じると思うけど、用語の使い方に厳しい人もいる故。

998 名前:デフォルトの名無しさん mailto:sage [2018/06/02(土) 13:02:49.13 ID:x6PfuSbY0.net]
>>932
言葉足らずだったスマン
スレッドハンドルの配列があったとして、[i]についてjoinしたら[i]を再利用できる(再びスレッドをcreateしなおせば良い
、の意味

joinせずとも済むやり方もあるが、
(「重い処理かつ終了に時間が要するスレッド」の関数本体をそのままスレッドにするのではなしに、
普段イベントを待ち、イベントが来たら「重い処理かつ終了に時間が要するスレッド」の関数本体を普通にcallし、そいつがreturnしてきたら
 再びイベントを待つ、というループするスレッドとしてwrapすれば良い、等
結局「重い処理かつ終了に時間が要するスレッド」が使っていた資源が開放されたことを論理的に知る必要からは逃れられず、
一番簡単なのがjoinですよという意味で>>922ではjoinと言ったので察してホスイ、

999 名前:デフォルトの名無しさん [2018/06/02(土) 17:26:29.14 ID:RQ4rJlvL0.net]
ほむほむ、ところでgtestとBoost.Testはどっちが良いですかな?



1000 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 18:24:16.97 ID:gfv0Z2yCa.net]
初心者脱出したいから課題くれ

1001 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 20:26:24.96 ID:g8+eu/OT0.net]
>>972
自分でこれまで勉強した範囲で疑問なり興味なり沸いてきて、あれこれコード書いて試して見ようとしたことは無かったの?
もし全くないのならもう諦めた方がいい。

1002 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 23:46:44.76 ID:D70hzHzDd.net]
>>972
純粋な言語部分
プリプロセッサ
標準ライブラリ
特定のOS, 特定のライブラリ
組み込み

どの辺の課題?

1003 名前:デフォルトの名無しさん mailto:sage [2018/06/03(日) 23:58:49.35 ID:/T91IteZ0.net]
「計算機プログラムの構造と解釈」(SICP)を読んで演習課題を解いたら良い

1004 名前: mailto:sage [2018/06/04(月) 19:13:33.43 ID:gbEnuF2j0.net]
>>975
まだ scheme 手習いが終わっていないのです(泣)

1005 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 22:04:43.09 ID:2Ea3o2oY0.net]
リトルインディアン、ビッグインディアンも教えない職場があるんだな。

おっさん、びっくりしたわ。

1006 名前:デフォルトの名無しさん [2018/06/06(水) 22:13:02.59 ID:JW9lzKor0.net]
>>977
周知のこととして扱われているのかもしれませんね。
私は学校で教わりました。

1007 名前:デフォルトの名無しさん [2018/06/06(水) 22:41:41.43 .net]
>>977
インディアンかー
俺も教わった覚えないな

1008 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 23:17:12.31 ID:jNE6zLei0.net]
One little, two little, three little Indians

1009 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 23:33:53.26 ID:m+Bnnm4Z0.net]
エンディアンなのかインディアンだったかいつも忘れる
口語は混ざる



1010 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 23:36:43.24 ID:zexNX0En0.net]
>>979
インディアンは習ったろ

1011 名前:デフォルトの名無しさん [2018/06/06(水) 23:48:14.36 .net]
>>982
ネイティブアメリカンなら習ったけど🙄

1012 名前:デフォルトの名無しさん mailto:sage [2018/06/06(水) 23:48:33.17 ID:Ne6bz6Er0.net]
ガリバー旅行記はいつどこで習うんだろう

1013 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 06:56:59.11 ID:u4DD79290.net]
「リトル・エンディアン」「ビッグ・エンディアン」て用語は
『ガリバー旅行記』が由来、という情報が載ってるサイトで、
主人公が漂着した小人の国、巨人の国のエピソードから…、とか
書いてあるのを見たことがある。ネタだったのかも知れないけど。

1014 名前: mailto:sage [2018/06/07(木) 08:03:30.91 ID:twFjtnTk0.net]
>>985
それはほんと、小人国での卵の割り方にちなみます

1015 名前:デフォルトの名無しさん [2018/06/07(木) 08:17:13.03 .net]
>>986
ニホンゴムズカシイネ^^

1016 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 11:07:30.43 ID:texCzkEwa.net]
>>977
今どきバイトオーダー意識するようなプログラム書くような職場じゃなきゃ教えないよ
アライメントなんかも同様

1017 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 11:22:48.86 ID:W9Xn18jEd.net]
インディアンを教える職場って
どんな職場だよ

1018 名前:デフォルトの名無しさん [2018/06/07(木) 11:49:27.36 ID:ZMsL/8Fsd.net]
だってオラはSEだから

1019 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 12:38:00.08 ID:pGQiQE2u0.net]
SEなら尚更知っておかないと
日本はなんちゃってSEばっかだもんなw



1020 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 13:14:35.77 ID:W9Xn18jEd.net]
SEとインディアンの関係は?

1021 名前:985 mailto:sage [2018/06/07(木) 13:15:06.93 ID:u4DD79290.net]
>>986 調べたら小人同士の戦争の原因なのね。巨人国は関係ないな。
実は空の国の「学者の無意味な論争」の一例だと思い込んでいたんだわ。

>>989 「ウチはCのコーディングスタイルとしてAT&T式を基本とします」
ってところはあるかも知れん。

1022 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 20:44:47.09 ID:BA7hChNz0.net]
>>988
貴様が知る必要はない!

1023 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 20:48:11.43 ID:DJdTp6lo0.net]
何でもネットに繋がらなきゃならないこの時代にhtolやltohを避けて通れるもんなのか?
PHPしか触らないWeb屋ならともかくここC++スレだぞ

1024 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 21:46:11.03 ID:XXEPBZnxM.net]
今時C++と言えどhtol()とかltoh()なんて低レイヤーの関数使うことなんて滅多にないだろ

1025 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 21:50:55.26 ID:gS6wfz1ca.net]
>>995
ソフトウェアがなんでもかんでもネットワークに繋ぐ必要があると思ってるの?ここC++スレだぞ

1026 名前:デフォルトの名無しさん [2018/06/07(木) 22:31:28.79 .net]
C++使うくらいだからXMLとかJSON使うんだろ

1027 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 23:10:47.05 ID:C4iY9p8E0.net]
>>998
utf16はどうしたらいいの?

1028 名前:デフォルトの名無しさん mailto:sage [2018/06/07(木) 23:16:41.18 ID:B+7Xk0Ks0.net]
続きはwebで

1029 名前:1001 [Over 1000 Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 68日 2時間 56分 35秒



1030 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<282KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef