前スレ
C++相談室 part156
https://mevius.5ch.net/test/read.cgi/tech/1621389313/
探検
C++相談室 part157
■ このスレッドは過去ログ倉庫に格納されています
2021/08/09(月) 10:57:31.60ID:JaaB5Egp
229デフォルトの名無しさん
2021/09/04(土) 22:28:42.31ID:mLTAxmCN 超久しぶりにC++の参考書 買った。
いまってC++20までいってるんでしょ?
時代遅れもいいところだから勉強しようと思ってw
ただ読む気がおきない。
「pythonでいいか」って思いが・・・ww
いまってC++20までいってるんでしょ?
時代遅れもいいところだから勉強しようと思ってw
ただ読む気がおきない。
「pythonでいいか」って思いが・・・ww
230ハノン ◆QZaw55cn4c
2021/09/04(土) 23:52:57.58 >>223
https://tabesugi.net/memo/2009/1a.html
C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:
- うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が
安定してるとか移植性があるとかいう奴は、どいつもこいつも大ウソつきで、
もはや笑えるレベルを超えている)
- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の
コードがその素晴らしいオブジェクトモデルに依存していて、直すためには
アプリ全体を書き直さなきゃなんない。
言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
https://tabesugi.net/memo/2009/1a.html
C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:
- うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が
安定してるとか移植性があるとかいう奴は、どいつもこいつも大ウソつきで、
もはや笑えるレベルを超えている)
- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の
コードがその素晴らしいオブジェクトモデルに依存していて、直すためには
アプリ全体を書き直さなきゃなんない。
言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
231デフォルトの名無しさん
2021/09/05(日) 00:05:05.82ID:yIsM5ONG バカが使いこなせる言語ではないからな
232デフォルトの名無しさん
2021/09/05(日) 00:27:52.33ID:eMsTCIh+ linusに言われると返す言葉もないが、その後の文脈にある
『もし C++ で書かれた VCS が欲しいのなら、Monotone を見てみるといい。
ほんとに。連中は「本物のデータベース」を使っているよ。
「素敵なオブジェクト指向ライブラリ」も使ってる。「ナイスな C++ の抽象化」も
使ってる。そして率直なことろ、一部の情報系の人間が喜びそうな
これらすべての設計上の決定のために、できてきた結果はゲロゲロで
保守不可能なカオスだ。
でもあんたはきっと git よりも気に入るだろう。保証するよ。』
な感じでC++を気に入って、夢を見ていたいんだろうね。
『もし C++ で書かれた VCS が欲しいのなら、Monotone を見てみるといい。
ほんとに。連中は「本物のデータベース」を使っているよ。
「素敵なオブジェクト指向ライブラリ」も使ってる。「ナイスな C++ の抽象化」も
使ってる。そして率直なことろ、一部の情報系の人間が喜びそうな
これらすべての設計上の決定のために、できてきた結果はゲロゲロで
保守不可能なカオスだ。
でもあんたはきっと git よりも気に入るだろう。保証するよ。』
な感じでC++を気に入って、夢を見ていたいんだろうね。
233デフォルトの名無しさん
2021/09/05(日) 00:53:47.56ID:66hkUr5p 「オレはC++を使いこなせている」と思い込む素人を生温かく見守るスレはここですね
234デフォルトの名無しさん
2021/09/05(日) 01:42:41.34ID:eMsTCIh+235デフォルトの名無しさん
2021/09/05(日) 06:00:11.76ID:fsFc+8nQ 昔、バカでも使える言語でプログラマ人口増やしましょうてなことやってたな
BASICじゃないぞ、あれは初心者用で、バカ用じゃない
計算を数式で書くのは理系だけだから
英文で書けるようにして文系でも使えるようにしようという試みがあった
で、狙いどおり本当にバカプログラマを量産できた
それでいいことあったか?
C++はアレの逆をいっているわけだ
BASICじゃないぞ、あれは初心者用で、バカ用じゃない
計算を数式で書くのは理系だけだから
英文で書けるようにして文系でも使えるようにしようという試みがあった
で、狙いどおり本当にバカプログラマを量産できた
それでいいことあったか?
C++はアレの逆をいっているわけだ
236デフォルトの名無しさん
2021/09/05(日) 06:45:24.37ID:ClPlKiJv Qtを使ってるから、C++一択だな。
237デフォルトの名無しさん
2021/09/05(日) 12:24:02.01ID:cBh+EO/A namespaceと多態性はCだけではやりにくい
238デフォルトの名無しさん
2021/09/05(日) 12:47:17.91ID:0Cj96kG7 静的なディスパッチの充実がCに必要なのではないか
239デフォルトの名無しさん
2021/09/05(日) 14:17:57.22ID:cBh+EO/A >>234
Linuxはモノリシックカーネルなので動的メモリ確保を伴うような軟弱な
モジュールもカーネルのうちに入ってしまっているからメモリ不足ぐらいで
パニくられると手の打ちようがないから困るという話なんじゃないの(適当
OSはリソース管理を放り投げて停止することは許されないから
伝統的なやり方では起動時に非常用のメモリブロックをアロケートしておいて
メモリが枯渇したら非常用のメモリブロックを使うみたいな手段がとられる(と思う
がパニックされたらそこまで行きつかない
※ 個人の感想です
Linuxはモノリシックカーネルなので動的メモリ確保を伴うような軟弱な
モジュールもカーネルのうちに入ってしまっているからメモリ不足ぐらいで
パニくられると手の打ちようがないから困るという話なんじゃないの(適当
OSはリソース管理を放り投げて停止することは許されないから
伝統的なやり方では起動時に非常用のメモリブロックをアロケートしておいて
メモリが枯渇したら非常用のメモリブロックを使うみたいな手段がとられる(と思う
がパニックされたらそこまで行きつかない
※ 個人の感想です
240デフォルトの名無しさん
2021/09/05(日) 14:38:48.42ID:eMsTCIh+ >>239
具体的に何かのケースを想定して言ってるわけじゃないのか。
ぶっちゃけOSをC++で書くならカーネルでnew/malloc/mmapとか使う実装はしないだろうし、処理系が使うランタイムにも依存するけど基本その辺はカスタマイズできるようになってると思う。
rustでもそんな感じで処理系次第って話だと思う。
具体的に何かのケースを想定して言ってるわけじゃないのか。
ぶっちゃけOSをC++で書くならカーネルでnew/malloc/mmapとか使う実装はしないだろうし、処理系が使うランタイムにも依存するけど基本その辺はカスタマイズできるようになってると思う。
rustでもそんな感じで処理系次第って話だと思う。
241デフォルトの名無しさん
2021/09/05(日) 14:44:00.68ID:LgQhIBwq242ハノン ◆QZaw55cn4c
2021/09/05(日) 17:28:18.83 >>241
>>230 の類の話は昔からいわれていたもので、これも有名ですね
http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html
インタビューア(以下「I」): あなたがソフトウェアデザインの世界を一変させてから何年にもなる。振り返ってみて、感想は。
Stroustrup(以下「S」): 実はあなたがここへ来る直前、当時のことを思い出していたんだ。おぼえているかな。誰もが C 言語を使っていたけど、問題はみんな結構うまくコーディングしていたことだった。
大学も C 言語を教えるのがうまくなっていたしね。驚異的な割合で有能な――「有能」という言葉は強調しておきたい――卒業生を量産していた。それが問題の原因だったんだ
。
S: ある日、オフィスにいたときに、ある策略を思いついたんだ。バランスを少し回復させる策略をね。「プログラマが余るなんてことが絶対にありえないくらい、複雑でおぼえにくい言語があったらどうなるかな」ってね。
実は、この考えの一部は X10――例の X Window の――から頂いたんだ。あれはひどいグラフィックシステムでね、Sun 3/60とかでないと動かなかった。
ばかばかしいくらい複雑な構文規則とか、わかりにくい関数とか、疑似オブジェクト指向的な構造とか、僕がほしいと思う要素は全部揃っていたんだよね。
今でさえ、生の X Window コードを書く人間なんていない。正気を保つには Motif を使うしかないんだ。
S: もうかなり時間がたったしね、C++ が時間の無駄だということにはほとんどの人が気がついたとは思うけど、でも当初予想していたよりはずいぶん時間がかかったな。
I: 具体的に何をどうやったのかな。
S: 最初はほんの冗談のつもりでね、みんながあの本を真に受けるとは思ってもみなかったんだ。脳みそが半分でもあれば、オブジェクト指向プログラミングが非直感的で、非論理的で、非効率なことくらいはわかるよね。
I: え?
S: それに「コードの再利用性」ときたら…。どこかの会社がコードを再利用したなんて話を聞いたことがある?
I: うん、でも C++ は基本的にはしっかりした言語だと思う。
S: それ、本気で信じてるね。実際の C++ プロジェクトの経験はある? どうなるかって言うとね、まず第一に、いろいろワナを仕掛けてあるから、よほど小規模なプロジェクト以外は一発では動かないようになっているんだ。
たとえば演算子のオーバーロードがそうだ。たいていの場合、プロジェクトの終わり頃にはほとんどのモジュールで演算子をオーバーロードしている。
プログラマの連中が、トレーニングコースで教わったとおりにやらなくちゃいけないと思うからだ。つまり、1つの演算子の持つ意味が、モジュールによってまったく異なることになる。
モジュールの数が100かそこらあるときに、これをまとめあげようとしたらどうなると思う? データ隠蔽もあるね。モジュール間の連繋にどこかの会社が苦労しているなんて話を聞くと、笑いを抑えられないときがあるよ。
「Synergistic」という言葉は、プロジェクト管理者の胸に刺さったナイフをグリグリ回すためだけに発明されたんじゃないかと思うな。
>>230 の類の話は昔からいわれていたもので、これも有名ですね
http://www.kh.rim.or.jp/~nagamura/misc/stroustrup-interview.html
インタビューア(以下「I」): あなたがソフトウェアデザインの世界を一変させてから何年にもなる。振り返ってみて、感想は。
Stroustrup(以下「S」): 実はあなたがここへ来る直前、当時のことを思い出していたんだ。おぼえているかな。誰もが C 言語を使っていたけど、問題はみんな結構うまくコーディングしていたことだった。
大学も C 言語を教えるのがうまくなっていたしね。驚異的な割合で有能な――「有能」という言葉は強調しておきたい――卒業生を量産していた。それが問題の原因だったんだ
。
S: ある日、オフィスにいたときに、ある策略を思いついたんだ。バランスを少し回復させる策略をね。「プログラマが余るなんてことが絶対にありえないくらい、複雑でおぼえにくい言語があったらどうなるかな」ってね。
実は、この考えの一部は X10――例の X Window の――から頂いたんだ。あれはひどいグラフィックシステムでね、Sun 3/60とかでないと動かなかった。
ばかばかしいくらい複雑な構文規則とか、わかりにくい関数とか、疑似オブジェクト指向的な構造とか、僕がほしいと思う要素は全部揃っていたんだよね。
今でさえ、生の X Window コードを書く人間なんていない。正気を保つには Motif を使うしかないんだ。
S: もうかなり時間がたったしね、C++ が時間の無駄だということにはほとんどの人が気がついたとは思うけど、でも当初予想していたよりはずいぶん時間がかかったな。
I: 具体的に何をどうやったのかな。
S: 最初はほんの冗談のつもりでね、みんながあの本を真に受けるとは思ってもみなかったんだ。脳みそが半分でもあれば、オブジェクト指向プログラミングが非直感的で、非論理的で、非効率なことくらいはわかるよね。
I: え?
S: それに「コードの再利用性」ときたら…。どこかの会社がコードを再利用したなんて話を聞いたことがある?
I: うん、でも C++ は基本的にはしっかりした言語だと思う。
S: それ、本気で信じてるね。実際の C++ プロジェクトの経験はある? どうなるかって言うとね、まず第一に、いろいろワナを仕掛けてあるから、よほど小規模なプロジェクト以外は一発では動かないようになっているんだ。
たとえば演算子のオーバーロードがそうだ。たいていの場合、プロジェクトの終わり頃にはほとんどのモジュールで演算子をオーバーロードしている。
プログラマの連中が、トレーニングコースで教わったとおりにやらなくちゃいけないと思うからだ。つまり、1つの演算子の持つ意味が、モジュールによってまったく異なることになる。
モジュールの数が100かそこらあるときに、これをまとめあげようとしたらどうなると思う? データ隠蔽もあるね。モジュール間の連繋にどこかの会社が苦労しているなんて話を聞くと、笑いを抑えられないときがあるよ。
「Synergistic」という言葉は、プロジェクト管理者の胸に刺さったナイフをグリグリ回すためだけに発明されたんじゃないかと思うな。
243デフォルトの名無しさん
2021/09/05(日) 17:47:40.38ID:eWmYSwWp244デフォルトの名無しさん
2021/09/05(日) 18:05:24.16ID:Lkm6/1Sl246はちみつ餃子 ◆8X2XSCHEME
2021/09/05(日) 18:10:26.36ID:vh6AiUnJ247デフォルトの名無しさん
2021/09/05(日) 18:23:29.28ID:cBh+EO/A >static std::shared_ptr<T> O = std::make_shared<T>(A...);
の部分って、Singleton()の初回呼び出しが複数のスレッドから同時に起こってもき
ちんと排他してくれるんでした
っけ
また排他してくれるとしても最速(そのアーキテクチャ(マルチコアかもしれない)で最も適切)
であることを気体していいんでしたっけ……
つまり生成に成功した後は排他不要なわけで、無駄にロックを取りに行きたくない……
の部分って、Singleton()の初回呼び出しが複数のスレッドから同時に起こってもき
ちんと排他してくれるんでした
っけ
また排他してくれるとしても最速(そのアーキテクチャ(マルチコアかもしれない)で最も適切)
であることを気体していいんでしたっけ……
つまり生成に成功した後は排他不要なわけで、無駄にロックを取りに行きたくない……
248デフォルトの名無しさん
2021/09/05(日) 18:24:18.83ID:yIsM5ONG >>242
おまえホント頭悪いな
おまえホント頭悪いな
249デフォルトの名無しさん
2021/09/05(日) 18:27:31.03ID:cBh+EO/A みたいな配慮がシングルトンにしたとたんに必要になる
メインの処理が始まる前に普通の初期化関数呼び出しでOを生成したらそれで済むのに、、、
メインの処理が始まる前に普通の初期化関数呼び出しでOを生成したらそれで済むのに、、、
250デフォルトの名無しさん
2021/09/05(日) 18:28:54.12ID:0Cj96kG7 >>247
呼ばれたところで最後の奴が勝てば問題ないのでは
呼ばれたところで最後の奴が勝てば問題ないのでは
251デフォルトの名無しさん
2021/09/05(日) 18:47:53.68ID:cBh+EO/A >>250
ある
>static std::shared_ptr<T> O = std::make_shared<T>(A...);
全体が排他されないとしたら、Oの生成関数(初期化式「O=」の右辺)が複数回、
それも同期的に繰り返し呼ばれるのではなく、非同期的に再入される形で呼ばれかねない
生成関数の中でリソース確保するとしたら先の呼び出しで確保したリソースの
ハンドルがdunglingにならないように配慮が必要になる
非同期的再入ということは、Oが生成→破棄→生成→破棄、にならず、
生成→生成→破棄→破棄になりかねないから、デストラクタをちゃんと書いたらリークしないとか
そういう認識で当たったらバグる
問題山積や
メインの処理が始まる前に普通の初期化関数呼び出しでOを生成したらそれで済むのに、、、
ある
>static std::shared_ptr<T> O = std::make_shared<T>(A...);
全体が排他されないとしたら、Oの生成関数(初期化式「O=」の右辺)が複数回、
それも同期的に繰り返し呼ばれるのではなく、非同期的に再入される形で呼ばれかねない
生成関数の中でリソース確保するとしたら先の呼び出しで確保したリソースの
ハンドルがdunglingにならないように配慮が必要になる
非同期的再入ということは、Oが生成→破棄→生成→破棄、にならず、
生成→生成→破棄→破棄になりかねないから、デストラクタをちゃんと書いたらリークしないとか
そういう認識で当たったらバグる
問題山積や
メインの処理が始まる前に普通の初期化関数呼び出しでOを生成したらそれで済むのに、、、
252デフォルトの名無しさん
2021/09/05(日) 18:50:05.34ID:nyuo1Vq1 >>245
お前の質問なんかどうでもいいからデマを貼るな
お前の質問なんかどうでもいいからデマを貼るな
253デフォルトの名無しさん
2021/09/05(日) 19:08:04.86ID:UYU4AxET254デフォルトの名無しさん
2021/09/05(日) 19:10:36.36ID:2jP3+tuQ255ハノン ◆QZaw55cn4c
2021/09/05(日) 21:38:19.52256デフォルトの名無しさん
2021/09/05(日) 22:21:15.62ID:TAzC3d8r >>255
そもそも、C++の生みの親で、それに関する書籍を出してその中でC++を
良い言語と自負して(それ以上の言語が出来ないというような主張も幾度もして)
解説し、まだ推進しようとしている人が、C++を徹底的に卑下するかどうかを
疑問に思ってないことも頭が悪いと思われる原因の一つ。
そもそも、C++の生みの親で、それに関する書籍を出してその中でC++を
良い言語と自負して(それ以上の言語が出来ないというような主張も幾度もして)
解説し、まだ推進しようとしている人が、C++を徹底的に卑下するかどうかを
疑問に思ってないことも頭が悪いと思われる原因の一つ。
257デフォルトの名無しさん
2021/09/05(日) 22:29:24.50ID:15q7gB85 実際、C++は、特に初期の頃はCより全面的に優れていると誰でも思えるような
物であって、ちゃんと世界的に認められて広まっていたのに、その部分まで
全否定するようなことをインタビューで答えるわけがない。
その後に追加されて機能は人により評価が分かれて全面的に優れているとは
思えるようなものではなくなっていた。
だから、C++11は、好きな人も居れば嫌いな人も居る。C++98より全面的に
優れていると言えるかどうかは人により評価が分かれるので、好みにより
文壇の様なものが生じている。
物であって、ちゃんと世界的に認められて広まっていたのに、その部分まで
全否定するようなことをインタビューで答えるわけがない。
その後に追加されて機能は人により評価が分かれて全面的に優れているとは
思えるようなものではなくなっていた。
だから、C++11は、好きな人も居れば嫌いな人も居る。C++98より全面的に
優れていると言えるかどうかは人により評価が分かれるので、好みにより
文壇の様なものが生じている。
258デフォルトの名無しさん
2021/09/05(日) 22:30:49.67ID:cBh+EO/A >>254
ひ、日本語でおk、、、
>If control enters the declaration concurrently while the variable is being initialized, the concurrent execution shall wait for completion of the initialization.85
>If control re-enters the declaration recursively while the variable is being initialized, the behavior is undefined.
はどう読めばいいの?
結局concurrentlyにre-enterされるときはbehavior is undefinedとしか読めなさげ
>>254
以上の状況なので>>244の糞コードは直しても仕方が無い
ひ、日本語でおk、、、
>If control enters the declaration concurrently while the variable is being initialized, the concurrent execution shall wait for completion of the initialization.85
>If control re-enters the declaration recursively while the variable is being initialized, the behavior is undefined.
はどう読めばいいの?
結局concurrentlyにre-enterされるときはbehavior is undefinedとしか読めなさげ
>>254
以上の状況なので>>244の糞コードは直しても仕方が無い
259デフォルトの名無しさん
2021/09/05(日) 22:36:38.84ID:66hkUr5p メモリを自動解放するfinally機能さえあればCでも大丈夫とは思う
260デフォルトの名無しさん
2021/09/05(日) 22:50:33.49ID:yIsM5ONG261デフォルトの名無しさん
2021/09/05(日) 22:52:01.95ID:cBh+EO/A とオモタがcontrol enters the declaration concurrently のときは初期化のcompletionまでshall waitで、
ただしrecursivelyだとイカン(未定義動作)と書いてあるのか……
つまりSingleton()関数内の初期化式「O=」の右辺がSingleton()を呼び出す場合か
まあ確かにWindousみたいに特殊な仕様のクリティカルセクションでもない限りデッドロックしそう
ただしrecursivelyだとイカン(未定義動作)と書いてあるのか……
つまりSingleton()関数内の初期化式「O=」の右辺がSingleton()を呼び出す場合か
まあ確かにWindousみたいに特殊な仕様のクリティカルセクションでもない限りデッドロックしそう
262デフォルトの名無しさん
2021/09/05(日) 23:09:38.17ID:eTOvJaZ9263デフォルトの名無しさん
2021/09/06(月) 00:30:26.82ID:62gS+LUW264デフォルトの名無しさん
2021/09/06(月) 04:31:29.75ID:HRRCwLhx265デフォルトの名無しさん
2021/09/06(月) 04:31:59.38ID:G2BRvA3h ビャーネ・ストロヴストルップその人のインタビューだとは私も考えてませんよ、これはブラックジョークというべきでしょう、まあC++er が気を悪くする理由は理解できますが
それに私も GNU Multi-Precision Library を使うときはC++のラッパの方を使います。C インターフェースの方は使い難くって使い難くって、これはもう罰ゲームですね‥‥
だから演算子のオーバーロードも控えめに使えば有用という立場です、紹介することと賛成することとは別だと思います
https://mevius.5ch.net/test/read.cgi/tech/1434079972/84
それに私も GNU Multi-Precision Library を使うときはC++のラッパの方を使います。C インターフェースの方は使い難くって使い難くって、これはもう罰ゲームですね‥‥
だから演算子のオーバーロードも控えめに使えば有用という立場です、紹介することと賛成することとは別だと思います
https://mevius.5ch.net/test/read.cgi/tech/1434079972/84
266ハノン ◆QZaw55cn4c
2021/09/06(月) 04:40:03.34 テステス
267デフォルトの名無しさん
2021/09/06(月) 07:17:56.24ID:7SReNX2q268デフォルトの名無しさん
2021/09/06(月) 08:08:09.17ID:62gS+LUW269デフォルトの名無しさん
2021/09/06(月) 08:45:11.58ID:3/UK3SOv グローバル変数と同じなのでだめだよな
普通に動的に用意して渡せばよろしい
普通に動的に用意して渡せばよろしい
270デフォルトの名無しさん
2021/09/06(月) 08:48:23.63ID:HRRCwLhx ログとかアプリの現行設定ファイルとかはSingletonっぽく実装するけどなぁ・・・
インスタンス生成が遅いものはただのグローバルにしたら起動が遅くなるし
インスタンス生成が遅いものはただのグローバルにしたら起動が遅くなるし
271デフォルトの名無しさん
2021/09/06(月) 09:20:13.64ID:FistWoaj >>268
最初のデザパタ本であるGOF本はc++とsmalltalkで書かれてるんで、javaは関係ないよ
最初のデザパタ本であるGOF本はc++とsmalltalkで書かれてるんで、javaは関係ないよ
272デフォルトの名無しさん
2021/09/06(月) 10:32:20.65ID:d5h9Y6Qi シングルトンはスレッドセーフが実現できれば問題ないでしょ
273デフォルトの名無しさん
2021/09/06(月) 12:01:04.36ID:KKMECnvR274デフォルトの名無しさん
2021/09/06(月) 12:06:51.69ID:86SPG0/G その昔、こんなクラス作ってたな
class WinMainArguments
{
public:
static HINSTANCE hInstance;
static HINSTANCE hPrevious;
static LPSTR lpszCmdLine;
static int nCmdShow;
};
class WinMainArguments
{
public:
static HINSTANCE hInstance;
static HINSTANCE hPrevious;
static LPSTR lpszCmdLine;
static int nCmdShow;
};
275デフォルトの名無しさん
2021/09/06(月) 15:04:51.66ID:DsY+3+kX276デフォルトの名無しさん
2021/09/06(月) 15:52:40.84ID:86SPG0/G >>265
GMPについて同意見
GMPについて同意見
277デフォルトの名無しさん
2021/09/06(月) 16:43:26.89ID:akmYwjNo >>274
ネームスペースつかえよバカww
ネームスペースつかえよバカww
278デフォルトの名無しさん
2021/09/06(月) 16:51:37.50ID:5nha9zO6279デフォルトの名無しさん
2021/09/06(月) 17:50:02.90ID:xrgLRigr その初期のC++ってもしかしてEC++とかいうパチモンじゃないですかね
280デフォルトの名無しさん
2021/09/06(月) 17:51:19.11ID:ugWeBDlD 今更バイエルの運指について議論してるような雑魚に構うなよ
C++もピアノも、憧れだけあって実力がまるでないバカ
C++もピアノも、憧れだけあって実力がまるでないバカ
281デフォルトの名無しさん
2021/09/06(月) 20:33:14.67ID:d5h9Y6Qi 日本語版(0xCC=フ)によりフフフフフ…で埋められたWin32アプリデバッグメモリを思い出した人、どのくらいいるかな
「フフフ…」4歳娘が撮影した花火に家族で爆笑! 見ると笑顔になる“奇跡の1枚”の状況を父親に聞いた | FNNプライムオンライン
https://www.fnn.jp/articles/-/224754
「フフフ…」4歳娘が撮影した花火に家族で爆笑! 見ると笑顔になる“奇跡の1枚”の状況を父親に聞いた | FNNプライムオンライン
https://www.fnn.jp/articles/-/224754
282はちみつ餃子 ◆8X2XSCHEME
2021/09/06(月) 23:42:11.67ID:buVCF6sT283デフォルトの名無しさん
2021/09/07(火) 02:14:57.06ID:b2odouMM 今でもchar_traitsみたいのあるね
284デフォルトの名無しさん
2021/09/07(火) 02:29:38.39ID:fAleIY7G なあに名前空間的な修飾を省略させたくない時に役立つ
285デフォルトの名無しさん
2021/09/07(火) 03:15:39.97ID:5ki66s4L >>259
cに付け加えるならgoのdefer文かなと思う。
cに付け加えるならgoのdefer文かなと思う。
286デフォルトの名無しさん
2021/09/07(火) 11:04:53.08ID:1Eqd+3ka C...Cにだってtry~catch~finallyあるんだからね!(ネタ=setjmp/longjmpを使ったマクロ)
https://gist.github.com/rampion/91594
https://gist.github.com/rampion/91594
287デフォルトの名無しさん
2021/09/07(火) 23:50:11.37ID:jZhA4bAr288デフォルトの名無しさん
2021/09/08(水) 05:21:53.89ID:KzXEzs8I289デフォルトの名無しさん
2021/09/08(水) 05:59:59.53ID:4NmVrZFW 確かにgccだと-O1でも2でも3でも暴走しちゃうけど、vc++だと最適化してもちゃんと動くね
290デフォルトの名無しさん
2021/09/08(水) 09:59:21.28ID:1wbeyQs7 VC++はマイクロソフト拡張によってCでも構造化例外処理が使えたんだよね
__try __except __finally
__try __except __finally
291デフォルトの名無しさん
2021/09/08(水) 10:59:12.67ID:6jFCz4HP intalコンパイラはほんとにヤバいが、gccの最適化で変なことになったことは自分は一回もない
292デフォルトの名無しさん
2021/09/08(水) 17:34:33.82ID:nCYYHiA4 finallyは20年前からBorlandC++に既に実装済だったしその頃のVC++なんか>>146の状態やし
294ハノン ◆QZaw55cn4c
2021/09/08(水) 19:47:37.26 >>286
最近まで try.. catch の実装の大半は sjlj だと思っていましたが最近は違うのですか?
最近まで try.. catch の実装の大半は sjlj だと思っていましたが最近は違うのですか?
295ハノン ◆QZaw55cn4c
2021/09/08(水) 19:51:02.76296デフォルトの名無しさん
2021/09/08(水) 19:52:56.05ID:zE01k1pD >>294
IDが出る板でID消してると浪人焼かれるぞ
IDが出る板でID消してると浪人焼かれるぞ
298デフォルトの名無しさん
2021/09/08(水) 20:48:20.14ID:4NmVrZFW >>289の件、再現コード抽出しました。最適時i=1がlongjmp後に0に戻ります。
// gccだと最適化なしなら正常終了。最適化すると終わらない。
#include <stdio.h>
#include <setjmp.h>
int main(int argc, char *argv[])
{
int i = 0;
jmp_buf jmpbuf;
_setjmp(jmpbuf);
printf("hoge\n");
if (i < 1)
{
i = 1;
longjmp(jmpbuf, 1);
}
return 0;
}
// gccだと最適化なしなら正常終了。最適化すると終わらない。
#include <stdio.h>
#include <setjmp.h>
int main(int argc, char *argv[])
{
int i = 0;
jmp_buf jmpbuf;
_setjmp(jmpbuf);
printf("hoge\n");
if (i < 1)
{
i = 1;
longjmp(jmpbuf, 1);
}
return 0;
}
299デフォルトの名無しさん
2021/09/08(水) 21:06:38.45ID:QZMwNs5W gccで例外ぽい事したいならC++にして使えで完結しちゃうからな……
300デフォルトの名無しさん
2021/09/08(水) 21:09:30.53ID:4NmVrZFW インラインアセンブラとかでもない限り、処理系依存の文法を使いたくはないし、>>286はあくまでネタですよ。
ただ最適化時の挙動が違う原因を知りたかったので、個人的に調べた結果を載せといただけです。
お気になさらず。
ただ最適化時の挙動が違う原因を知りたかったので、個人的に調べた結果を載せといただけです。
お気になさらず。
301デフォルトの名無しさん
2021/09/08(水) 22:55:38.96ID:7k6oklod setjmpの結果を変数に入れちゃダメだって教わらなかった?
302デフォルトの名無しさん
2021/09/08(水) 23:11:18.07ID:cWvdMGeM 入ってなくない?
303デフォルトの名無しさん
2021/09/09(木) 02:02:27.18ID:aICFtjZy304デフォルトの名無しさん
2021/09/09(木) 02:39:56.24ID:AtdpUvef コテとトリ付けながらIDは消すとかいうガイジムーブ
他スレでの荒らしがバレたら困りますって宣言してるようなもんだな笑
他スレでの荒らしがバレたら困りますって宣言してるようなもんだな笑
305デフォルトの名無しさん
2021/09/09(木) 03:11:54.20ID:GRtgENVW306デフォルトの名無しさん
2021/09/09(木) 03:58:39.82ID:k9fYYQrZ >>305
何を言いたいのか分からない無言URL貼りは時間の無駄なのでやめて欲しいです。少なくとも該当していません。
何を言いたいのか分からない無言URL貼りは時間の無駄なのでやめて欲しいです。少なくとも該当していません。
307デフォルトの名無しさん
2021/09/09(木) 04:10:55.91ID:k9fYYQrZ 一応書いておくと、>>298のコードは見れば分かるとおりiをvolatile宣言して最適化の対象から外せば当然動きます。
これはlongjmpに限った話ではありません。
先のURLの個別のコードにはありませんが、一般論としての記述はありました。このサイトが元にしてるサイト(リンクのURLは違いましたが)ではvolatileも例に含まれているようです。
https://wiki.sei.cmu.edu/confluence/display/c/MSC22-C.+Use+the+setjmp%28%29%2C+longjmp%28%29+facility+securely
これはlongjmpに限った話ではありません。
先のURLの個別のコードにはありませんが、一般論としての記述はありました。このサイトが元にしてるサイト(リンクのURLは違いましたが)ではvolatileも例に含まれているようです。
https://wiki.sei.cmu.edu/confluence/display/c/MSC22-C.+Use+the+setjmp%28%29%2C+longjmp%28%29+facility+securely
308デフォルトの名無しさん
2021/09/09(木) 04:18:38.68ID:k9fYYQrZ すみません。見落としてただけみたいですね。日本語の方でも個別のコードありましたね。寝ぼけてたかも。
309デフォルトの名無しさん
2021/09/09(木) 08:55:47.93ID:+RnvyubR >>295
嘘記事かどうかくらいは書いておくべきだと思うがね
だいぶ前に初めて見たとき俺も半信半疑だったし(D&Eをまだ読んでなかった頃だが
てかオブジェクト指向のとこをテンプレート(メタプログラミング)に置き換えるとすごいしっくり来るんだよなアレ
嘘記事かどうかくらいは書いておくべきだと思うがね
だいぶ前に初めて見たとき俺も半信半疑だったし(D&Eをまだ読んでなかった頃だが
てかオブジェクト指向のとこをテンプレート(メタプログラミング)に置き換えるとすごいしっくり来るんだよなアレ
310デフォルトの名無しさん
2021/09/09(木) 12:39:56.43ID:emntwqXC311デフォルトの名無しさん
2021/09/09(木) 12:56:38.90ID:emntwqXC312デフォルトの名無しさん
2021/09/09(木) 18:44:12.96ID:9obv3E3K ワクチン拒否とかしてそう
313デフォルトの名無しさん
2021/09/09(木) 18:45:48.31ID:I6ZDQIJr ダニングクルーガー効果のなんちゃってマスター状態でも容易に書けちゃうのが問題。
そのクソコードの状態でも一応動くところがC++の恐ろしいところでもあり幅広いフリーフォーマットの適応力でもある。
そのクソコードの状態でも一応動くところがC++の恐ろしいところでもあり幅広いフリーフォーマットの適応力でもある。
314デフォルトの名無しさん
2021/09/09(木) 19:54:26.64ID:VcdPV4nP jokeもhumorも馬鹿には理解できない
315デフォルトの名無しさん
2021/09/09(木) 20:23:36.23ID:M2q//47O316デフォルトの名無しさん
2021/09/09(木) 20:26:09.91ID:5B6QjFP1 お前らってホント人にケチつけるときだけイキイキとしてんな
317デフォルトの名無しさん
2021/09/09(木) 20:41:37.86ID:Ja2+yviO シャリーア・ポリスとかスシ・ポリスとかみたいな人
318デフォルトの名無しさん
2021/09/11(土) 11:18:20.93ID:ke/Tkn8S オブジェクト指向も構造化も原理主義者がウザいだけで
ナンチャッテでいいからやってると問題がきれいに整理できるので
やめようとは全然思わない
テンプレートだってそうだ
ナンチャッテでいいからやってると問題がきれいに整理できるので
やめようとは全然思わない
テンプレートだってそうだ
319デフォルトの名無しさん
2021/09/11(土) 11:23:49.14ID:rfW8qH4V320デフォルトの名無しさん
2021/09/11(土) 12:26:09.65ID:3OqmYb77 C++には酸っぱい葡萄もある
321デフォルトの名無しさん
2021/09/11(土) 12:37:06.92ID:FXACoymx テンプレートってただの超絶便利機能だろ
オブジェクト指向笑とは比べ物にならない
オブジェクト指向笑とは比べ物にならない
322デフォルトの名無しさん
2021/09/11(土) 12:45:07.36ID:d+bn5JZd >>318
歴史は繰り返す、ってことだろ
一時期C++コミュニティがJavaに悪影響受けたりしてたことからJavaを嫌悪してたやつが
何でもSTLの真似してりゃ自動的に価値のあるコードになると盲信してたからな
笑うしかない
歴史は繰り返す、ってことだろ
一時期C++コミュニティがJavaに悪影響受けたりしてたことからJavaを嫌悪してたやつが
何でもSTLの真似してりゃ自動的に価値のあるコードになると盲信してたからな
笑うしかない
323デフォルトの名無しさん
2021/09/11(土) 12:49:01.51ID:ke/Tkn8S 俺ら技術屋の辛いとこだよ
新しいものはとりあえず食ってみるしかない
あげくゲロマズで非常に気分が悪くなることもあるが怖がってらんない
新しいものはとりあえず食ってみるしかない
あげくゲロマズで非常に気分が悪くなることもあるが怖がってらんない
324デフォルトの名無しさん
2021/09/11(土) 12:59:15.55ID:d+bn5JZd 技術屋というか、実用してる人は盲信はしないと思う
原理主義に走るのは、自分の頭で考えない(権威に頼る)からだ
自分の頭で考えて使ってれば、自ずと長所も短所もわかるもんだ
原理主義に走るのは、自分の頭で考えない(権威に頼る)からだ
自分の頭で考えて使ってれば、自ずと長所も短所もわかるもんだ
326デフォルトの名無しさん
2021/09/11(土) 15:50:05.22ID:pU9Ou8D7 分かったら二度とデマ流すなよ
ワクチンにマイクロチップだのどこそこの銀行が潰れるだの朝鮮人が井戸に毒入れただのもだぞ
本人は軽いジョークのつもりでも、デマとして流行したら人が死ぬんだからな
ワクチンにマイクロチップだのどこそこの銀行が潰れるだの朝鮮人が井戸に毒入れただのもだぞ
本人は軽いジョークのつもりでも、デマとして流行したら人が死ぬんだからな
327デフォルトの名無しさん
2021/09/11(土) 18:07:47.03ID:ke/Tkn8S > 原理主義に走るのは、自分の頭で考えない(権威に頼る)からだ
ほんこれ
ほんこれ
328デフォルトの名無しさん
2021/09/11(土) 21:27:01.30ID:3OqmYb77 そうはいってもC言語規格にfinally機構があったら便利なはず
PGが規格追加に後ろ向きになってしまうのはコンパイラの対応が信頼できるレベルになるまで時間がかかる不快な経験を積んできたから
PGが規格追加に後ろ向きになってしまうのはコンパイラの対応が信頼できるレベルになるまで時間がかかる不快な経験を積んできたから
329デフォルトの名無しさん
2021/09/11(土) 21:45:47.80ID:mopEDxb+ デストラクタもないC言語にfinallyだけあってもねぇ…
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【無言】中国怒らせた高市首相→1週間だんまり、国民に実害も説明なし 中国問題を避けてスルー… ★4 [BFU★]
- 【いちご高騰】ヤマザキのクリスマスケーキ、いちご無し販売 [おっさん友の会★]
- 【日中対立】 朝日新聞のタイトル修正が中国逆ギレの火種か SNSで批判相次ぐ [♪♪♪★]
- ネット殺到「高市総理の責任」「完全に高市リスク」「負けるな」中国が水産物輸入停止→流石に総理批判の声も「どう責任取る?」 ★10 [樽悶★]
- 【音楽】『日本レコード大賞』各賞発表! 大賞候補にILLIT、M!LK、ふるっぱー、幾田りら、アイナ、ミセスら… 作詩賞は指原莉乃 [冬月記者★]
- 「ドラゴンボール」初の全世界キャラクター人気投票が開幕!212キャラからナンバーワンが決まる!! [ひかり★]
- 中国、レアアース輸出制限wwwwwwwwwwwwwwwwwwwwwwww🎌 [329329848]
- マッサージ師だが
- 【訃報】日経平均先物逝く、円安株安債券安 [943688309]
- 【すべてが】𝗮𝗺͜𝗮͉𝘇𝗼𝗻ブラックフライデーSALE総合【いいだろ!】 [194819832]
- 俺らおっさんは野球大っ嫌いだよな!
- 教師(24)、5軒はしご飲酒→車を盗み飲酒運転→海水浴場で車を水没させ逃走→ずぶ濡れで別の車に乗り仮眠→持ち主に見つかり逃走の大暴れ [977261419]
