エスケープシーケンスやWin32APIなどの環境依存なものもOK
そのような質問は必ず環境を書きましょう
半角空白やタブでのインデントはスレに貼ると無くなります
コードを貼れる所
http://codepad.org/
https://ideone.com/
前スレ
【初心者歓迎】C/C++室 Ver.103【環境依存OK】
https://mevius.5ch.net/test/read.cgi/tech/1530384293/
探検
【初心者歓迎】C/C++室 Ver.104【環境依存OK】
レス数が1000を超えています。これ以上書き込みはできません。
2018/12/28(金) 06:04:52.38ID:ufThBpcD
962デフォルトの名無しさん
2019/04/22(月) 01:28:16.24ID:zAZ+Y0tC 機械学習とかアプリケーションレイヤの開発をしてて普段はJavaとかpythonで書いてるんだけど相談。
手間や保守を考えるといくら早く動作しても全部cで実装は厳しくて、複雑な計算とかだけcに渡そうと思うんだけど、このレイヤだとそんなもんだろうか?実際の仕事での使われ方の例があれば教えてほしい。
手間や保守を考えるといくら早く動作しても全部cで実装は厳しくて、複雑な計算とかだけcに渡そうと思うんだけど、このレイヤだとそんなもんだろうか?実際の仕事での使われ方の例があれば教えてほしい。
963はちみつ餃子 ◆8X2XSCHEME
2019/04/22(月) 05:12:41.91ID:oO3SHMUw 例外安全という言葉には色々と含まれるけど、
とりあえず最低限度の保証としては「リソースリークが起こらないこと」とすると、
C++ ではデストラクタで後始末するのが基本だ。
(RAII)
私が強調しておきたいのは、リソース管理の配慮はクラス定義に押し込めることが出来るということと、
可能な限り押し込めるべきだということ。
エラー発生の通知に使うのが返却値であれ例外であれ、
エラーへの対処の中にリソース回収のコードを書かなきゃならないようならその時点でダメなコードだ。
デストラクタで回収されることをあてにしたい。
(bad_alloc のような致命的なやつはちょっと話が違ってきたりとか、単純ではない場面はあるけど……。)
で、デストラクタでリソースを後始末するというのが出来ているという前提であれば、
例外を使うか返却値を使うかの差は対処のためのコードをどこにかくかの違いに過ぎなくなる。
Java と違って関数が送出する例外を型システムで管理してくれないわけだし、
引数をチェックしているかどうかもプログラマが気を付けるしかないので、そんなに違いはないと思う。
違いはないがどちらかに一貫させるのが望ましいと考えると、
C++ の基本的なライブラリに併せるべきだということになって例外を使うのが妥当という判断になる。
ちなみにグーグルのガイドラインが例外を避けることになっているのは
グーグルで使っている既存のコードが例外への配慮を充分にしてないから
やむを得ずそれに合わせるためでフルスクラッチに出来れば違う判断をするかも
ってことも書いてあるので、例外を避ける根拠としては弱い。
とりあえず最低限度の保証としては「リソースリークが起こらないこと」とすると、
C++ ではデストラクタで後始末するのが基本だ。
(RAII)
私が強調しておきたいのは、リソース管理の配慮はクラス定義に押し込めることが出来るということと、
可能な限り押し込めるべきだということ。
エラー発生の通知に使うのが返却値であれ例外であれ、
エラーへの対処の中にリソース回収のコードを書かなきゃならないようならその時点でダメなコードだ。
デストラクタで回収されることをあてにしたい。
(bad_alloc のような致命的なやつはちょっと話が違ってきたりとか、単純ではない場面はあるけど……。)
で、デストラクタでリソースを後始末するというのが出来ているという前提であれば、
例外を使うか返却値を使うかの差は対処のためのコードをどこにかくかの違いに過ぎなくなる。
Java と違って関数が送出する例外を型システムで管理してくれないわけだし、
引数をチェックしているかどうかもプログラマが気を付けるしかないので、そんなに違いはないと思う。
違いはないがどちらかに一貫させるのが望ましいと考えると、
C++ の基本的なライブラリに併せるべきだということになって例外を使うのが妥当という判断になる。
ちなみにグーグルのガイドラインが例外を避けることになっているのは
グーグルで使っている既存のコードが例外への配慮を充分にしてないから
やむを得ずそれに合わせるためでフルスクラッチに出来れば違う判断をするかも
ってことも書いてあるので、例外を避ける根拠としては弱い。
964デフォルトの名無しさん
2019/04/22(月) 07:22:42.90ID:kinTds5M ON ERR GOTO 100
965デフォルトの名無しさん
2019/04/22(月) 08:55:56.47ID:H+0HJxEG #define return goto
>>960
>いつもはうっとうしいQZ某が、今日は概ね論理的な物言いをしているように感じる。
あれ?れれ?
おっかしーなー、私もプログラムを書く人だし最低限自分の作ったバグくらいはさっさと片付けたいので、そのためにも、いつも論理的でありたいと願っているのですが…
>いつもはうっとうしいQZ某が、今日は概ね論理的な物言いをしているように感じる。
あれ?れれ?
おっかしーなー、私もプログラムを書く人だし最低限自分の作ったバグくらいはさっさと片付けたいので、そのためにも、いつも論理的でありたいと願っているのですが…
967デフォルトの名無しさん
2019/04/23(火) 13:32:34.33ID:TjU3QAMI そういうとこだよ
こういうのってたいてい本人は自覚してないもんだからやっかい
こういうのってたいてい本人は自覚してないもんだからやっかい
>>963
>違いはないがどちらかに一貫させるのが望ましいと考えると、
>C++ の基本的なライブラリに併せるべきだということになって例外を使うのが妥当という判断になる。
この意見に対しては私は痛烈な批判を浴びせることになるでしょう
曰く、C/C++ の人なら言語的な統一感よりもコスト、というか単純性を優先したくなるのではないですか?
UML のグジャグジャ感をみるにつけても、「言語法律家」なるものはきわめて忌むべき存在と私は考えています
exception を実装するためには、隠れグローバル変数をどうしても準備しなければならない
シングルコアで exception の履歴を単一スタックに全部のせることができるのなら、ローカルで sjlj を駆使して、あるいは書き手からみえないところで純ローカル変数的世界に納めることもできたかもしれませんが、
今やマルチコアで実際に複数のスタックとプログラムカウンタが走る時代で、exception の実装は OS に丸投げの複雑怪奇、ついでにコストも複雑怪奇でパンピーには理解が及ばない…
そんな巨大かつ複雑なスケールの実装を必要とするのに見合った exception のメリットは何か、今も自問自答を繰り返しているのです
>違いはないがどちらかに一貫させるのが望ましいと考えると、
>C++ の基本的なライブラリに併せるべきだということになって例外を使うのが妥当という判断になる。
この意見に対しては私は痛烈な批判を浴びせることになるでしょう
曰く、C/C++ の人なら言語的な統一感よりもコスト、というか単純性を優先したくなるのではないですか?
UML のグジャグジャ感をみるにつけても、「言語法律家」なるものはきわめて忌むべき存在と私は考えています
exception を実装するためには、隠れグローバル変数をどうしても準備しなければならない
シングルコアで exception の履歴を単一スタックに全部のせることができるのなら、ローカルで sjlj を駆使して、あるいは書き手からみえないところで純ローカル変数的世界に納めることもできたかもしれませんが、
今やマルチコアで実際に複数のスタックとプログラムカウンタが走る時代で、exception の実装は OS に丸投げの複雑怪奇、ついでにコストも複雑怪奇でパンピーには理解が及ばない…
そんな巨大かつ複雑なスケールの実装を必要とするのに見合った exception のメリットは何か、今も自問自答を繰り返しているのです
969デフォルトの名無しさん
2019/04/23(火) 19:28:11.67ID:TE76XOKd 単純さを選んだら例外になったというお話だったのさ。ちゃんちゃん
970デフォルトの名無しさん
2019/04/23(火) 19:47:47.79ID:BSgCsXpz なぜsjljにこだわるのか
コルーチンとか標準化されても使わなそうだな
コルーチンとか標準化されても使わなそうだな
971デフォルトの名無しさん
2019/04/23(火) 19:58:30.12ID:TE76XOKd c++の言語仕様に例外の実装にはグローバル変数使えとかSJLJ使えなんて縛りあったっけ?
>>971
実装方法までは言語仕様に記述されないでしょうね…
実装方法までは言語仕様に記述されないでしょうね…
973デフォルトの名無しさん
2019/04/23(火) 20:23:18.80ID:TE76XOKd >>972
ということは例外の実装にまで踏み込んで考えるのはナンセンスなのでは?
ということは例外の実装にまで踏み込んで考えるのはナンセンスなのでは?
974デフォルトの名無しさん
2019/04/23(火) 21:32:22.59ID:lLaZpSEH >>968
例外がos丸投げってのは事実誤認
例外がos丸投げってのは事実誤認
975デフォルトの名無しさん
2019/04/23(火) 21:35:59.14ID:lLaZpSEH ちなみにおれはc++の例外は大規模開発でworkしないと思ってるから
経験上ひたすら面倒な事態になる
言語仕様決めてるやつらは言語オタクで大規模開発の経験ないと思ってる
経験上ひたすら面倒な事態になる
言語仕様決めてるやつらは言語オタクで大規模開発の経験ないと思ってる
976はちみつ餃子 ◆8X2XSCHEME
2019/04/23(火) 21:51:05.06ID:K0ADJPpo >>968
いつの話をしてるんだよ。 モダンな環境では例外送出の実行コストは充分に小さい。
特別な環境で特別な対処をしなきゃならない場合を例に出しても意味がないぞ。
ふーん、そういう場合はそうするんですねとしか言いようが無い。
いつの話をしてるんだよ。 モダンな環境では例外送出の実行コストは充分に小さい。
特別な環境で特別な対処をしなきゃならない場合を例に出しても意味がないぞ。
ふーん、そういう場合はそうするんですねとしか言いようが無い。
977デフォルトの名無しさん
2019/04/23(火) 21:58:50.41ID:lLaZpSEH978デフォルトの名無しさん
2019/04/23(火) 21:59:02.76ID:TE76XOKd 抽象化ができずどんな粒度でも低級のセオリーを通そうとする
早すぎる最適化がとにかく大好き
C++erに多いねこのタイプ
早すぎる最適化がとにかく大好き
C++erに多いねこのタイプ
979デフォルトの名無しさん
2019/04/23(火) 22:01:01.11ID:TE76XOKd >>977
クリティカルってどんな時?
クリティカルってどんな時?
980デフォルトの名無しさん
2019/04/23(火) 22:03:19.80ID:lLaZpSEH >>979
リアルタイム性が求められるとき
リアルタイム性が求められるとき
981デフォルトの名無しさん
2019/04/23(火) 22:04:43.29ID:lLaZpSEH >>978
アホみたいにmap使いまくって後でひどい目に遭うアホもよく見るな
アホみたいにmap使いまくって後でひどい目に遭うアホもよく見るな
982デフォルトの名無しさん
2019/04/23(火) 22:12:51.54ID:TE76XOKd >>980
それが必要なのってC++コード全体からすると何パーセントくらいなの?
それが必要なのってC++コード全体からすると何パーセントくらいなの?
983デフォルトの名無しさん
2019/04/23(火) 22:15:51.20ID:lLaZpSEH984デフォルトの名無しさん
2019/04/23(火) 22:18:09.81ID:TE76XOKd985デフォルトの名無しさん
2019/04/23(火) 22:21:23.75ID:lLaZpSEH986デフォルトの名無しさん
2019/04/23(火) 22:26:00.43ID:5E3fgZzA 痛い目に遭ったのかw
987デフォルトの名無しさん
2019/04/23(火) 22:28:35.69ID:TE76XOKd >>985
君はまだ話の流れを理解してないようだ
君はまだ話の流れを理解してないようだ
988デフォルトの名無しさん
2019/04/23(火) 22:34:01.99ID:lLaZpSEH 合ってるね
スクリプト言語あがりと一緒に仕事すると高い確率でそうなる
同じ事をいうんだよ
最初は抽象度高く作ってあとで最適化って
結局しないからね
だいたい薄く広く積もったオーバーヘッドは表面化しないから
んでもっさりアプリの出来上がり
であとで精鋭集めて作り直し
スクリプト言語あがりと一緒に仕事すると高い確率でそうなる
同じ事をいうんだよ
最初は抽象度高く作ってあとで最適化って
結局しないからね
だいたい薄く広く積もったオーバーヘッドは表面化しないから
んでもっさりアプリの出来上がり
であとで精鋭集めて作り直し
989デフォルトの名無しさん
2019/04/23(火) 22:36:43.29ID:TE76XOKd990デフォルトの名無しさん
2019/04/23(火) 22:43:26.94ID:lLaZpSEH991デフォルトの名無しさん
2019/04/23(火) 22:44:12.87ID:5E3fgZzA システム解析能力が無いせいじゃないか
992さまよえる蟻人間 ◆T6xkBnTXz7B0
2019/04/23(火) 22:47:06.24ID:DAl4rXky そろそろ次スレ
993デフォルトの名無しさん
2019/04/23(火) 22:49:51.07ID:TE76XOKd >>990
その大事な大事なUXを向上させるために抽象化するんだよ新人君
その大事な大事なUXを向上させるために抽象化するんだよ新人君
994デフォルトの名無しさん
2019/04/23(火) 22:59:41.83ID:be9PrXZY さすがにそれは意味不明では?
過剰なオブジェクト指向でダメになったプロジェクトは数知れず
過剰なオブジェクト指向でダメになったプロジェクトは数知れず
995デフォルトの名無しさん
2019/04/23(火) 23:01:47.82ID:TE76XOKd >>994
やっぱり流れを理解してないね
やっぱり流れを理解してないね
996デフォルトの名無しさん
2019/04/23(火) 23:05:38.01ID:lLaZpSEH そういうのいいから
説明できないならそこでおしまい
説明できないならそこでおしまい
997デフォルトの名無しさん
2019/04/23(火) 23:13:00.31ID:TE76XOKd UXの向上にはフィールドバックと変更のループが必要
度々の変更を容易たらしめるためには適切な抽象化が必要
最初から速度最適化に傾倒して抽象性を失ったシステムは変更しにくいゴミUXを抱え続ける
度々の変更を容易たらしめるためには適切な抽象化が必要
最初から速度最適化に傾倒して抽象性を失ったシステムは変更しにくいゴミUXを抱え続ける
998デフォルトの名無しさん
2019/04/23(火) 23:47:41.32ID:NBxQbW0f 御託ご苦労さん
でそれどっからの流れなの?
お前さんに一度map乱用ボトルネックを一晩でtableに置き換える作業やらせてみたいわ
多数のモジュールと繋がってるやつな
最初から見積り立てて設計しとけよボケってどなられるやつな
でそれどっからの流れなの?
お前さんに一度map乱用ボトルネックを一晩でtableに置き換える作業やらせてみたいわ
多数のモジュールと繋がってるやつな
最初から見積り立てて設計しとけよボケってどなられるやつな
999はちみつ餃子 ◆8X2XSCHEME
2019/04/24(水) 00:43:26.47ID:kf0sNkPB10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 116日 18時間 38分 57秒
新しいスレッドを立ててください。
life time: 116日 18時間 38分 57秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【生成ポルノで初】AI生成の児童ポルノ画像の所持疑いで元教諭を初摘発… [BFU★]
- 58歳ミュージシャン俳優、高市首相のアーティスト支援表明に「自分で潰しておいてどの口が…」 [muffin★]
- 鈴木農相、地元JAから借入金 おこめ券巡り利害誘導との批判も [ちょこ★]
- 【千葉】「今ぶつかっただろ。痛えじゃねえか。骨折れてるぞ。慰謝料払えよ」 松戸駅で40代男性に因縁をつけ暴行、強盗 男5人を逮捕 [シャチ★]
- 【トルコ】赤城山に廃棄物のコンクリートなどおよそ3トンを投棄か 5人逮捕 茨城県警… [BFU★]
- 【速報】山本由伸のWBC欠場決定! [牛丼★]
- 【実況】博衣こよりのえちえちディスコードショッキング 🧪★2
- 自民党「世界の真ん中で咲き誇る日本外交を取り戻す」 [834922174]
- 「愛国者」たちは本当に国を愛しているのか。なぜ愛国者なのに結婚もせず子供もいない人がいるのか [268718286]
- 年末俺「あー、ふるさと納税忘れてたわ」「いつものでええか…」 倦怠期へ [399583221]
- 政府「助けて…少子化を止めるには、どうすればいいの…」 [863490854]
- 日本人、ガチで貧乏になる。消費支出が3.0%減。自動車は新車残クレアルファードから軽自動車や中古に…😭 [271912485]
