前スレ
C++相談室 part158
https://mevius.5ch.net/test/read.cgi/tech/1645239402/
探検
C++相談室 part160
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2022/04/15(金) 08:39:32.42ID:WMzvufu22022/04/15(金) 22:14:55.32ID:zMpb+zG7
円周率みたいな定数ってどのライブラリのやつ使ってますか?
2022/04/15(金) 22:21:34.04ID:0DFy/IGY
<numbers>
C++20必須だが
C++20必須だが
2022/04/15(金) 23:15:01.17ID:ZOmTtyVU
古いC++ならe=exp(1.0)、π=6*asin(0.5)
2022/04/16(土) 06:56:47.86ID:cvz/IVkr
numbersって型変えた時ちゃんと直してくれるの?
2022/04/16(土) 16:00:35.82ID:36AETGkW
>>31
変数テンプレートだからこっちが型を指定する
auto x = std::numbers::pi_v<double>;
デフォはdouble
namespace std::numbers {
inline constexpr double pi = pi_v<double>;
}
変数テンプレートだからこっちが型を指定する
auto x = std::numbers::pi_v<double>;
デフォはdouble
namespace std::numbers {
inline constexpr double pi = pi_v<double>;
}
2022/04/16(土) 17:48:06.48ID:vYse36AQ
なおpi_v<int>はゆとり歓喜の3ではなくis_floating_pointに阻まれる模様
2022/04/16(土) 19:53:49.89ID:pxnrcQ3X
未だに円周率3とか言ってるおじいちゃんいるのか・・・
2022/04/16(土) 20:06:23.56ID:36AETGkW
ジジイを馬鹿にするのは結構だが若いなりに何か引っさげているのか?
俺は8bit機がこれから黄金期に差し掛かるあたりでお前らのような立場だった
ハッタリではなく当時のトレンド引っさげてジジイたちの死角を突くことで今の地位を得たが
口だけ達者でこれから沈みゆくだけな連中なら全然羨ましくねえぜ
俺は8bit機がこれから黄金期に差し掛かるあたりでお前らのような立場だった
ハッタリではなく当時のトレンド引っさげてジジイたちの死角を突くことで今の地位を得たが
口だけ達者でこれから沈みゆくだけな連中なら全然羨ましくねえぜ
2022/04/16(土) 20:44:57.02ID:YPs7FevK
世代ってより情弱ぶりを揶揄されてるのに気付かないようじゃ虚しいな
2022/04/16(土) 20:48:37.77ID:36AETGkW
そもそも誰か円周率が3だなんて主張してるか?
情弱って攻撃用ワード使って脅しかけても説得力ねえとバカにしか見えねえんだけど
情弱って攻撃用ワード使って脅しかけても説得力ねえとバカにしか見えねえんだけど
2022/04/16(土) 20:50:03.87ID:9kZcaiqY
2022/04/16(土) 20:51:51.80ID:fE0J8eTv
先輩パネーっすね
2022/04/16(土) 21:23:19.58ID:gltC/pf5
どうしてもintのπを定義しようと思ったら、4や2ってわけにはいかないから3にするしかないと思う
2022/04/16(土) 21:35:43.96ID:MoK8GTpb
どうしても偶数のπを定義しようと思ったら、4にするしかないと思う。
2022/04/16(土) 21:45:10.61ID:36AETGkW
全否定はしていない
これならジジイを馬鹿にする資格があると示しているのに
応答なしか・・・誠に残念
煽られても好意的に対応したが無駄だったか
これならジジイを馬鹿にする資格があると示しているのに
応答なしか・・・誠に残念
煽られても好意的に対応したが無駄だったか
2022/04/16(土) 22:22:53.11ID:IM94y/ni
20年前のフェイクニュースネタではしゃぐなよ
2022/04/16(土) 22:52:39.15ID:R//Q6DgO
「状況によって『およそ 3』で計算すればよい」という指導は存在する。
小学生は有効精度の概念を知らんから
どういう場合にどの程度の概算でよいのか自分で判断できんのよ。
「およそ 3」って言ったら 3 で計算するのを正解だと思っちゃうやつが少なからず出てきてしまう。
現実的な精度との兼ね合いで言ったら 3.14 で教えておくのがおおよそ手ごろなんやろね。
小学生は有効精度の概念を知らんから
どういう場合にどの程度の概算でよいのか自分で判断できんのよ。
「およそ 3」って言ったら 3 で計算するのを正解だと思っちゃうやつが少なからず出てきてしまう。
現実的な精度との兼ね合いで言ったら 3.14 で教えておくのがおおよそ手ごろなんやろね。
2022/04/16(土) 23:10:11.53ID:+A5PZLb9
喜べお前ら
こいつを追加するだけでpi_v<int>が使えるようになるぞ
template<>struct std::is_floating_point<int>:std::true_type{};
こいつを追加するだけでpi_v<int>が使えるようになるぞ
template<>struct std::is_floating_point<int>:std::true_type{};
2022/04/16(土) 23:16:32.04ID:NFUA2B25
>>44
> 「状況によって『およそ 3』で計算すればよい」という指導は存在する。
指導が何を指してるのか知らんけどおよそなんてどこから出てきたんだよw
円周率3の話は 小学校学習指導要領 (平成元年3月)の下記の文言が独り歩きしたものだぞ
円周率としては3.14を用いるが、目的に応じて3を用いて処理できるよう配慮する必要がある。
https://www.mext.go.jp/a_menu/shotou/old-cs/1322329.htm
> 「状況によって『およそ 3』で計算すればよい」という指導は存在する。
指導が何を指してるのか知らんけどおよそなんてどこから出てきたんだよw
円周率3の話は 小学校学習指導要領 (平成元年3月)の下記の文言が独り歩きしたものだぞ
円周率としては3.14を用いるが、目的に応じて3を用いて処理できるよう配慮する必要がある。
https://www.mext.go.jp/a_menu/shotou/old-cs/1322329.htm
2022/04/17(日) 00:51:59.98ID:B91+2VD/
文脈的にたいして変わらない気もするけど
そんな違うものか?
そんな違うものか?
2022/04/17(日) 03:44:03.45ID:GgR0k3G6
>>46
3.14だっておよそでしかない
およそ3で全然問題ないと思うね。
それより
1.6+2.4 = 4.0 と答えたら減点するアホ文系教師を文科省はなんで放置するのかね?
掛ける順番とかな。工数とかシランだろな多分
単位とかでもあほ文系小学校教師が理解してるとは到底思えない
3.14だっておよそでしかない
およそ3で全然問題ないと思うね。
それより
1.6+2.4 = 4.0 と答えたら減点するアホ文系教師を文科省はなんで放置するのかね?
掛ける順番とかな。工数とかシランだろな多分
単位とかでもあほ文系小学校教師が理解してるとは到底思えない
2022/04/17(日) 08:47:30.67ID:+WDep4l2
2022/04/17(日) 10:32:47.71ID:1NqFVDwl
>>46
そこだけ見て「ゆとりも3.14で教わってる」って誤解されてるけど
一緒に3ケタの掛け算も廃止になったのが本当の大問題なんだよ
最初に「円周率とは」で一度3.14と教えた後の計算問題は全部3でやるしかなかった
そこだけ見て「ゆとりも3.14で教わってる」って誤解されてるけど
一緒に3ケタの掛け算も廃止になったのが本当の大問題なんだよ
最初に「円周率とは」で一度3.14と教えた後の計算問題は全部3でやるしかなかった
51デフォルトの名無しさん
2022/04/17(日) 10:40:02.85ID:bm11jv7N 算数教育を破壊された影響は凄まじいな
マスゴミの煽動記事みて何人に1人の奇病なのかもわからないバカばっかりになっちまった
マスゴミの煽動記事みて何人に1人の奇病なのかもわからないバカばっかりになっちまった
2022/04/17(日) 11:00:54.26ID:xNW3vj+F
現実には3で十分なわけよ
わずか数%の違いしかなく困らない
どうしても必要なら3.1でいい
これならわずか1%強の違いしかない
逆に工業で必要とする時は3.14でも足りないこともある
つまり3.14にこだわっているやつこそバカであると断言できる
わずか数%の違いしかなく困らない
どうしても必要なら3.1でいい
これならわずか1%強の違いしかない
逆に工業で必要とする時は3.14でも足りないこともある
つまり3.14にこだわっているやつこそバカであると断言できる
53デフォルトの名無しさん
2022/04/17(日) 11:22:48.55ID:RqkDCOAY コンピュータの場合、累積する誤差を少なくするよう定数を求めるのが最も重要なわけで。
統計的に3.17がπとして相応しいことがわかっています。
統計的に3.17がπとして相応しいことがわかっています。
2022/04/17(日) 11:27:42.82ID:9gjwfasM
そら分かる子はいいよ
ほっといても算数なんてすぐ分かるやろ
数というもんの抽象性も理解できるし
かける順番にこだわることのアホさも自分で分かるやろ
でも
ひとクラス何十人のうちの算数分からん子
知能指数もボーダーの子
発達障害の子
その子らになんとかして分かってもらおうとすると
あの手この手でいろいろやってみるんやろな
ほっといても算数なんてすぐ分かるやろ
数というもんの抽象性も理解できるし
かける順番にこだわることのアホさも自分で分かるやろ
でも
ひとクラス何十人のうちの算数分からん子
知能指数もボーダーの子
発達障害の子
その子らになんとかして分かってもらおうとすると
あの手この手でいろいろやってみるんやろな
55デフォルトの名無しさん
2022/04/17(日) 11:29:26.25ID:RqkDCOAY 共産主義じゃないんだから馬鹿な子は馬鹿な大人に育てば良い。
みんな違ってみんな良い。
みんな違ってみんな良い。
2022/04/17(日) 11:30:31.73ID:n4FXzdR7
>>50
> 一緒に3ケタの掛け算も廃止になったのが本当の大問題なんだよ
だからそれもフェイクだっつーのw
(1)内容の「A数と計算」の(3)及び(4)については、乗数や除数が3位数である場合の指導は、2位数までの考え方を基にして児童に考え出させるようにするとともに、複雑な計算を避けるものとする。
だからこれに従うと円周率は3.1となるはず
これと上に書いた「目的に応じて3で計算」を(多分わざと混ぜて)某学習塾が
『ウッソー!?円の面積を求める公式 半径×半径×3!?』
『円周率を3.14ではなく、「およそ3」として円の求積計算を行います』
って広告打ったのが元凶と言われてる
> 一緒に3ケタの掛け算も廃止になったのが本当の大問題なんだよ
だからそれもフェイクだっつーのw
(1)内容の「A数と計算」の(3)及び(4)については、乗数や除数が3位数である場合の指導は、2位数までの考え方を基にして児童に考え出させるようにするとともに、複雑な計算を避けるものとする。
だからこれに従うと円周率は3.1となるはず
これと上に書いた「目的に応じて3で計算」を(多分わざと混ぜて)某学習塾が
『ウッソー!?円の面積を求める公式 半径×半径×3!?』
『円周率を3.14ではなく、「およそ3」として円の求積計算を行います』
って広告打ったのが元凶と言われてる
57デフォルトの名無しさん
2022/04/17(日) 11:34:11.45ID:RqkDCOAY 円周率なんて生きてく上で必要ない。
2022/04/17(日) 11:50:12.40ID:0uPuuShy
なんのスレやねん
59デフォルトの名無しさん
2022/04/17(日) 14:31:08.08ID:gu8d6tY+ お礼と報告が大変遅くなりましたがID:aidqFE7S でございます。
この度は有用なアドヴァイス大変ありがたく承っております。
>>25
mainで走らせている実処理の前に、インライン変数のコンストラクタが起動しているので、リンカ?の際に記述と同時に外部結合?させているのではないかとしか推察できませんでした……
質問が理解できていないかもしれないのですが東方初学者ですので何卒。
>>27
受け渡しを省略したいという助平心でございます……
この記述で動作確認しました。
ありがとうございます!
テンプレートは食わず嫌いでしたが、使ってみると奥深いものですね。
関数定義にstatic T& Instance();と記述したらちゃんと内部結合?になっていました。凄い。
本物のグローバル変数とはdllを跨いでも使える変数なのでしょうか?
dellについて少し調べたのですがよくわかりませんでした。
クラス内部の静的変数はプログラムのどこからでも一位だと思っていましたが、外部結合のstaticは役割が違うのかしら。
もうちょっと調べてみます。
ありがとうござまいした。
この度は有用なアドヴァイス大変ありがたく承っております。
>>25
mainで走らせている実処理の前に、インライン変数のコンストラクタが起動しているので、リンカ?の際に記述と同時に外部結合?させているのではないかとしか推察できませんでした……
質問が理解できていないかもしれないのですが東方初学者ですので何卒。
>>27
受け渡しを省略したいという助平心でございます……
この記述で動作確認しました。
ありがとうございます!
テンプレートは食わず嫌いでしたが、使ってみると奥深いものですね。
関数定義にstatic T& Instance();と記述したらちゃんと内部結合?になっていました。凄い。
本物のグローバル変数とはdllを跨いでも使える変数なのでしょうか?
dellについて少し調べたのですがよくわかりませんでした。
クラス内部の静的変数はプログラムのどこからでも一位だと思っていましたが、外部結合のstaticは役割が違うのかしら。
もうちょっと調べてみます。
ありがとうござまいした。
2022/04/17(日) 14:39:47.64ID:smuc31S1
2022/04/17(日) 15:27:41.39ID:98II7f1E
試したことないけどあれって全く関係ないdllからアドレス指定して値書き換えたり出来るの?
2022/04/17(日) 15:35:49.78ID:smuc31S1
リンクできてれば大丈夫よ
マネージドなやつが混ざってたらやらん方がええかもね
マネージドなやつが混ざってたらやらん方がええかもね
2022/04/17(日) 16:23:54.03ID:wFJvf5tq
このスレ永久に同じ奴の自演でループしてるな
いつも同じ間違いで止まってるし
いつも同じ間違いで止まってるし
2022/04/18(月) 00:21:25.50ID:6Qt778/v
msvcのstd::lerp妙に遅かったから実装見たらめっちゃ厳重に引数チェックしてた
秒間何億回も呼び出す用途想定してないのか実装がまずいのか…とりあえず自分で書き直したわ
秒間何億回も呼び出す用途想定してないのか実装がまずいのか…とりあえず自分で書き直したわ
65デフォルトの名無しさん
2022/04/18(月) 07:14:50.33ID:t3NwdXGg デバッグビルド?
2022/04/18(月) 07:52:49.52ID:wKhqv1yX
引数が有限でない場合の処理が入ってるからだろ
そもそもそんなものを使おうとする方がどうかしてる
そもそもそんなものを使おうとする方がどうかしてる
2022/04/18(月) 08:47:21.12ID:UwAS9GUd
どんなチェックするとそんな負担になるの?
2022/04/18(月) 09:07:36.22ID:Mq4dF/46
場合分けはしているが、仕様に対して過不足ない実装だと思う。
https://github.com/microsoft/STL/blob/472161105d596192194d4715ccad307c6c163b4a/stl/inc/cmath#L1234-L1326
https://github.com/microsoft/STL/blob/472161105d596192194d4715ccad307c6c163b4a/stl/inc/cmath#L1234-L1326
2022/04/18(月) 09:18:05.41ID:Dpn9nQkn
2022/04/18(月) 09:44:52.69ID:Mq4dF/46
71デフォルトの名無しさん
2022/04/18(月) 09:53:11.17ID:t3NwdXGg 配列の範囲チェックと似たような話だろ
2022/04/18(月) 09:56:20.66ID:OY9HJtti
一般的に渡ってきた引数に対してチェックをせず処理する関数と厳重にチェックしてから処理する関数の二つを提供すればいいんじゃない?
もちろん後者はチェックしてから前者を呼び出すことになる
チェック不要が自明な時や何度も呼び出す時は前者で十分
もちろん後者はチェックしてから前者を呼び出すことになる
チェック不要が自明な時や何度も呼び出す時は前者で十分
2022/04/18(月) 10:05:07.63ID:s/nYZOWf
しかしニッチな機能だね
使うときは使うんだろうけど、これをあえて標準で用意するのは不思議
使うときは使うんだろうけど、これをあえて標準で用意するのは不思議
74デフォルトの名無しさん
2022/04/18(月) 10:06:44.44ID:t3NwdXGg スクロールバーやプログレスバーで使いそう
過去にそのあたりのコード書いた当時あったらなって
過去にそのあたりのコード書いた当時あったらなって
2022/04/18(月) 10:30:18.10ID:Mq4dF/46
2022/04/18(月) 11:30:20.45ID:wKhqv1yX
>>73
たいていの用途で必要なのは
const auto _Candidate = _ArgA + _ArgT * (_ArgB - _ArgA);
だけだからなぁ
誰がなんのためにこれを入れようと思ったのかよくわからんね
たいていの用途で必要なのは
const auto _Candidate = _ArgA + _ArgT * (_ArgB - _ArgA);
だけだからなぁ
誰がなんのためにこれを入れようと思ったのかよくわからんね
77デフォルトの名無しさん
2022/04/18(月) 12:37:29.31ID:s8zWy/Nc using L=numeric_limits<double>;
a=L::max();b=L::lowest();
この場合お前らの言う「最小限の実装」だと結果がNaNになったりするぞ
オーバーフローとか切り捨て/切り上げとかに気を使わなくていいように標準でこういうのが用意されてるんだよ
a=L::max();b=L::lowest();
この場合お前らの言う「最小限の実装」だと結果がNaNになったりするぞ
オーバーフローとか切り捨て/切り上げとかに気を使わなくていいように標準でこういうのが用意されてるんだよ
2022/04/18(月) 16:42:06.25ID:6Qt778/v
>>76
その式の形だとFMA命令に最適化されて良さそうだな
その式の形だとFMA命令に最適化されて良さそうだな
2022/04/18(月) 17:19:17.33ID:pd6PCcNf
そもそも何億回も呼び出すなら<math>のfma(...)使うんじゃねえの
<cmath>はどんな引数つっこまれても何とか対処しなきゃならんのが絶対条件
<cmath>はどんな引数つっこまれても何とか対処しなきゃならんのが絶対条件
80デフォルトの名無しさん
2022/04/18(月) 19:27:11.79ID:DmcgzGUS using L=numeric_limits<double>;
a=L::max();b=L::lowest();
この場合お前らの言う「最小限の実装」だと結果がNaNになったりするぞ
オーバーフローとか切り捨て/切り上げとかに気を使わなくていいように標準でこういうのが用意されてるんだよ
a=L::max();b=L::lowest();
この場合お前らの言う「最小限の実装」だと結果がNaNになったりするぞ
オーバーフローとか切り捨て/切り上げとかに気を使わなくていいように標準でこういうのが用意されてるんだよ
81デフォルトの名無しさん
2022/04/18(月) 20:05:50.33ID:t3NwdXGg >>79
sqrt(-1.0)でcomplex返さにゃならんの?
sqrt(-1.0)でcomplex返さにゃならんの?
2022/04/19(火) 04:23:27.96ID:M6r3Rc52
nanだのinfだの>>81だのをグチャグチャとチェックしたがる奴は無能
最初からそういうのが発生しないように計算するべき
最初からそういうのが発生しないように計算するべき
83デフォルトの名無しさん
2022/04/19(火) 06:18:55.90ID:0L/+n52g ゼロ除算とかね
2022/04/19(火) 14:44:51.44ID:0UVfIqO/
libc遅いだの愚痴りながら低レイヤーのコード書いてる時が正直一番楽しい
85デフォルトの名無しさん
2022/04/19(火) 14:50:47.69ID:0L/+n52g 人によるけどね
俺もマシン寄りのところが好き
俺もマシン寄りのところが好き
2022/04/19(火) 23:13:42.68ID:fQcWHs5l
MC++Dが20年前に発売されたってすげーな
アンドレイって天才だろ
アンドレイって天才だろ
2022/04/20(水) 19:24:03.82ID:q+GeEjNV
移住して快適な掲示板
NEXT2ch
3ch
45ch
明和水産
などへ
NEXT2ch
3ch
45ch
明和水産
などへ
88デフォルトの名無しさん
2022/04/20(水) 20:22:28.34ID:Cwlkz3kl 二度と帰ってくるなよ
2022/04/20(水) 21:01:40.29ID:q+GeEjNV
居座るなら二度と文句言うなよ
2022/04/20(水) 22:15:36.38ID:4qIYThBV
>>89
早速帰ってきてて草
早速帰ってきてて草
2022/04/21(木) 08:12:05.34ID:lT6JRJu8
今どき戻り値intでエラーコードとか使うなよCの書き方じゃねぇかとか思ってた
だけどC++17のvariantでエラーコード返したり、optional使ってエラー表現してるコードを見てちょっと感心した
しかしとはいえこういうやり方と例外ぶん投げるやり方ってどっちがいいんだろう?ググっても割りと論争あってよくわからんかった
だけどC++17のvariantでエラーコード返したり、optional使ってエラー表現してるコードを見てちょっと感心した
しかしとはいえこういうやり方と例外ぶん投げるやり方ってどっちがいいんだろう?ググっても割りと論争あってよくわからんかった
2022/04/21(木) 08:41:18.15ID:uyGzUV2B
>>91
制御フローを変更する必要がある場合は例外、それ以外(エラーもフローの一部の時)はoptionalでいいんじゃない?
例外は性能ペナルティーあるし、あんまり使うものじゃないと思うわ。
例えばメモリ確保失敗とかはプログラムの続行が難しいから、安全に終了するメモリ異常時の終了フローに移行できるよう例外を使うといいかと。
制御フローを変更する必要がある場合は例外、それ以外(エラーもフローの一部の時)はoptionalでいいんじゃない?
例外は性能ペナルティーあるし、あんまり使うものじゃないと思うわ。
例えばメモリ確保失敗とかはプログラムの続行が難しいから、安全に終了するメモリ異常時の終了フローに移行できるよう例外を使うといいかと。
2022/04/21(木) 09:00:35.99ID:9qc6sZDy
一部で悪名高い例外はマルチスレッドでこそ重宝すると思うんだが
2022/04/21(木) 09:09:09.66ID:3fppYdMF
例外はやばいエラーと普通のエラーを分けて欲しいわ
後者はあんまり遠くへ飛ばんでほしい
後者はあんまり遠くへ飛ばんでほしい
95デフォルトの名無しさん
2022/04/21(木) 09:18:47.88ID:TFObbQ1T 異常系は例外、準正常系はエラー
という方針がええな
という方針がええな
2022/04/21(木) 09:50:55.00ID:uYH/mfeQ
ここだけの話ちゃんとした例外処理書かれたコード読んだ事がない
2022/04/21(木) 11:09:48.62ID:Ex423fK8
例外って、移行の処理を全く出来なくね
try{
a();
b();
c();
}
catch(...)
{
}
a()がコケても、何がしかの条件をかえてb()いこうを実行したいときなんて不便
try tryなんてやりだしたら、各関数の戻り値をifで判断しているのと同じだし
try{
a();
b();
c();
}
catch(...)
{
}
a()がコケても、何がしかの条件をかえてb()いこうを実行したいときなんて不便
try tryなんてやりだしたら、各関数の戻り値をifで判断しているのと同じだし
98デフォルトの名無しさん
2022/04/21(木) 11:15:18.89ID:Nb12Wot+ 言い出したらキリないからだろ
a()がコケたあとC()から再開とか無数にあるから
try {
a();
b();
c();
}
catch(std::exception& e)
{
if(dynamic_cast<f*>(&e))
{
if(dynamic_cast<g*>(&e))
{
b();
}
c();
}
}
a()がコケたあとC()から再開とか無数にあるから
try {
a();
b();
c();
}
catch(std::exception& e)
{
if(dynamic_cast<f*>(&e))
{
if(dynamic_cast<g*>(&e))
{
b();
}
c();
}
}
2022/04/21(木) 11:17:35.59ID:9+GFB0OX
例外処理でどこまでカバーするかってのは初期には色々と検討されてる。
でも結局のところ「あきらめて終わる」「条件を変えてやり直しする」が圧倒的多数で
その他は言語機能としてサポートする必要ないレベルのレアケースだと判断された。
>>97
そういう場合は諦めて try をネストしたり連鎖したりしてなんとかしろってことだ。
少なくとも言語仕様をより複雑にするほどではない。
でも結局のところ「あきらめて終わる」「条件を変えてやり直しする」が圧倒的多数で
その他は言語機能としてサポートする必要ないレベルのレアケースだと判断された。
>>97
そういう場合は諦めて try をネストしたり連鎖したりしてなんとかしろってことだ。
少なくとも言語仕様をより複雑にするほどではない。
100デフォルトの名無しさん
2022/04/21(木) 11:31:04.81ID:3fppYdMF101デフォルトの名無しさん
2022/04/21(木) 11:51:54.97ID:Ex423fK8102デフォルトの名無しさん
2022/04/21(木) 11:56:00.06ID:Ex423fK8 >>96
つboost
つboost
103デフォルトの名無しさん
2022/04/21(木) 11:58:33.22ID:cKs9hG6Z104デフォルトの名無しさん
2022/04/21(木) 12:08:19.70ID:1fqzAB87 例外そのものが結構重たい処理だから
発生頻度が高いものでは使いたくない
発生頻度が高いものでは使いたくない
105デフォルトの名無しさん
2022/04/21(木) 12:50:04.39ID:sNS+foI5 GoやRustなど最近のプログラミング言語は例外がないね
代わりに多値やoptional/variant相当でエラーを返す
代わりに多値やoptional/variant相当でエラーを返す
106デフォルトの名無しさん
2022/04/21(木) 15:46:22.58ID:Ex423fK8107デフォルトの名無しさん
2022/04/21(木) 15:56:00.29ID:QxqybM0K 基本的にtry catchは使わない
それを守るだけで改善できる
それを守るだけで改善できる
108デフォルトの名無しさん
2022/04/21(木) 17:14:16.48ID:Nb12Wot+ まあね、正直<setjmp.h>でええやんと思うことはある
しかし標準ライブラリがtry catch前提で作られているので
それを使う限りは仕方がない
longjmpの第2引数をポインタに写像すれば
そこからdynamic_castで場合分けもできるんだが
いざ自前でやるとなると標準ルールが欲しくなる
しかし標準ライブラリがtry catch前提で作られているので
それを使う限りは仕方がない
longjmpの第2引数をポインタに写像すれば
そこからdynamic_castで場合分けもできるんだが
いざ自前でやるとなると標準ルールが欲しくなる
109デフォルトの名無しさん
2022/04/21(木) 17:26:35.88ID:3fppYdMF longjmpも大概だわ
110デフォルトの名無しさん
2022/04/21(木) 17:30:09.55ID:9+GFB0OX 単に大域脱出するだけなら setjmp で良いが、
例外を投げたら途中にあるオブジェクトのデストラクタを呼んでちゃんと後始末してくれるってのが良いところなわけだろ。
そんで同等のことを setjmp でやろうとしたら実行コストが大きいってのは sjlj で凝りてるだろ。
大域脱出を使わないってのを徹底するならそれはそれでアリだと思うんだが、
半端に例外っぽいものを作るくらいなら素直に例外を使ったほうがいいわ……。
例外を投げたら途中にあるオブジェクトのデストラクタを呼んでちゃんと後始末してくれるってのが良いところなわけだろ。
そんで同等のことを setjmp でやろうとしたら実行コストが大きいってのは sjlj で凝りてるだろ。
大域脱出を使わないってのを徹底するならそれはそれでアリだと思うんだが、
半端に例外っぽいものを作るくらいなら素直に例外を使ったほうがいいわ……。
111デフォルトの名無しさん
2022/04/21(木) 17:43:25.69ID:Dvrv0zRB dynamic_castなんてゴミより例外使うやろ
112デフォルトの名無しさん
2022/04/21(木) 17:43:55.51ID:vSoU0DUY 例外を使わずに普通に代数的データ型でエラーを返せば良い
そのためにoptionalやvariantがある
そのためにoptionalやvariantがある
113デフォルトの名無しさん
2022/04/21(木) 17:44:34.43ID:Hotp0qqb 例外が嫌われる原因は、はるか遠くのスナイパーに即死させられるからだよ
ある前提ならどこにスナイパーがいてもいいように書く必要があって、そのためには地下の穴を掘り進めて絶対地上に出ないなどの策が必要になる
ある前提ならどこにスナイパーがいてもいいように書く必要があって、そのためには地下の穴を掘り進めて絶対地上に出ないなどの策が必要になる
114デフォルトの名無しさん
2022/04/21(木) 17:53:06.42ID:uYH/mfeQ いや単純に例外がシステムコールだからだろ
動的メモリ確保然りmutexロック然り
意味不明な例え話は必要ない
動的メモリ確保然りmutexロック然り
意味不明な例え話は必要ない
115デフォルトの名無しさん
2022/04/21(木) 18:07:39.87ID:3fppYdMF pythonの例外は割と好きだわ
c++でチームでやってるときは使わんほうがまあ無難
c++でチームでやってるときは使わんほうがまあ無難
116デフォルトの名無しさん
2022/04/21(木) 18:38:56.67ID:Hotp0qqb >>114
君が経験不足なだけ
君が経験不足なだけ
117デフォルトの名無しさん
2022/04/21(木) 18:40:53.59ID:/MI4h9k1 え、C++の例外がシステムコールってどういうこと?なんか関係あるの?
118デフォルトの名無しさん
2022/04/21(木) 18:45:27.70ID:9qc6sZDy キャッチオール規制
119デフォルトの名無しさん
2022/04/21(木) 18:53:33.55ID:Ex423fK8120デフォルトの名無しさん
2022/04/21(木) 18:59:53.52ID:uYH/mfeQ 煽れば1から100まで全部説明して貰えると思ってるんだろう
121デフォルトの名無しさん
2022/04/21(木) 19:06:54.50ID:3fppYdMF シグナル的な話かね
122デフォルトの名無しさん
2022/04/21(木) 19:07:51.99ID:5bVBNknH 例外のどこがシステムコールなんだよw
笑わせんなw
笑わせんなw
123デフォルトの名無しさん
2022/04/21(木) 19:29:12.31ID:Hotp0qqb 経験不足もココまで来ると哀れだな
CPUの例外とかシグナルをC++の例外としてあげることはあるけど、throwやtry/catchにシステムコールは関係ないよ
またsetjmp, longjmpをシステムコールと思ったのかもしれないけど、これらはCの標準関数だよ
CPUの例外とかシグナルをC++の例外としてあげることはあるけど、throwやtry/catchにシステムコールは関係ないよ
またsetjmp, longjmpをシステムコールと思ったのかもしれないけど、これらはCの標準関数だよ
124デフォルトの名無しさん
2022/04/21(木) 19:38:44.45ID:dzuJ6upO125デフォルトの名無しさん
2022/04/21(木) 19:40:56.19ID:XLa0Reo3 生娘が多いスレですね
126デフォルトの名無しさん
2022/04/21(木) 19:49:07.82ID:ylgd21Wg GoやRustのように例外のないプログラミング言語もあるように
例外は各言語内の単なる制御の一手法にすぎない
そこにシステムコールというOSの呼び出しは出てこない
例外は各言語内の単なる制御の一手法にすぎない
そこにシステムコールというOSの呼び出しは出てこない
127デフォルトの名無しさん
2022/04/21(木) 19:53:37.32ID:3fppYdMF 実装としてそれを期待することはあるんじゃねえかなあ
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】U-17日本代表、激闘PK戦制す 北朝鮮撃破で6大会ぶり8強入り U17W杯 [久太郎★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- Perfume・あ~ちゃんの結婚相手の一般男性、吉田カバンの社長と判明 [977261419]
- 急に真冬かよ!!!⛄❄✨
- 地球から無限km先の場所ってどうなっているの?
- 自民党議員「高市は先人が築き上げた日中関係を壊した。外務省が謝罪に言ってるが自分で責任を取れ」 [834922174]
- 🖐( -᷄ὢ)俺に挑むのはやめておけ……実力差がありすぎる
- 日本、高市のお陰で破滅に近づくwwwwwwww
