エスケープシーケンスや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】
■ このスレッドは過去ログ倉庫に格納されています
2018/12/28(金) 06:04:52.38ID:ufThBpcD
258デフォルトの名無しさん
2019/01/21(月) 02:42:47.97ID:sP4gcHu6 例外でイベント発生させて、イベントハンドラで受けるのはど?
259デフォルトの名無しさん
2019/01/21(月) 06:13:04.33ID:NbFzEAOW260デフォルトの名無しさん
2019/01/21(月) 07:28:30.34ID:sP4gcHu6 swith caseで分岐する場合もあれば、
関数へのポインタテーブル作って、ジャンプさせる場合もあるわけで、
例外も戻り値分岐も両方普通に使わないか?
C++てイベントとかイベントハンドラは環境とかboost任せで、言語仕様としては未だに確定してないのか?
C++11でようやくマルチスレッドや排他制御が仕様に盛り込まれたり、
テンプレートの仕様いじくるよりこっちの方がよっぽど大事なんじゃないのか?
関数へのポインタテーブル作って、ジャンプさせる場合もあるわけで、
例外も戻り値分岐も両方普通に使わないか?
C++てイベントとかイベントハンドラは環境とかboost任せで、言語仕様としては未だに確定してないのか?
C++11でようやくマルチスレッドや排他制御が仕様に盛り込まれたり、
テンプレートの仕様いじくるよりこっちの方がよっぽど大事なんじゃないのか?
261デフォルトの名無しさん
2019/01/21(月) 08:25:41.60ID:vJCo0PxF >保証は言語側でやってくれるから言及する必要がないだけのこと
保証なんてしないよね?catch忘れたらそのまま上まですっ飛んでいくだけ。
Javaのような検査例外ならそこに差異があることを意識されられるかもしれないけど。
>そもそも例外は>>249の言う通りその場所で必要なものをキャッチして処理をすればいいだけ
そこでプログラマが考える「必要なもの」から漏れた例外は上位へ渡されてしまう。
それを防ぐためには呼び出し先から送られる可能性のあるすべての例外を把握する必要があるが、
検査例外がないなら動的型付言語のように投げる側と受け取る側とで平仄を合わせてやるしかない。
保証なんてしないよね?catch忘れたらそのまま上まですっ飛んでいくだけ。
Javaのような検査例外ならそこに差異があることを意識されられるかもしれないけど。
>そもそも例外は>>249の言う通りその場所で必要なものをキャッチして処理をすればいいだけ
そこでプログラマが考える「必要なもの」から漏れた例外は上位へ渡されてしまう。
それを防ぐためには呼び出し先から送られる可能性のあるすべての例外を把握する必要があるが、
検査例外がないなら動的型付言語のように投げる側と受け取る側とで平仄を合わせてやるしかない。
262デフォルトの名無しさん
2019/01/21(月) 08:37:50.82ID:Kndge7xV 大前提が間違ってる
例外なんか最終的にはフレームワークが最上位で纏めてキャッチすりゃいいんだよ
途中でキャッチして処理するのはあくまでベターなオプションであり、それを必須とするような作りにしてはいけない
例外なんか最終的にはフレームワークが最上位で纏めてキャッチすりゃいいんだよ
途中でキャッチして処理するのはあくまでベターなオプションであり、それを必須とするような作りにしてはいけない
263デフォルトの名無しさん
2019/01/21(月) 08:55:24.27ID:NbFzEAOW264デフォルトの名無しさん
2019/01/21(月) 08:56:49.38ID:vJCo0PxF >>262
半分同意。
結局のところエラーの種類に応じてきっちり対処するなら検査例外的な仕組みが必要になるが
そうでなければエラーの内容など見ずにlet it crash的に対処するしかない。
どっちつかずが一番ダメなやつ。
半分同意。
結局のところエラーの種類に応じてきっちり対処するなら検査例外的な仕組みが必要になるが
そうでなければエラーの内容など見ずにlet it crash的に対処するしかない。
どっちつかずが一番ダメなやつ。
265デフォルトの名無しさん
2019/01/21(月) 08:58:29.41ID:Kndge7xV (検査例外とかいうJava自身も認める失敗作は論外として、)例外機構は正しく使えばエラー処理に対する関心の分離に有効なんだよ。
ところがC++では例外を煩わしいノイズと見做す人が多い。これは即ち関心の分離ができてないわけだ。
その一番の原因は、例外型がロクに標準化されてないことだろうね。
最上位での集約処理を実現するには、下位の全てのコードが制御下になければならない。
これは膨大な既存資産と貧弱な標準ライブラリを持つC++においては非現実的な前提である。
ところがC++では例外を煩わしいノイズと見做す人が多い。これは即ち関心の分離ができてないわけだ。
その一番の原因は、例外型がロクに標準化されてないことだろうね。
最上位での集約処理を実現するには、下位の全てのコードが制御下になければならない。
これは膨大な既存資産と貧弱な標準ライブラリを持つC++においては非現実的な前提である。
266デフォルトの名無しさん
2019/01/21(月) 08:58:39.64ID:unEY8tjt すべての例外を把握する必要はない
回復可能かつ回復が要件に含まれるなら個別に処理すべき
それ以外はアスペクトで処理すればいい
回復可能かつ回復が要件に含まれるなら個別に処理すべき
それ以外はアスペクトで処理すればいい
267デフォルトの名無しさん
2019/01/21(月) 09:04:47.90ID:nVlZ7k5e >>247
だからさ、比較できるように例外スタイルで一度きちっと異常系対応して
かつスーパーエレガントなのを書いてくれよって言ってんの
お前のは体よく異常系の処理全無視してるだけじゃん
catchしたい人が必要なところでcatchすればとか言うんだろうけど
例外発生場所から遠くなればなるだけ何が原因で例外が発生して、
その回避はどうすればいいかが不明瞭になっていくってのは
散々語られてる例外の欠点
リターンコードは泥臭いが下層からくるエラーをどう処理してるかはコード見れば一目瞭然
エラーを上位に伝搬させるか、リカバリーするか、その場でクラッシュさせるか
ローカルに記述が完結できてる
APIとして外部に公開するときもインタフェースの仕様にきっちり責任持たせることができる
ちなみにプルリクでレビューする文化があればエラー無視してるような雑はコードは突き返されるだろう
見ればすぐわかるんだから
大規模な開発を経験したことない人はこういう観点でソフトウェア開発を
考えられないんだよ
最後にもう一度言っておくけどおれは例外を完全否定してるわけじゃねーから
使える場所は限られるって意見ね
だからさ、比較できるように例外スタイルで一度きちっと異常系対応して
かつスーパーエレガントなのを書いてくれよって言ってんの
お前のは体よく異常系の処理全無視してるだけじゃん
catchしたい人が必要なところでcatchすればとか言うんだろうけど
例外発生場所から遠くなればなるだけ何が原因で例外が発生して、
その回避はどうすればいいかが不明瞭になっていくってのは
散々語られてる例外の欠点
リターンコードは泥臭いが下層からくるエラーをどう処理してるかはコード見れば一目瞭然
エラーを上位に伝搬させるか、リカバリーするか、その場でクラッシュさせるか
ローカルに記述が完結できてる
APIとして外部に公開するときもインタフェースの仕様にきっちり責任持たせることができる
ちなみにプルリクでレビューする文化があればエラー無視してるような雑はコードは突き返されるだろう
見ればすぐわかるんだから
大規模な開発を経験したことない人はこういう観点でソフトウェア開発を
考えられないんだよ
最後にもう一度言っておくけどおれは例外を完全否定してるわけじゃねーから
使える場所は限られるって意見ね
268デフォルトの名無しさん
2019/01/21(月) 09:07:50.76ID:nVlZ7k5e269デフォルトの名無しさん
2019/01/21(月) 09:11:48.87ID:nVlZ7k5e 「不正な入力です」
「ネットワークでエラーが発生しました」
「書き込みに失敗しました」
こういう情けないダイアログが表示させて終わりのアプリを作るやつね
「ネットワークでエラーが発生しました」
「書き込みに失敗しました」
こういう情けないダイアログが表示させて終わりのアプリを作るやつね
270デフォルトの名無しさん
2019/01/21(月) 09:19:18.64ID:9okmCQOj >>269
それでも正常に回復できてるならそれでいいケースは多い
例外の最大の利点は例外安全さえ死守できていればアドホックな例外処理が必須でなくなることで、
より丁寧な処理が必要になれば後から追加すればよい
まあ組み込みとかやってる人には馴染まない考え方だろうね
それでも正常に回復できてるならそれでいいケースは多い
例外の最大の利点は例外安全さえ死守できていればアドホックな例外処理が必須でなくなることで、
より丁寧な処理が必要になれば後から追加すればよい
まあ組み込みとかやってる人には馴染まない考え方だろうね
271デフォルトの名無しさん
2019/01/21(月) 09:35:09.59ID:9okmCQOj まあC++開発者が未処理例外=クラッシュと短絡的に考えてしまう気持ちはよく分かるよ
呼び出し階層の途中に一つでも if (hoge() != SUCCESS) errorhandle(); があれば例外安全は破綻するわけで、あまりにも非現実的
呼び出し階層の途中に一つでも if (hoge() != SUCCESS) errorhandle(); があれば例外安全は破綻するわけで、あまりにも非現実的
272デフォルトの名無しさん
2019/01/21(月) 09:54:05.98ID:NbFzEAOW273デフォルトの名無しさん
2019/01/21(月) 10:02:59.35ID:+Z2Zhk1G >>267
> 例外発生場所から遠くなればなるだけ何が原因で例外が発生して、
> その回避はどうすればいいかが不明瞭になっていくってのは
> 散々語られてる例外の欠点
それ戻り値スタイルでも同じだろ
> リターンコードは泥臭いが下層からくるエラーをどう処理してるかはコード見れば一目瞭然
だからそれはすぐ上位で処理することが前提になってるだろ
上位に何度も伝搬したら例外と同じになる上に伝搬するコードをそこら中に書く羽目になる
> ちなみにプルリクでレビューする文化があればエラー無視してるような雑はコードは突き返されるだろう
例外処理を書かないことはエラーを無視するんじゃなくてそのまま上位に伝搬してるだけ
書かないと無視してると取るのは例外をきちんと理解してないってこと
> 見ればすぐわかるんだから
お前の能力がな w
> 例外発生場所から遠くなればなるだけ何が原因で例外が発生して、
> その回避はどうすればいいかが不明瞭になっていくってのは
> 散々語られてる例外の欠点
それ戻り値スタイルでも同じだろ
> リターンコードは泥臭いが下層からくるエラーをどう処理してるかはコード見れば一目瞭然
だからそれはすぐ上位で処理することが前提になってるだろ
上位に何度も伝搬したら例外と同じになる上に伝搬するコードをそこら中に書く羽目になる
> ちなみにプルリクでレビューする文化があればエラー無視してるような雑はコードは突き返されるだろう
例外処理を書かないことはエラーを無視するんじゃなくてそのまま上位に伝搬してるだけ
書かないと無視してると取るのは例外をきちんと理解してないってこと
> 見ればすぐわかるんだから
お前の能力がな w
274デフォルトの名無しさん
2019/01/21(月) 12:21:37.48ID:Di3L4KSP >>267
例外を使いこなせていないね
例外の型とパラメータをみれば何が起こったかはっきりわかる
おそらく君は例外の種類を使い分ける習慣がないだろ?
あったとしてもせいぜい標準ライブラリの例外をなんとなくふり分ける程度だろうね
でないとこんな発言はしないから
まずは例外を定義するところから初めてごらん
それと大規模開発をしたことがないのはそちらだろう
関数コールするたびにずらずらと変数や分岐を書かれたらあっという間に管理不能になる
大規模だからこそ標準的なコード、必要十分なコードというのが大切になる
例外を使いこなせていないね
例外の型とパラメータをみれば何が起こったかはっきりわかる
おそらく君は例外の種類を使い分ける習慣がないだろ?
あったとしてもせいぜい標準ライブラリの例外をなんとなくふり分ける程度だろうね
でないとこんな発言はしないから
まずは例外を定義するところから初めてごらん
それと大規模開発をしたことがないのはそちらだろう
関数コールするたびにずらずらと変数や分岐を書かれたらあっという間に管理不能になる
大規模だからこそ標準的なコード、必要十分なコードというのが大切になる
275デフォルトの名無しさん
2019/01/21(月) 12:52:23.62ID:Di3L4KSP リターンコードスタイルをレビューに出すと袋叩きにされるぞ
・ノイズが多すぎて正常系のレビューが不可能
・同じくどのエラーが上位伝達、エラー変換、共通対応、個別対応なのか見てすぐにわからない
・同じく要件漏れを見落としやすい
・正常系、異常系、判断、伝達などあらゆる要素が密集して強く結合しているため仕様変更があった場合の影響が大きすぎてレビューしきれない
・ノイズが多すぎて正常系のレビューが不可能
・同じくどのエラーが上位伝達、エラー変換、共通対応、個別対応なのか見てすぐにわからない
・同じく要件漏れを見落としやすい
・正常系、異常系、判断、伝達などあらゆる要素が密集して強く結合しているため仕様変更があった場合の影響が大きすぎてレビューしきれない
276デフォルトの名無しさん
2019/01/21(月) 13:00:29.05ID:9okmCQOj277デフォルトの名無しさん
2019/01/21(月) 13:01:15.22ID:9okmCQOj278デフォルトの名無しさん
2019/01/21(月) 13:05:57.47ID:eQbQQa6X レビュアーの経験値不足って感が否めない
279デフォルトの名無しさん
2019/01/21(月) 13:14:15.22ID:NbFzEAOW280デフォルトの名無しさん
2019/01/21(月) 13:20:41.40ID:9okmCQOj281デフォルトの名無しさん
2019/01/21(月) 13:46:08.82ID:NbFzEAOW >>280
ごめん、言ってることがよくわからん
そもそも
if (hoge() != SUCCESS) errorhandle();
なんてコードがあったら戻り値スタイルでもどうしようもない
例外は魔法の杖じゃないんだから何でもかんでも例外使えば解決するわけじゃなくて戻り値スタイルより楽にできるというだけの事だよ
プログラムがデカくなるほどその差は開くけど
ごめん、言ってることがよくわからん
そもそも
if (hoge() != SUCCESS) errorhandle();
なんてコードがあったら戻り値スタイルでもどうしようもない
例外は魔法の杖じゃないんだから何でもかんでも例外使えば解決するわけじゃなくて戻り値スタイルより楽にできるというだけの事だよ
プログラムがデカくなるほどその差は開くけど
282デフォルトの名無しさん
2019/01/21(月) 15:00:28.97ID:9okmCQOj283デフォルトの名無しさん
2019/01/21(月) 15:09:35.03ID:NbFzEAOW284デフォルトの名無しさん
2019/01/21(月) 15:25:30.15ID:9okmCQOj285デフォルトの名無しさん
2019/01/21(月) 15:27:04.68ID:NbFzEAOW 流石に恥ずかしくね? w
286デフォルトの名無しさん
2019/01/21(月) 15:51:37.78ID:GjW/cezm287デフォルトの名無しさん
2019/01/21(月) 16:15:33.27ID:NbFzEAOW で、そんな当たり前のことを言って何が言いたいの?
聞きかじりの知識を披露してるとしか思えないんだが… w
聞きかじりの知識を披露してるとしか思えないんだが… w
288デフォルトの名無しさん
2019/01/21(月) 18:01:37.80 例外機構は宗教
多くの人が正しいと盲信しているに過ぎない
多くの人が正しいと盲信しているに過ぎない
289デフォルトの名無しさん
2019/01/21(月) 21:32:31.75ID:sP4gcHu6 戻り値でイベント投げるという選択肢がない言語使用自体くそじゃね?
290デフォルトの名無しさん
2019/01/21(月) 22:06:05.18ID:5kYBxhZB Cにそんな機能あったっけ?
それとも別の言語の信者が折伏に来ているの?
それとも別の言語の信者が折伏に来ているの?
291デフォルトの名無しさん
2019/01/21(月) 23:00:01.73ID:vJCo0PxF293はちみつ餃子 ◆8X2XSCHEME
2019/01/22(火) 02:54:09.24ID:FdSNzm47 例外の処理速度については、こういう提案もある。
https://ezoeryou.github.io/blog/article/2018-07-10-static-exception.html
要するに、投げるオブジェクトが条件を満たすときは、
暗黙の返却値のような形で例外を伝播する仕組み。
バイナリレベルの取り扱いも ABI を決めさえすれば済むだろうし、
互換性も確保しやすそうに思う。
https://ezoeryou.github.io/blog/article/2018-07-10-static-exception.html
要するに、投げるオブジェクトが条件を満たすときは、
暗黙の返却値のような形で例外を伝播する仕組み。
バイナリレベルの取り扱いも ABI を決めさえすれば済むだろうし、
互換性も確保しやすそうに思う。
294デフォルトの名無しさん
2019/01/22(火) 07:12:53.52ID:c7vqWXz4 どう見ても例外否定派の方が宗教がかってる…
295デフォルトの名無しさん
2019/01/22(火) 08:50:21.38ID:Z/sMOZE7 環境の方の質問NGなら完全スルーでお願いします
Windows8.1 64bit のうえで Windows98SE でも動く C のバイナリを作ろうと思ってるのですが
LSI C 試食版以外に何か良い方法がないかなあと…
Windows98SE の方に Visual C++ 6.0 & SP6 をインストールしても良いのかも知れませんが
DLL の整合性とか不安
VC++ 2005 は iso 持ってるだけ…Windows98SE で動くバイナリが生成できるとか何とか
Windows8.1 64bit のうえで Windows98SE でも動く C のバイナリを作ろうと思ってるのですが
LSI C 試食版以外に何か良い方法がないかなあと…
Windows98SE の方に Visual C++ 6.0 & SP6 をインストールしても良いのかも知れませんが
DLL の整合性とか不安
VC++ 2005 は iso 持ってるだけ…Windows98SE で動くバイナリが生成できるとか何とか
296デフォルトの名無しさん
2019/01/22(火) 09:09:13.74ID:Z/sMOZE7 業務で使った経験は一切ないです
使い捨てレベルのものを書くのが目的です
使い捨てレベルのものを書くのが目的です
297デフォルトの名無しさん
2019/01/22(火) 12:47:22.45ID:beRmTaV+ TEST::TEST()
{
うんたら
}
ってコンストラスタがあって、このクラスにパラメータ付のコンストラスタを追加したいとき
C# だったら
TEST::TEST(int param) : this()
{
増やす機能
}
みたいに書きますが C++ の場合はどうやって書きますか
{
うんたら
}
ってコンストラスタがあって、このクラスにパラメータ付のコンストラスタを追加したいとき
C# だったら
TEST::TEST(int param) : this()
{
増やす機能
}
みたいに書きますが C++ の場合はどうやって書きますか
298デフォルトの名無しさん
2019/01/22(火) 13:28:39.91ID:/wbMKv3O TEST::TEST(int param) : クラスのパラメータ(param)
{
増やす機能
}
{
増やす機能
}
299デフォルトの名無しさん
2019/01/22(火) 14:01:29.45ID:mZt3aCP3300はちみつ餃子 ◆8X2XSCHEME
2019/01/22(火) 14:03:25.02ID:FdSNzm47 >>295-296
LSI-C試食版 って Windows 用どころか MS-DOS (16bit) の、しかもスモールモデルしか作れないじゃん。
使い捨ての、いいかげんな富豪的プログラミングしたらすぐメモリ足りなくなるぞ。
ワイとしては Open Watcom C++ を推すやで。
LSI-C試食版 って Windows 用どころか MS-DOS (16bit) の、しかもスモールモデルしか作れないじゃん。
使い捨ての、いいかげんな富豪的プログラミングしたらすぐメモリ足りなくなるぞ。
ワイとしては Open Watcom C++ を推すやで。
301デフォルトの名無しさん
2019/01/22(火) 14:11:32.02ID:/wbMKv3O302デフォルトの名無しさん
2019/01/22(火) 15:51:04.50ID:DsO4NZlu LSI-Cとかなっつw
昔の勉強用コンパイラといったらこれだったな
昔の勉強用コンパイラといったらこれだったな
303デフォルトの名無しさん
2019/01/22(火) 16:10:30.87ID:3oaAhSoC LS愛ちゃん
305デフォルトの名無しさん
2019/01/22(火) 17:01:23.17ID:8l7UUA+M LatticeCとかBDS-Cとか使ってたわ
306デフォルトの名無しさん
2019/01/22(火) 17:22:22.39ID:beRmTaV+307デフォルトの名無しさん
2019/01/22(火) 18:21:52.81ID:Z/sMOZE7 bcc32c でコンパイルしたバイナリが Win98SE 上で動くことを確認…
Win98SE 上だと Turbo C が動くことを確認…
Open Watcom C++ というのは存じませんでした
確認してみます
Win98SE 上だと Turbo C が動くことを確認…
Open Watcom C++ というのは存じませんでした
確認してみます
308デフォルトの名無しさん
2019/01/22(火) 18:30:45.76ID:hELj0NVW 森公一郎さん、4年前に亡くなってる
309デフォルトの名無しさん
2019/01/22(火) 18:51:51.72ID:c7vqWXz4310デフォルトの名無しさん
2019/01/22(火) 20:54:28.21ID:Z/sMOZE7 DLL hell に躊躇
311デフォルトの名無しさん
2019/01/22(火) 23:43:17.99ID:f8uEJHYw LSI-C試食版www
懐かしいなあ
あの頃はものすごくCPU遅かったよね
486にして感激したからな
もうC言語でプログラムはしたくない
C++だ・・・
懐かしいなあ
あの頃はものすごくCPU遅かったよね
486にして感激したからな
もうC言語でプログラムはしたくない
C++だ・・・
312デフォルトの名無しさん
2019/01/23(水) 03:50:30.92ID:2NaZdHzA コメントに//が使えない時点でもうダメだな俺はw
313デフォルトの名無しさん
2019/01/23(水) 06:49:23.93ID:u7DJzLvn 古いOSでも動作させたいけど、ソースは新しい規格で書きたい、
と言うのは要望としてはありうるな。
>>295 はLSI-C試食版(C89相当だっけ?)を使ってるようだから、
そのクチではないのかも知れんけど。
と言うのは要望としてはありうるな。
>>295 はLSI-C試食版(C89相当だっけ?)を使ってるようだから、
そのクチではないのかも知れんけど。
314デフォルトの名無しさん
2019/01/23(水) 07:14:34.51ID:aGw/aeEH >>310
今時なら仮想マシンでやればいいだけだろ
今時なら仮想マシンでやればいいだけだろ
315デフォルトの名無しさん
2019/01/23(水) 08:57:06.72ID:A4LjhfFf316315
2019/01/23(水) 08:57:45.81ID:A4LjhfFf コメントが複数行にわたる前提ね
317デフォルトの名無しさん
2019/01/23(水) 09:18:31.94ID:NxchbiGL だから何?
それに同意しようがしまいが単一行コメントのときに面倒なのは変わらないよね
個人的にはエディタがコメントの一括付け外しに対応してるなら複数行でも//の方が見やすいと思ってるけど
それに同意しようがしまいが単一行コメントのときに面倒なのは変わらないよね
個人的にはエディタがコメントの一括付け外しに対応してるなら複数行でも//の方が見やすいと思ってるけど
318デフォルトの名無しさん
2019/01/23(水) 09:36:35.20ID:WSWjtujW C言語の a=b; って
アセンブラで言うと、メモリ→レジスタ→メモリって移し替えてるのと同じ?
メモリ→メモリにデータコピーする時って、必ずレジスタを経由しないとだめなのかな?
アセンブラ勉強初めたばっかで何言ってんだこいつ的な感じだったらごめん。
アセンブラで言うと、メモリ→レジスタ→メモリって移し替えてるのと同じ?
メモリ→メモリにデータコピーする時って、必ずレジスタを経由しないとだめなのかな?
アセンブラ勉強初めたばっかで何言ってんだこいつ的な感じだったらごめん。
319はちみつ餃子 ◆8X2XSCHEME
2019/01/23(水) 10:06:54.98ID:+T2/7smM >>318
CPU の種類による。
アセンブラはアセンブラという言語の規格があるわけではなくて、
各コンピュータの機械語の単語を便宜的に読みやすい書式に置き換えた
ものの総称なので、使える命令は各アーキテクチャのデザインに従うし、
書式のバリエーションもある。 いくつかの伝統的な習慣はあるけれど。
データの移送にレジスタを経由しなければならないようなデザインの CPU もあるし、
そうでないものもある。
メモリアクセスをする命令とその他演算の命令を明確に分離するようなデザインの
アーキテクチャを特に Load?store architecture と呼んでる。
https://en.wikipedia.org/wiki/Load%E2%80%93store_architecture
コンピュータの設計の根本を左右する方針の違いなので、
理解があやふやとはいえ、ここに引っかかりを感じたというのは才能を感じる。
CPU の種類による。
アセンブラはアセンブラという言語の規格があるわけではなくて、
各コンピュータの機械語の単語を便宜的に読みやすい書式に置き換えた
ものの総称なので、使える命令は各アーキテクチャのデザインに従うし、
書式のバリエーションもある。 いくつかの伝統的な習慣はあるけれど。
データの移送にレジスタを経由しなければならないようなデザインの CPU もあるし、
そうでないものもある。
メモリアクセスをする命令とその他演算の命令を明確に分離するようなデザインの
アーキテクチャを特に Load?store architecture と呼んでる。
https://en.wikipedia.org/wiki/Load%E2%80%93store_architecture
コンピュータの設計の根本を左右する方針の違いなので、
理解があやふやとはいえ、ここに引っかかりを感じたというのは才能を感じる。
320デフォルトの名無しさん
2019/01/23(水) 15:54:30.09ID:WSWjtujW >>319
自分が勉強してたCPUがたまたまレジスタ必要とするものだったということですね。ありがとうございます。
あと、intelとryzenは、どちらのCPUであっても殆どのソフトは動作しますが
この2つのCPUのアーキテクチャオペランドは同じということでしょうか?
ゲームなんかは高速化の部分でアセンブラ使う場所も頻繁にあるんじゃないかなと思うのですが。
自分が勉強してたCPUがたまたまレジスタ必要とするものだったということですね。ありがとうございます。
あと、intelとryzenは、どちらのCPUであっても殆どのソフトは動作しますが
この2つのCPUのアーキテクチャオペランドは同じということでしょうか?
ゲームなんかは高速化の部分でアセンブラ使う場所も頻繁にあるんじゃないかなと思うのですが。
321デフォルトの名無しさん
2019/01/23(水) 16:07:56.74ID:WSWjtujW すみません自己解決。
x64ですね。
x64ですね。
322デフォルトの名無しさん
2019/01/23(水) 22:57:36.31ID:A4LjhfFf >>317
wwww
逆に、だから何?
エディタが/* 入力と同時に
*/ を自動挿入してくれるなら全く変わらないだろ
それともおまえのエディタは / 入力で
もひとつ/ を自動挿入するように設定でもしてるのか?
ゆとりもここまで来るとどーしよーもねーな。
wwww
逆に、だから何?
エディタが/* 入力と同時に
*/ を自動挿入してくれるなら全く変わらないだろ
それともおまえのエディタは / 入力で
もひとつ/ を自動挿入するように設定でもしてるのか?
ゆとりもここまで来るとどーしよーもねーな。
323デフォルトの名無しさん
2019/01/23(水) 23:18:56.27ID:A4LjhfFf >>318
>>319
状況によるが、
a = b;
はメモリを介せず、できるだけレジスタ間コピーになるように最適化される。
んでメモリ to メモリを許すのはCISCと相場が決まってる
RISCはメモリ to メモリは命令にない 。命令セットを減らしてるからこそ reduce
このおかげで回路が簡単になり、所用クロック数をほぼ等しくして、クロック(Hz)をあげることができた。
このタイプはメモリ→レジスタ→メモリとせざるを得ない
今は、パイプラインを深くして、CISCでもクロックをあげられるようになったのでRISC/CISCはあんまり関係なくなった。
CICSの代表はx86なのでメモリ→メモリ命令セット調べてみ。
CISCの歴史的な経緯がわかるのは、これもCISC代表のx68kやH8は、命令セットごとに大幅に所用クロック数が違う。
それに対してx86の流れをくむ最新設計のRL78だとほとんどの命令セットが1クロックとなって。RISCと変わらない上に、
メモリ to メモリが可能となってる。それでも メモリ to レジスタに比べて1クロック増えてる。
メモリ to メモリ とレジスタ to メモリを同クロック数で実行しようとするなら、 バスラインがもう一組(例えば32bit)必要になった上に、
2ポートメモリが必要になってしまうwwww
>>319
状況によるが、
a = b;
はメモリを介せず、できるだけレジスタ間コピーになるように最適化される。
んでメモリ to メモリを許すのはCISCと相場が決まってる
RISCはメモリ to メモリは命令にない 。命令セットを減らしてるからこそ reduce
このおかげで回路が簡単になり、所用クロック数をほぼ等しくして、クロック(Hz)をあげることができた。
このタイプはメモリ→レジスタ→メモリとせざるを得ない
今は、パイプラインを深くして、CISCでもクロックをあげられるようになったのでRISC/CISCはあんまり関係なくなった。
CICSの代表はx86なのでメモリ→メモリ命令セット調べてみ。
CISCの歴史的な経緯がわかるのは、これもCISC代表のx68kやH8は、命令セットごとに大幅に所用クロック数が違う。
それに対してx86の流れをくむ最新設計のRL78だとほとんどの命令セットが1クロックとなって。RISCと変わらない上に、
メモリ to メモリが可能となってる。それでも メモリ to レジスタに比べて1クロック増えてる。
メモリ to メモリ とレジスタ to メモリを同クロック数で実行しようとするなら、 バスラインがもう一組(例えば32bit)必要になった上に、
2ポートメモリが必要になってしまうwwww
324デフォルトの名無しさん
2019/01/23(水) 23:20:08.21ID:A4LjhfFf325デフォルトの名無しさん
2019/01/23(水) 23:21:30.54ID:MK/3pF0O >>322
自分で複数行が前提だと言っときながら何言ってんの君
自分で複数行が前提だと言っときながら何言ってんの君
326デフォルトの名無しさん
2019/01/24(木) 00:07:57.67ID:sZmPY6bv >>325
*/の自動補完は複数行だろうが単一行だろうが関係ないだろが。
おまえがエディタ支援による入力補助を持ち出したから応じてやっただけだろゆとり
入力の手間はむしろ/* */の方が楽なんだよお馬鹿さん
*/の自動補完は複数行だろうが単一行だろうが関係ないだろが。
おまえがエディタ支援による入力補助を持ち出したから応じてやっただけだろゆとり
入力の手間はむしろ/* */の方が楽なんだよお馬鹿さん
327デフォルトの名無しさん
2019/01/24(木) 00:17:17.17ID:sZmPY6bv328はちみつ餃子 ◆8X2XSCHEME
2019/01/25(金) 04:31:55.12ID:D9LdM3uI まあ例えばインテルアーキテクチャでも、
機械語の命令列を内部で μop に分解して最適化してから実行したりするので、
機械語のレベルなんてまだまだ高級な層。
内側では RISC 的なデザインとも融合していて
正直言って、そこで何が起きているのか正確に理解するのは無理。
(結果に影響しない範囲で) 命令を並べ替えることすらあり、
しかし、マルチスレッドと絡むとわけわかんなくなりがち。
Z80 の牧歌的な世界を知ってると隔世の感がある。
実際、演算能力で言えば何百倍とか何千倍とかいう規模で違うもんな……
機械語の命令列を内部で μop に分解して最適化してから実行したりするので、
機械語のレベルなんてまだまだ高級な層。
内側では RISC 的なデザインとも融合していて
正直言って、そこで何が起きているのか正確に理解するのは無理。
(結果に影響しない範囲で) 命令を並べ替えることすらあり、
しかし、マルチスレッドと絡むとわけわかんなくなりがち。
Z80 の牧歌的な世界を知ってると隔世の感がある。
実際、演算能力で言えば何百倍とか何千倍とかいう規模で違うもんな……
329デフォルトの名無しさん
2019/01/25(金) 04:48:14.16ID:RBnOR415 Z80Aで、おおむね4Mhzだったような
無印Z80は知らない
日本人だとZ80AよりμPD870Cの方が普及???
無印Z80は知らない
日本人だとZ80AよりμPD870Cの方が普及???
330デフォルトの名無しさん
2019/01/25(金) 05:29:09.86ID:VVNAHEZ9331デフォルトの名無しさん
2019/01/25(金) 09:28:14.11ID:U8XeH6tm >>328
自分もこの結論に達した
自分もこの結論に達した
332デフォルトの名無しさん
2019/01/26(土) 10:50:23.69ID:ibgF9MiT 初心者です
関数の引数の1つとして3種類の構造体を受け入れたいという場合オーバーライドで3つ書くのよりスマートなやり方ありますか?
関数の引数の1つとして3種類の構造体を受け入れたいという場合オーバーライドで3つ書くのよりスマートなやり方ありますか?
333デフォルトの名無しさん
2019/01/26(土) 11:07:13.35ID:MaEquCGy オーバーロードで3つ書く方がスマートですよ
334デフォルトの名無しさん
2019/01/26(土) 11:19:38.97ID:UuAHSy+r 関数テンプレートというものが一応存在する。
tempate<class T> void func(T arg)
{
...
}
このように記述すると、型に応じたオーバーライドをコンパイラが自動で作成してくれるという機能。
ただ、実際に呼び出すコードを書かないと(型が確定してないから)コンパイル対象にならなず限定的なエラーチェックしか行われない、
エラーが出た時に問題が関数内なのか呼び出し元なのかが分かりづらい、エラーメッセージもわけわからない、という欠点があるので、
あまり初心者向きとは言えない。すごく便利なんだけどね。
tempate<class T> void func(T arg)
{
...
}
このように記述すると、型に応じたオーバーライドをコンパイラが自動で作成してくれるという機能。
ただ、実際に呼び出すコードを書かないと(型が確定してないから)コンパイル対象にならなず限定的なエラーチェックしか行われない、
エラーが出た時に問題が関数内なのか呼び出し元なのかが分かりづらい、エラーメッセージもわけわからない、という欠点があるので、
あまり初心者向きとは言えない。すごく便利なんだけどね。
335デフォルトの名無しさん
2019/01/26(土) 13:38:51.24ID:ibgF9MiT336デフォルトの名無しさん
2019/01/26(土) 17:08:07.75ID:a/6Wmtam337デフォルトの名無しさん
2019/01/26(土) 18:04:32.62ID:wmp8xlgD 結局中で分岐だろ
338デフォルトの名無しさん
2019/01/27(日) 04:46:54.79ID:tVyD3cTv339デフォルトの名無しさん
2019/01/27(日) 23:53:20.30ID:PNYmCs1E 投機実行がセキュリティホールになるなんて
当時の技術者は予見できたのだろうか
当時の技術者は予見できたのだろうか
340デフォルトの名無しさん
2019/01/30(水) 21:22:57.38ID:pEOkr0Qg いやー
論文ネタに困った情報系の役にたたん学者がひねり出したネタだろ
投機実行を攻撃に使った実例なんてあるのか?
論文ネタに困った情報系の役にたたん学者がひねり出したネタだろ
投機実行を攻撃に使った実例なんてあるのか?
341デフォルトの名無しさん
2019/01/31(木) 10:11:52.05 煽ってたら論文ネタに困った情報系の役にたたん学者が投機実行を攻撃に使った実用法をひねり出したらどうすんだ
>>340
手元にようやく SandyBridge(IvyBridge) を確保しましたのでいろいろ試してみようと思っています
手元にようやく SandyBridge(IvyBridge) を確保しましたのでいろいろ試してみようと思っています
343デフォルトの名無しさん
2019/01/31(木) 23:07:28.54ID:sIpyZVmV Googleだったっけ、見つけたのは?
役に立たない暇な部門があったんだ
役に立たない暇な部門があったんだ
344デフォルトの名無しさん
2019/02/02(土) 08:27:42.12ID:tJohl//6 C++って未だにasync,awaitがないんだな?
江添とかtemplate使えないC++プログラマはポインタを使えないCプログラマと同じゴミとかいってるんだが、
templateは確かに面白いし頭の体操になるけど、templateはひな形があれば、泥臭くエディタちょい編集して使い回したり、
yacc/lex使うとか、ループのアンロールはスクリプトで展開するとかいくらでも手段はあるので、
どう考えてもasync,awaitあたりの実装の方が重要だと思うけどな。
江添とかtemplate使えないC++プログラマはポインタを使えないCプログラマと同じゴミとかいってるんだが、
templateは確かに面白いし頭の体操になるけど、templateはひな形があれば、泥臭くエディタちょい編集して使い回したり、
yacc/lex使うとか、ループのアンロールはスクリプトで展開するとかいくらでも手段はあるので、
どう考えてもasync,awaitあたりの実装の方が重要だと思うけどな。
345デフォルトの名無しさん
2019/02/02(土) 08:50:29.54ID:UyxpbyFe futureでいいんじゃね。C#のawaitもFutureパターンの実装でしょ。
346デフォルトの名無しさん
2019/02/02(土) 11:01:27.11ID:tJohl//6347デフォルトの名無しさん
2019/02/02(土) 11:23:05.73ID:ZfwOhOL2 コルーチン拡張は提案段階なんだっけ?
MS界隈ならC++/WinRTで使用例があるけど
MS界隈ならC++/WinRTで使用例があるけど
348デフォルトの名無しさん
2019/02/02(土) 11:47:15.38ID:qgXcCvEo349デフォルトの名無しさん
2019/02/02(土) 13:08:31.83ID:cZfjknnV >>344
再帰includeとdefineの組み合わせでも大抵はなんとかなったりするなw
templateは型に縛られてるから安全な反面、不便なこともあるよね。
sjisとutf8が区別できないし。なぜchar8_tを作らなかった…(´・ω・`)
再帰includeとdefineの組み合わせでも大抵はなんとかなったりするなw
templateは型に縛られてるから安全な反面、不便なこともあるよね。
sjisとutf8が区別できないし。なぜchar8_tを作らなかった…(´・ω・`)
350デフォルトの名無しさん
2019/02/02(土) 13:11:59.53ID:OjPcxytf テンプレートよりObjective-Cのやり方の方が好き
351デフォルトの名無しさん
2019/02/03(日) 12:10:14.76ID:JIYTTgNa 江添なんて最新仕様知ってる俺スゲーやりたいだけの奴だからな。
まともに使えるプログラムを書いてるわけじゃない。
まともに使えるプログラムを書いてるわけじゃない。
352デフォルトの名無しさん
2019/02/03(日) 14:07:26.32ID:IhqR/Csp でもプログラム書くなんて誰でも出来るじゃん
353デフォルトの名無しさん
2019/02/03(日) 14:11:00.19ID:s/ZudwPt おまえのgithubさらせよ
354デフォルトの名無しさん
2019/02/03(日) 14:15:39.93ID:IhqR/Csp >>353
お前が先に晒せ
お前が先に晒せ
355デフォルトの名無しさん
2019/02/03(日) 14:56:06.74ID:nprxb46h きっとはぶられる
357デフォルトの名無しさん
2019/02/04(月) 12:56:22.82ID:Y0slw8we■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】中国外務省報道官 高市首相発言撤回なければ「断固たる対抗措置」 ★2 [蚤の市★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★4 [ぐれ★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★3 [BFU★]
- 中国、日本行き“50万人”キャンセル 渡航自粛でコロナ禍以来最大 [お断り★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 ★5 [ぐれ★]
- 【次の一手】台湾問題で小林よしのり氏が私見「まさに戦争前夜」「ただちに徴兵制を敷いて、高市支持者を最前線へ」… ★4 [BFU★]
- 大竹まこと「高市早苗のせいで倒産する企業が出てくる。ババア、何がしたかったの?」 [592058334]
- 貧民アニオタ向けdアニメ、値上げへ [175344491]
- 【速報】中国政府、ゲームを禁輸。原神やブルアカ、荒野行動が日本で影響 [347751896]
- 中国「私達が怒ってるのは日本の政治家に対してで、日本の観光客や日本企業はこれまで通り歓迎する。これこそが大国としての余裕」 [377482965]
- 【高市変質者】 お尻を出している 小太りTシャツの自転車乗りが発生 😱 [485983549]
- 高市コイン、ガチで156円突入へwwwwwwwwww [246620176]
