次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512
C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part134
http://mevius.5ch.net/test/read.cgi/tech/1516406742/
このスレもよろしくね。
【初心者歓迎】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
探検
C++相談室 part135
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 5fcb-q1Nq)
2018/03/31(土) 20:20:06.25ID:o3PNwIlC0752デフォルトの名無しさん (ワッチョイ 23b3-pJ79)
2018/05/13(日) 09:51:06.22ID:pAG2qz7m0 >>751
> ただこの定義はもういい。
> 君は間違いを認めないようだし、仮に俺が間違っていたとしても、
> お互いの認識のズレは確認できたのだからそれでいいだろ。
いきなり弱気になってて笑うわ w
> ただこの定義はもういい。
> 君は間違いを認めないようだし、仮に俺が間違っていたとしても、
> お互いの認識のズレは確認できたのだからそれでいいだろ。
いきなり弱気になってて笑うわ w
753740 (マクド FF91-uCqk)
2018/05/13(日) 10:01:51.37ID:ntCzq/+YF 自己解決しました。
仮の名前でファイルを書き出してからリネームすれば書き込み中か書き込み済みか
判定する処理をなくせるみたいでした。
仮の名前でファイルを書き出してからリネームすれば書き込み中か書き込み済みか
判定する処理をなくせるみたいでした。
754デフォルトの名無しさん (スップ Sd03-c79c)
2018/05/13(日) 11:07:48.71ID:Q3HZm9Uhd >>751
コンパイラが変わらない単なる最適化で
C++からCにする
なんて言わないから普通
少なくともエンジニアの会話では無い
簡単にいう場合は「最適化」「チューニング」だし
詳しくいう場合は中身を具体的に言う
頭の悪い文系を騙すのには使えるのかもしれないけど
コンパイラが変わらない単なる最適化で
C++からCにする
なんて言わないから普通
少なくともエンジニアの会話では無い
簡単にいう場合は「最適化」「チューニング」だし
詳しくいう場合は中身を具体的に言う
頭の悪い文系を騙すのには使えるのかもしれないけど
755デフォルトの名無しさん (スップ Sd03-c79c)
2018/05/13(日) 11:09:34.85ID:Q3HZm9Uhd C言語風なコード
と
C言語のコード
全く意味が違う
と
C言語のコード
全く意味が違う
756638 (ワッチョイ 1be7-1eaZ)
2018/05/13(日) 11:24:15.00ID:YEhpfoS10 「C++で書く」→カジュアルにSTLとか使って読みやすく書く
「Cやasmで書く」→キャッシュやSIMDとか低級に考慮してガリガリ最適化する
くらいの軽い気持ちで書いただけなのに紛糾しすぎててワイ将困惑
「Cやasmで書く」→キャッシュやSIMDとか低級に考慮してガリガリ最適化する
くらいの軽い気持ちで書いただけなのに紛糾しすぎててワイ将困惑
757デフォルトの名無しさん (スプッッ Sd03-Je+M)
2018/05/13(日) 12:17:41.91ID:oMdj20B0d 話が長い上にどうでもよすぎる
758デフォルトの名無しさん (ワッチョイ 1b7f-y4OE)
2018/05/13(日) 12:26:54.36ID:yds9udeH0 またいつものキチガイか
759デフォルトの名無しさん (ワッチョイ 4bf0-k37M)
2018/05/13(日) 12:43:30.13ID:AL0mRZz+0 >>756
おまえさんの頭がC++03のまま更新が止まってしまっていることはわかった
おまえさんの頭がC++03のまま更新が止まってしまっていることはわかった
>>759
そう判断した理由は?
そう判断した理由は?
761デフォルトの名無しさん (ワッチョイ 4bf0-k37M)
2018/05/13(日) 12:51:49.36ID:AL0mRZz+0 C++11以後の「低級」を知らんだろ
762デフォルトの名無しさん (ワッチョイ 2368-bFqk)
2018/05/13(日) 13:01:15.34ID:DrlMjc+O0 C++xx
この末尾のへんなナンバリングが施されるようになったのっていつ頃から?
この末尾のへんなナンバリングが施されるようになったのっていつ頃から?
763デフォルトの名無しさん (ワッチョイ 23b3-pJ79)
2018/05/13(日) 14:22:28.62ID:pAG2qz7m0 >>762
元々はC++09を狙ってたらしいから2008年頃じゃね?
元々はC++09を狙ってたらしいから2008年頃じゃね?
>>761
具体的に
具体的に
765デフォルトの名無しさん (ワッチョイ 4bf0-k37M)
2018/05/13(日) 15:27:50.96ID:AL0mRZz+0 >>764
人に聞くのは知らないからだな
人に聞くのは知らないからだな
766デフォルトの名無しさん (ワッチョイ 85b3-k37M)
2018/05/13(日) 15:47:31.87ID:CI2jyTw+0 >>759
STLが03から入ったと思ってんのか
あと
>Cコンパイラってポインタ周りは最適化をかけないから、多分、
>速度差はコンパイラ起因であって
こんなこと言ってる時点でID:PbE4ojLD0の話は聞くに値しない
STLが03から入ったと思ってんのか
あと
>Cコンパイラってポインタ周りは最適化をかけないから、多分、
>速度差はコンパイラ起因であって
こんなこと言ってる時点でID:PbE4ojLD0の話は聞くに値しない
767デフォルトの名無しさん (ワッチョイ 4bf0-k37M)
2018/05/13(日) 16:22:20.14ID:AL0mRZz+0 >>766
あの流れからどうやってSTLが03からという話になったんだ?
あの流れからどうやってSTLが03からという話になったんだ?
768デフォルトの名無しさん (ワッチョイ 059f-YHaA)
2018/05/13(日) 17:44:42.77ID:tSRcUD9w0 >>756
馬鹿につき合ってすまんかった。
少なくとも俺とLinusは君と同じ定義で使ってるよ。俺の認識では世間もそう。
俺はこれでこれまで話が通じなかったことはないから。
おそらくはCをやらずにC++だけやってる世代と、
必ずCをやったうえでC++に進んだ世代の違いだ。
ゆとりだけで閉じてる世界では、彼らの主張する定義なのかもしれん。
ただまあ、話を聞いてる限り、こいつらは色々と無知だし、無知なことに無自覚だね。
まあもういいが。
自分が知らないだけのことをすべて間違いだと断定しているようでは上達しない。
C++erもここまでゆとり化が進んだのは残念だ。
馬鹿につき合ってすまんかった。
少なくとも俺とLinusは君と同じ定義で使ってるよ。俺の認識では世間もそう。
俺はこれでこれまで話が通じなかったことはないから。
おそらくはCをやらずにC++だけやってる世代と、
必ずCをやったうえでC++に進んだ世代の違いだ。
ゆとりだけで閉じてる世界では、彼らの主張する定義なのかもしれん。
ただまあ、話を聞いてる限り、こいつらは色々と無知だし、無知なことに無自覚だね。
まあもういいが。
自分が知らないだけのことをすべて間違いだと断定しているようでは上達しない。
C++erもここまでゆとり化が進んだのは残念だ。
769デフォルトの名無しさん (ブーイモ MM19-ZhOv)
2018/05/13(日) 19:37:46.91ID:5h/P5YlNM 本当に通じていたのかな?
いわゆるフツーの人達は、めんどくさいから適当に話し合わせてテキトーに打ち切るものだが…
いわゆるフツーの人達は、めんどくさいから適当に話し合わせてテキトーに打ち切るものだが…
770デフォルトの名無しさん (ワッチョイ 059f-YHaA)
2018/05/13(日) 20:05:09.29ID:tSRcUD9w0 ついでだからもう少し書いておいてやるよ。
ゆとりC++erが「C++は速い」ということにしたがるのは、C++「言語」以下の解像度がないからだ。
「C++コンパイラさえ使えばおk」になってくれてないと困るからこそ、そこに異常にこだわる。
(他言語でも同様に、低位実装を直感的に推測できない馬鹿はこの傾向がある)
お前らは>>722-723の結果、同じデータ構造で同じアルゴリズムを適用した物に対し、
速度差が出た場合にそれを「言語の差」と言い張るようだが、
それは明確な間違いだ。ただの不勉強でしかない。
実際、それだとそれ以上の最適化は出来ないだろ。
C出身者なら、必要ならasm書いてチューニングすることも出来る。
現在C++は失敗しつつある。
それはRustを見ても明らかだ。以下ページを見てみろ。
https://imoz.jp/note/rust-functions.html
スマポ(キリッな連中にとってはC++よりもRustの方が明らかにいい言語だろ。(後発なので当たり前だが)
C++だけにすがるのは止めとけ。
もうそういう時代じゃないし、C++はそれを満たせる言語ではない。
ゆとりC++erが「C++は速い」ということにしたがるのは、C++「言語」以下の解像度がないからだ。
「C++コンパイラさえ使えばおk」になってくれてないと困るからこそ、そこに異常にこだわる。
(他言語でも同様に、低位実装を直感的に推測できない馬鹿はこの傾向がある)
お前らは>>722-723の結果、同じデータ構造で同じアルゴリズムを適用した物に対し、
速度差が出た場合にそれを「言語の差」と言い張るようだが、
それは明確な間違いだ。ただの不勉強でしかない。
実際、それだとそれ以上の最適化は出来ないだろ。
C出身者なら、必要ならasm書いてチューニングすることも出来る。
現在C++は失敗しつつある。
それはRustを見ても明らかだ。以下ページを見てみろ。
https://imoz.jp/note/rust-functions.html
スマポ(キリッな連中にとってはC++よりもRustの方が明らかにいい言語だろ。(後発なので当たり前だが)
C++だけにすがるのは止めとけ。
もうそういう時代じゃないし、C++はそれを満たせる言語ではない。
771デフォルトの名無しさん (ワッチョイ 85b3-k37M)
2018/05/13(日) 20:17:51.87ID:CI2jyTw+0 別にC++とCの宗教論争に加わるつもりはないが、
お前qsortがstd::sortより遅くなりがちな理由わかってないだろ
アセンブラ使わんでも自分で書きゃCでも同等の速度は出る
(というかVCの最適化にハンドアセンブルで本当に勝てるんか?こいつ)
>CよりもC++の方が速くなるコードの方があり得ないと思うが。
>CのほうがC++より遅いケース出してみろ。ないから。
調べもせずにこんな決めつけを書く低レベルさ以前に
これをC++のスレで書くお前はどう見てもただの荒らしだから。
お前qsortがstd::sortより遅くなりがちな理由わかってないだろ
アセンブラ使わんでも自分で書きゃCでも同等の速度は出る
(というかVCの最適化にハンドアセンブルで本当に勝てるんか?こいつ)
>CよりもC++の方が速くなるコードの方があり得ないと思うが。
>CのほうがC++より遅いケース出してみろ。ないから。
調べもせずにこんな決めつけを書く低レベルさ以前に
これをC++のスレで書くお前はどう見てもただの荒らしだから。
772デフォルトの名無しさん (ワッチョイ 059f-YHaA)
2018/05/13(日) 20:53:01.09ID:tSRcUD9w0 >>771
お前は根本的に勘違いしている。
出発点は自前のコードでもいいが、逆アセンブル結果でもいいんだから、
改善できなくとも、遅くなることはあり得ない。
アセンブラを読めない君らでは、これは無理だ。
そして、遅くなる可能性の方が高いからやらないってのは、
馬鹿な君らなりの対処法としては正しい。
まあ、C++スレではC++マンセーしないと荒らしだ、ってのは理解した。
C++erがそこまで落ちぶれたのは残念だが、俺は去るよ。
お前は根本的に勘違いしている。
出発点は自前のコードでもいいが、逆アセンブル結果でもいいんだから、
改善できなくとも、遅くなることはあり得ない。
アセンブラを読めない君らでは、これは無理だ。
そして、遅くなる可能性の方が高いからやらないってのは、
馬鹿な君らなりの対処法としては正しい。
まあ、C++スレではC++マンセーしないと荒らしだ、ってのは理解した。
C++erがそこまで落ちぶれたのは残念だが、俺は去るよ。
773デフォルトの名無しさん (スップ Sd43-c79c)
2018/05/13(日) 20:57:13.19ID:HhTyaKjTd それぞれの言語の良くある使い方であれば
Cの方が速いコードもC++の方が速いコードも
どちらも存在する
同じ処理を同じように書けば普通は同じ速度
(ただし、一部細かい例外あり)
Cの方が速いコードもC++の方が速いコードも
どちらも存在する
同じ処理を同じように書けば普通は同じ速度
(ただし、一部細かい例外あり)
774デフォルトの名無しさん (スップ Sd43-c79c)
2018/05/13(日) 20:59:07.22ID:HhTyaKjTd 一般的な使い方では
C++の方が開発効率が高く
Cの方がバイナリの性能が高い事が多い
(もちろん逆になる要素もある)
C++の方が開発効率が高く
Cの方がバイナリの性能が高い事が多い
(もちろん逆になる要素もある)
775デフォルトの名無しさん (ワッチョイ 85b3-k37M)
2018/05/13(日) 21:06:47.71ID:CI2jyTw+0 >>772
以前ここに書いたこともあるけど、最近ET+simd(SSE、NEONのイントリンシック)で
ゲーム用の自前の線形代数ライブラリとか作ったんで
>アセンブラを読めない君ら
残念ながらこれは当てはまらないよw
どれだけ逆アセ読んで比較したか・・・・
>C++マンセーしないと
お前が”正しい批判をしてれば”荒れてないんだよ
ついでに言えば、
>「C++で書く」→カジュアルにSTLとか
STLをカジュアルとか呼ぶ辺り、最近のC++界隈は
「流行に流されて自分で考えることを放棄する」という、かつてJavaの流行に荒らされた時代と
同じ愚を犯してるな、とは思うけどねぇ
C++er憎し、では色々と話がおかしくなるよ
以前ここに書いたこともあるけど、最近ET+simd(SSE、NEONのイントリンシック)で
ゲーム用の自前の線形代数ライブラリとか作ったんで
>アセンブラを読めない君ら
残念ながらこれは当てはまらないよw
どれだけ逆アセ読んで比較したか・・・・
>C++マンセーしないと
お前が”正しい批判をしてれば”荒れてないんだよ
ついでに言えば、
>「C++で書く」→カジュアルにSTLとか
STLをカジュアルとか呼ぶ辺り、最近のC++界隈は
「流行に流されて自分で考えることを放棄する」という、かつてJavaの流行に荒らされた時代と
同じ愚を犯してるな、とは思うけどねぇ
C++er憎し、では色々と話がおかしくなるよ
776デフォルトの名無しさん (スップ Sd43-c79c)
2018/05/13(日) 21:07:47.84ID:HhTyaKjTd 同じ処理を同じ動作で記述出来ない例
Cの可変長配列
C++の例外処理
Cの可変長配列
C++の例外処理
777デフォルトの名無しさん (ワッチョイ 23b3-pJ79)
2018/05/13(日) 21:09:03.49ID:pAG2qz7m0 もうアホらしくなって途中離脱したけど
例えば関数内のループで使ってるstd::unique_ptr が遅いからその部分だけ生ポインタに書き換えたら ID:tSRcUD9w0 は何言語で書いたって言うんだろ?
って言うのはちょっと気にはなる
まあまた明後日の長文書くだけだと思うけど w
例えば関数内のループで使ってるstd::unique_ptr が遅いからその部分だけ生ポインタに書き換えたら ID:tSRcUD9w0 は何言語で書いたって言うんだろ?
って言うのはちょっと気にはなる
まあまた明後日の長文書くだけだと思うけど w
778デフォルトの名無しさん (ワッチョイ 55b3-A5aB)
2018/05/13(日) 21:32:59.83ID:Q+Wg2L410 禿は神。
禿4はバイブル。
禿4はバイブル。
779デフォルトの名無しさん (ワッチョイ 4bf0-k37M)
2018/05/13(日) 21:41:37.55ID:AL0mRZz+0 禿5マダー?(tntn
780デフォルトの名無しさん (ワッチョイ 059f-YHaA)
2018/05/13(日) 22:13:01.62ID:tSRcUD9w0 >>775
> どれだけ逆アセ読んで比較したか・・・・
ならコンパイラ出力コードが手書きアセンブラと比べてどれだけ糞かも知ってるはずだ。
それでその言い方には矛盾を感じるけどね。
> STLをカジュアルとか呼ぶ辺り、最近のC++界隈は
その発言は俺ではないが、
基本的には抽象度を上げるのは簡単にプログラミングする為であって、
「カジュアル」という表現は妥当だ。
Cみたいに全部手でゴリゴリ書く意味なんて無い。
速度が問題ない部分は出来るだけ手抜きすべきだ。STLがそれに適しているのなら使えばいい。
ただ、「STL使わなくてもどうとでもなる奴が手抜きでSTLを使う」のと、
「STLを使わないと何も出来ない連中がSTLを使う」のは全然意味が違う。
とはいえ、俺は後者が前者になるべきだとは思ってない。
ただ、後者ならC++ではなくJavaやC#を使った方が妥当だとは思うが。
君が見落としているのは、STLをカジュアルと呼ぶ連中は、
基本的に、STLを使わずに最速な実装が出来るものの、面倒なので、
「手抜き」を「カジュアル」と言い換えてごまかしているだけだということだ。
連中は君みたいにSTLが無いと何も出来ない馬鹿ではないんだよ。
> C++er憎し、では色々と話がおかしくなるよ
これは違うぞ。俺は無知なくせにデタラメを言い張るゆとりは死ねと思っているだけだ。
ただし、お前が無知のままで死ぬ権利は尊重するので、
有用な情報は書かないようにするが。
> どれだけ逆アセ読んで比較したか・・・・
ならコンパイラ出力コードが手書きアセンブラと比べてどれだけ糞かも知ってるはずだ。
それでその言い方には矛盾を感じるけどね。
> STLをカジュアルとか呼ぶ辺り、最近のC++界隈は
その発言は俺ではないが、
基本的には抽象度を上げるのは簡単にプログラミングする為であって、
「カジュアル」という表現は妥当だ。
Cみたいに全部手でゴリゴリ書く意味なんて無い。
速度が問題ない部分は出来るだけ手抜きすべきだ。STLがそれに適しているのなら使えばいい。
ただ、「STL使わなくてもどうとでもなる奴が手抜きでSTLを使う」のと、
「STLを使わないと何も出来ない連中がSTLを使う」のは全然意味が違う。
とはいえ、俺は後者が前者になるべきだとは思ってない。
ただ、後者ならC++ではなくJavaやC#を使った方が妥当だとは思うが。
君が見落としているのは、STLをカジュアルと呼ぶ連中は、
基本的に、STLを使わずに最速な実装が出来るものの、面倒なので、
「手抜き」を「カジュアル」と言い換えてごまかしているだけだということだ。
連中は君みたいにSTLが無いと何も出来ない馬鹿ではないんだよ。
> C++er憎し、では色々と話がおかしくなるよ
これは違うぞ。俺は無知なくせにデタラメを言い張るゆとりは死ねと思っているだけだ。
ただし、お前が無知のままで死ぬ権利は尊重するので、
有用な情報は書かないようにするが。
781デフォルトの名無しさん (ワッチョイ 0550-c79c)
2018/05/13(日) 22:14:29.75ID:VV8A9gRv0 キチガイにさわるな
782デフォルトの名無しさん (ワッチョイ 4bf0-k37M)
2018/05/13(日) 22:15:45.94ID:AL0mRZz+0 密度が低い
783デフォルトの名無しさん
2018/05/13(日) 22:19:54.88784デフォルトの名無しさん (ワッチョイ 4bf0-k37M)
2018/05/13(日) 22:28:00.02ID:AL0mRZz+0 吐いた唾は呑ませんぞ
785デフォルトの名無しさん (ドコグロ MM01-pJ79)
2018/05/13(日) 23:48:52.64ID:d5CbxlL9M786デフォルトの名無しさん (ワッチョイ 0504-Ca5/)
2018/05/14(月) 00:21:52.22ID:BWBgd2BN0 constexpr+UCS=ニューパラダイムのはずだったんだがなぁ。
コンパイルタイムは夢がある。
コンパイルタイムは夢がある。
787デフォルトの名無しさん (ワッチョイ 2334-AkjX)
2018/05/14(月) 02:44:09.99ID:xNObD1oN0 昔はライブラリもそんなに充実してなかったしアルゴリズム事典とか読み漁りながら色々自作してやってたけどね
しかしまぁ便利な時代になったもんだ
C言語だと型が変わるだけで使い物にならなくなっていたものが大半だったけど
型に囚われないSTLライブラリは本当に有能だよ
型に囚われない部分は全部インラインになっちゃうけどね
しかしまぁ便利な時代になったもんだ
C言語だと型が変わるだけで使い物にならなくなっていたものが大半だったけど
型に囚われないSTLライブラリは本当に有能だよ
型に囚われない部分は全部インラインになっちゃうけどね
788デフォルトの名無しさん (ワッチョイ 55b3-A5aB)
2018/05/14(月) 13:39:06.22ID:0aBfdvZZ0 オンラインになるんか!
789デフォルトの名無しさん (ワッチョイ 55b3-A5aB)
2018/05/14(月) 13:40:44.68ID:0aBfdvZZ0 実行可能形式はC++、スクリプトはPython。
これができる大人の選択。
これができる大人の選択。
790デフォルトの名無しさん (ワッチョイ cb81-Iyo3)
2018/05/14(月) 13:48:17.86ID:mA8jyKTp0 バッチは?
791デフォルトの名無しさん (ワッチョイ 55b3-A5aB)
2018/05/14(月) 13:56:29.91ID:0aBfdvZZ0 バッチは他人からパクるので贅沢は言いませぬ。
792デフォルトの名無しさん (ワッチョイ 0508-1KvI)
2018/05/15(火) 20:21:01.90ID:L6tD5feN0 スタイルについての質問なんですけど、Cの文法で書けるならできるだけCで書いたほうがいいのでしょうか
上司のC++のコードがもうほんとゴリゴリのCって感じで、C++でcharの配列も無かろうよと思ったりするんですよ
確かにその方が分かる人は多くなるかもしれないですけど
上司のC++のコードがもうほんとゴリゴリのCって感じで、C++でcharの配列も無かろうよと思ったりするんですよ
確かにその方が分かる人は多くなるかもしれないですけど
793デフォルトの名無しさん (ワッチョイ 6360-bFqk)
2018/05/15(火) 20:32:27.71ID:tHLzTn7F0 >>792
C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:
- うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が
安定してるとか移植性があるとかいう奴は、どいつもこいつも大ウソつきで、
もはや笑えるレベルを超えている)
- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の
コードがその素晴らしいオブジェクトモデルに依存していて、直すためには
アプリ全体を書き直さなきゃなんない。
言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:
- うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が
安定してるとか移植性があるとかいう奴は、どいつもこいつも大ウソつきで、
もはや笑えるレベルを超えている)
- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の
コードがその素晴らしいオブジェクトモデルに依存していて、直すためには
アプリ全体を書き直さなきゃなんない。
言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
794デフォルトの名無しさん (ワッチョイ 0550-c79c)
2018/05/15(火) 20:34:21.22ID:joZeDATc0 いや別に
C++で問題ない
上司の意図は知らんが
パフォーマンスを考えたコードとか
互換性を考えたコードとか
そういう可能性も
5chの一般的な価値観とは違って
C++っぽいのが良いコードって訳じゃない
C++で問題ない
上司の意図は知らんが
パフォーマンスを考えたコードとか
互換性を考えたコードとか
そういう可能性も
5chの一般的な価値観とは違って
C++っぽいのが良いコードって訳じゃない
795デフォルトの名無しさん (ワッチョイ 0550-c79c)
2018/05/15(火) 20:36:35.58ID:joZeDATc0 逆に若者はコストも考えずに安易に汎用コンテナを使ったりと思うことがある
796デフォルトの名無しさん (ワッチョイ 7d7f-7wac)
2018/05/15(火) 21:03:22.33ID:5psId9wb0 ものによるのじゃん?
メモリイメージを意識するならCスタイルの方がきれいにおさまる。
メモリイメージを意識するならCスタイルの方がきれいにおさまる。
797デフォルトの名無しさん
2018/05/15(火) 21:09:12.04 バグを生む可能性が一切ないならCスタイルのほうがいいに決まってる
798デフォルトの名無しさん (アウアウカー Sa11-9wuq)
2018/05/15(火) 21:41:08.24ID:h7VmA7z3a c言語って移植性あるの?まともなの?
799片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-CqHk)
2018/05/15(火) 21:41:08.58ID:NlOsi0K3d 最近のC++は、std::vectorが配列に最適化されるのか? 遅いだろ
800片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-CqHk)
2018/05/15(火) 22:23:39.58ID:NlOsi0K3d C++11以降ならstd::array使うけど、覚えることがともかく多い
801片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-CqHk)
2018/05/15(火) 22:26:59.43ID:NlOsi0K3d 区間チェックしてくれる配列を簡単に指定できると嬉しいの†
802片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-CqHk)
2018/05/15(火) 22:31:58.98ID:NlOsi0K3d 例えば、[ ]を二重に書くと添字チェックしてくれるとか。どうかな。
int a[[10]];
int a[[10]];
803デフォルトの名無しさん (ブーイモ MM43-/P3g)
2018/05/15(火) 22:42:37.30ID:PNM8l+laM atじゃだめなんか?
804デフォルトの名無しさん (ワッチョイ 0504-Ca5/)
2018/05/15(火) 22:43:36.39ID:sqV4cudU0 例外投げるインデクサと投げないインデクサ両方ありますから。
805デフォルトの名無しさん (ワッチョイ e34c-Ci6B)
2018/05/15(火) 22:46:39.90ID:IhUmYIjB0 プロパティONにするとチェック有効で
806デフォルトの名無しさん (ワッチョイ 2334-AkjX)
2018/05/15(火) 22:46:50.65ID:IPNyvhtL0 >>802
オブジェトCを彷彿させるので嫌です
オブジェトCを彷彿させるので嫌です
807デフォルトの名無しさん (ワッチョイ 8d79-QK6s)
2018/05/16(水) 03:32:46.81ID:gRCAgj/W0 >>802
attributes構文と紛らわしい。
attributes構文と紛らわしい。
808デフォルトの名無しさん (ワッチョイ 057f-Je+M)
2018/05/16(水) 23:25:18.23ID:cmH84vOv0 arrayはなんで[]でチェックしてくれないの
809はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1b6f-Iyo3)
2018/05/16(水) 23:28:49.70ID:axtQyUCZ0 ゼロコストの原則
810デフォルトの名無しさん (ワッチョイ 0db3-A9b3)
2018/05/17(木) 02:43:52.94ID:vEqyw0xg0 C++のコストの大部分は例外に起因するらしい。
Cでコンパイルできるコードであっても、C++としてコンパイルするとバイナリが肥大化する。
その原因は例外。
Cでコンパイルできるコードであっても、C++としてコンパイルするとバイナリが肥大化する。
その原因は例外。
811デフォルトの名無しさん (ワッチョイ 5550-D7Hy)
2018/05/17(木) 07:10:31.59ID:AhjFsLsi0 x86-64だとゼロコストだよ
812デフォルトの名無しさん (ワッチョイ 758a-ZY9B)
2018/05/17(木) 08:34:28.77ID:FVFi5bM10 どこにコストが消えたんだろ
サボってるの?
サボってるの?
813デフォルトの名無しさん (ワッチョイ da33-RYnA)
2018/05/17(木) 09:12:53.49ID:UhXGat7x0 >>810 要出典。
814デフォルトの名無しさん (スップ Sdfa-D7Hy)
2018/05/17(木) 14:51:21.43ID:T9EnGAyld x86-32だと割り込み発生時に対応出来るように
関数コールの度にスタックに情報を埋め込む
x86-64はこれが不要
割り込み処理がなければコストはかからない
関数コールの度にスタックに情報を埋め込む
x86-64はこれが不要
割り込み処理がなければコストはかからない
815デフォルトの名無しさん (ワッチョイ 0db3-A9b3)
2018/05/17(木) 18:56:39.80ID:vEqyw0xg0816デフォルトの名無しさん (ワッチョイ 0db3-A9b3)
2018/05/17(木) 18:58:28.25ID:vEqyw0xg0 俺の見解では、例外にコストが割かれるなら、それは必要なコストだと思うんだよな。
817デフォルトの名無しさん (ワッチョイ daeb-yA46)
2018/05/17(木) 19:43:22.14ID:WDNJ9RfY0 元記事消えてるっぽいからアーカイブだけど
http://bytepointer.com/resources/pietrek_amd_x64_primer.htm
Windowsの例外機構がx64ではスタックベースからテーブルベースの通過するだけならゼロコストなものに変わった
ただしバイナリサイズは増える
http://bytepointer.com/resources/pietrek_amd_x64_primer.htm
Windowsの例外機構がx64ではスタックベースからテーブルベースの通過するだけならゼロコストなものに変わった
ただしバイナリサイズは増える
818はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ae6f-HRP5)
2018/05/17(木) 19:46:45.63ID:oI1zc+Au0 >>816
例外を使うならコストがかかるのは当然なんだが、
例外が通過しないかもしれないのにそこかしこで情報を積まないといけないのは良くないってことなんよ。
そんでまあ例外を投げたときだけにコストが生じる方式がいいよねっていう話。
例外を使うならコストがかかるのは当然なんだが、
例外が通過しないかもしれないのにそこかしこで情報を積まないといけないのは良くないってことなんよ。
そんでまあ例外を投げたときだけにコストが生じる方式がいいよねっていう話。
819デフォルトの名無しさん (ワッチョイ 5550-D7Hy)
2018/05/17(木) 20:29:27.85ID:AhjFsLsi0 例外が発生しない時のコストなんてゴミみたいなもんだけどな
820デフォルトの名無しさん (ワッチョイ 5550-D7Hy)
2018/05/17(木) 20:30:03.35ID:AhjFsLsi0 イヤなら64bitで組みなさい
821デフォルトの名無しさん (ワッチョイ 0db3-A9b3)
2018/05/17(木) 20:38:19.60ID:vEqyw0xg0 64ビット化するとサイズが1.5倍になるらしいけどな。
822デフォルトの名無しさん (ワッチョイ 5550-D7Hy)
2018/05/17(木) 20:40:58.24ID:AhjFsLsi0 今時コードのサイズなんて問題にならんだろ
その代わりに得るものは大きい
その代わりに得るものは大きい
823デフォルトの名無しさん (ワッチョイ 0db3-A9b3)
2018/05/17(木) 21:11:41.72ID:vEqyw0xg0 1.5倍って40sの可愛い少女が60sのオバはんになるってことではないだろか。
さあどっちか選ぶんだ。
さあどっちか選ぶんだ。
824デフォルトの名無しさん (ワッチョイ 2ee7-+uOs)
2018/05/17(木) 21:42:32.65ID:53fi3uKJ0 どうしても対応し続けないといけない32bitのレガシーデバイスがあるなら頑張って
そうじゃなけりゃもう32bitなんて捨てろ
そうじゃなけりゃもう32bitなんて捨てろ
825デフォルトの名無しさん (ドコグロ MMc2-hlLb)
2018/05/17(木) 21:43:14.24ID:egaCGTtIM >>823
それ得るもの無さすぎないか?
それ得るもの無さすぎないか?
826デフォルトの名無しさん (ワッチョイ 0db3-A9b3)
2018/05/17(木) 21:57:59.98ID:vEqyw0xg0 60kgのオッサンになるよりはいいだろ。
827デフォルトの名無しさん (ワッチョイ b605-NEzo)
2018/05/17(木) 22:02:48.61ID:/ukQRMvg0 32bitがレガシーだあ?
どこで吹き込まれたか知らんが
騙されやすいやつだな
どこで吹き込まれたか知らんが
騙されやすいやつだな
828デフォルトの名無しさん (ワッチョイ 5a68-RYnA)
2018/05/17(木) 22:20:15.79ID:yYAGBjqQ0 クラスのconst配列メンバをコンストラクタで初期化するにはどうしたらいいでしょうか?
class A
{
const double array[];
void A( double &temp[] ) : array(temp)
{
}
};
これはコンパイルでエラーが出てダメでした
class A
{
const double array[];
void A( double &temp[] ) : array(temp)
{
}
};
これはコンパイルでエラーが出てダメでした
829デフォルトの名無しさん
2018/05/17(木) 22:32:37.31830デフォルトの名無しさん (ワッチョイ ee9b-XwNb)
2018/05/17(木) 22:33:23.35ID:MPVDtJCy0 constの問題というよりサイズが決まってないからダメなんじゃないの?
831デフォルトの名無しさん
2018/05/17(木) 22:34:24.00 ここ3年ほど32bitの組み込み機器に触ったことない
832デフォルトの名無しさん (ワッチョイ 2ee7-+uOs)
2018/05/17(木) 22:37:16.99ID:53fi3uKJ0 今はほとんど64bitの上で無理矢理32bit動かしてるんだよ
ネイティブ32bitCPUなんて化石
ネイティブ32bitCPUなんて化石
833デフォルトの名無しさん (ワッチョイ 5a68-RYnA)
2018/05/17(木) 22:51:21.67ID:yYAGBjqQ0834デフォルトの名無しさん (ワントンキン MM25-1jw3)
2018/05/18(金) 17:13:18.87ID:8ieomEvbM vc++のマルチコアのオプティマイズなんて甘々だから余裕で
勝てるけどなぁ。
あんなのに負ける人もいるって、世の中広いなぁ(棒)
勝てるけどなぁ。
あんなのに負ける人もいるって、世の中広いなぁ(棒)
835771 (ワッチョイ b133-NTEn)
2018/05/18(金) 18:23:15.07ID:G5mHfuQa0 アホだろお前
836デフォルトの名無しさん (ワッチョイ 6e2a-+uOs)
2018/05/18(金) 18:33:25.05ID:pNV6CZfO0 そりゃあ頑張れば勝てるだろう
コーディングコストと可読性の犠牲に見合うほど速くなるかどうかは別問題だがね
コーディングコストと可読性の犠牲に見合うほど速くなるかどうかは別問題だがね
837771 (ワッチョイ 95b3-NTEn)
2018/05/18(金) 18:57:13.66ID:jCVxhDbN0 VCもそうだけど大体のコンパイラは並列化や自動ベクタライズは強くないと思う
古くからある機能とそうでないものでは最適化に差が出るのは当然
だからこそSIMD使うときはみんなイントリンシック命令使ってるのであって
古くからある機能とそうでないものでは最適化に差が出るのは当然
だからこそSIMD使うときはみんなイントリンシック命令使ってるのであって
838デフォルトの名無しさん (スップ Sdda-D7Hy)
2018/05/18(金) 20:11:41.99ID:Xj+Uy2RAd >>834て誰に対してのレス?
839デフォルトの名無しさん (ワッチョイ 4623-XbkE)
2018/05/18(金) 21:20:25.60ID:TsUe9Yho0 >>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以降。
>>どんなサイズの配列が来るかはコンストラクタが呼び出されるまでわからないんでサイズは未定にしておきました
要素数が決まってないとコンパイル時に困るので、テンプレートクラスにしちゃったけれど…
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以降。
>>どんなサイズの配列が来るかはコンストラクタが呼び出されるまでわからないんでサイズは未定にしておきました
要素数が決まってないとコンパイル時に困るので、テンプレートクラスにしちゃったけれど…
840デフォルトの名無しさん (ワッチョイ 4623-XbkE)
2018/05/18(金) 22:05:36.49ID:TsUe9Yho0841デフォルトの名無しさん (ワッチョイ b133-NTEn)
2018/05/18(金) 22:33:37.26ID:G5mHfuQa0 参考にしてみた
https://wandbox.org/permlink/3asRA3QSPQXmmn8l
C++17ならヘルパー不要にはなる・・・(コンストラクタに与えた引数から推定
けどどっちにしても配列数可変にはできない
ていうか配列の参照とか初めて使ったw
https://wandbox.org/permlink/3asRA3QSPQXmmn8l
C++17ならヘルパー不要にはなる・・・(コンストラクタに与えた引数から推定
けどどっちにしても配列数可変にはできない
ていうか配列の参照とか初めて使ったw
842デフォルトの名無しさん (ワッチョイ 9aa2-NEzo)
2018/05/19(土) 00:03:26.14ID:9PVep4LN0 >>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
}
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
}
843デフォルトの名無しさん (ワッチョイ da34-+iZv)
2018/05/19(土) 00:10:45.61ID:WRHfxyyT0 糞面倒だな
844デフォルトの名無しさん (アウアウウー Sa39-RYnA)
2018/05/19(土) 00:15:37.45ID:VIvIbG0Fa アンチパターンを生み出すための新機能が次々出てくるのがc++だ!
845デフォルトの名無しさん (ワッチョイ da34-+iZv)
2018/05/19(土) 00:33:17.81ID:WRHfxyyT0 こういうのからiostreamみたいになってゆくんだろうな
846デフォルトの名無しさん (ワッチョイ 769a-qaY6)
2018/05/19(土) 03:41:10.01ID:BMt6S/TK0 つか引数にconst double(&temp)[]って何だと渡せるのこれ
()ないとエラー出るし
()ないとエラー出るし
847デフォルトの名無しさん (ワッチョイ 6e2a-+uOs)
2018/05/19(土) 06:54:38.61ID:KlOWaW480 何も渡せないよ
配列数のない配列型はどんな文脈でも不完全型だからその型のオブジェクトは存在し得ない
配列数のない配列型はどんな文脈でも不完全型だからその型のオブジェクトは存在し得ない
848デフォルトの名無しさん (ワッチョイ dacf-pX8m)
2018/05/19(土) 07:39:54.12ID:03NPLOb40 >>842
VS2017 15.7.1のVCのReleaseモードだとtemplateの部分が赤の下波線になるな
Debugモードにするとなぜか消える
そしてReleaseモードはエラーが出ているのにコンパイルして実行可能
バグじゃね
VS2017 15.7.1のVCのReleaseモードだとtemplateの部分が赤の下波線になるな
Debugモードにするとなぜか消える
そしてReleaseモードはエラーが出ているのにコンパイルして実行可能
バグじゃね
849はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ae6f-HRP5)
2018/05/19(土) 12:37:22.83ID:WMhjioR90 >>847
仮引数として表れる場合はポインタに調整されるんじゃなかったっけ?
仮引数として表れる場合はポインタに調整されるんじゃなかったっけ?
850デフォルトの名無しさん (ワッチョイ 6e2a-+uOs)
2018/05/19(土) 13:11:36.50ID:KlOWaW480 配列型はね
配列の参照型はされない
配列の参照型はされない
851デフォルトの名無しさん (ワッチョイ da34-+iZv)
2018/05/21(月) 09:24:48.82ID:SHQ/MEmo0 引数で渡す場合は配列自体が参照型だもんな
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★3 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- 「これいいじゃん!!!」 セブン-イレブンの1620円で買える“1人用クリスマスケーキ”🎂に注目殺到「天才すぎる」 [パンナ・コッタ★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★4 [Hitzeschleier★]
- 小島瑠璃子さん、代表取締役を務める会社を破産申請 [牛丼★]
- 高市早苗首相が天理教系企業に“巨額発注” 総額5000万円 本人は「政治団体の活動に必要な支出」と回答 [Hitzeschleier★]
- なんかさっきからフェイロンのステージ曲が頭から離れないんだが
- 【実況】博衣こよりのえちえちスーパーダンガンロンパ3🧪
- 【安倍晋三】中国船4隻が領海侵入 [828897501]
- えちえち女だけど
- 【画像】小泉防衛大臣、とんでもない写真が発掘される [834922174]
- お
