前スレ
C++相談室 part158
https://mevius.5ch.net/test/read.cgi/tech/1645239402/
C++相談室 part160
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2022/04/15(金) 08:39:32.42ID:WMzvufu22022/04/15(金) 08:42:10.92ID:WMzvufu2
全スレ159だったわ
タイトルだけ間違えた
タイトルだけ間違えた
2022/04/15(金) 08:46:23.30ID:wykOop5a
乙です。
2022/04/15(金) 08:50:45.87ID:xDiQzMrD
おつ
2022/04/15(金) 09:04:13.20ID:1joR/OE7
>>2
どんまい、乙
どんまい、乙
2022/04/15(金) 09:12:06.04ID:pOJAVr49
グローバル変数と静的変数は
・書き換えられうる場合は排他制御が必須
・初期化のみの場合でもその初期化の排他制御が必須
・ただし静的変数の初期化はC++11以降は自動的に排他制御されることが保証される
・書き換えられうる場合は排他制御が必須
・初期化のみの場合でもその初期化の排他制御が必須
・ただし静的変数の初期化はC++11以降は自動的に排他制御されることが保証される
2022/04/15(金) 09:23:58.05ID:xDiQzMrD
まとめると、main開始してからリソース用意して適当に渡せよってことよ
原則としてグローバル変数もシングルトンも避けたほうが良い
原則としてグローバル変数もシングルトンも避けたほうが良い
2022/04/15(金) 12:30:29.25ID:hAkRYyug
グローバル変数を避ければシングルトンがmain開始前に呼び出されること無いだろ。
グローバル変数だけ避ければいい。
グローバル変数だけ避ければいい。
2022/04/15(金) 12:37:29.85ID:1+gF2L/G
シングルトンなんてグローバル変数と同じ
避けたほうが良い
避けたほうが良い
2022/04/15(金) 13:17:57.26ID:JW7HV0lo
シングルトンの中に書き換わる変数を持っていたらデータ競合が起こりうるよな
2022/04/15(金) 15:34:09.27ID:wykOop5a
>>9
シングルトン無しでどうやってプログラム全体で共通のリソースを管理するの?
シングルトン無しでどうやってプログラム全体で共通のリソースを管理するの?
2022/04/15(金) 15:49:11.91ID:rZhfm+p8
2022/04/15(金) 16:34:54.97ID:WyYUxIA+
>>11 「管理」が何のことを言ってるのかわからないけど、たぶんひきすうをつかえばいいと思うんだ。
2022/04/15(金) 16:52:25.27ID:2FVuY2vb
引数ってこういうことか?
struct singleton_t { };
singleton_t& get_singleton()
{
static singleton_t the_singleton;
return the_singleton;
}
void func1(singleton_t&);
singleton_t& func2();
int main()
{
func1(func2());
}
func2なんか使わずにfunc1の中でget_singletonを呼び出せば済むことだし
だったらthe_singletonをグローバルにするのと大差なくねって
struct singleton_t { };
singleton_t& get_singleton()
{
static singleton_t the_singleton;
return the_singleton;
}
void func1(singleton_t&);
singleton_t& func2();
int main()
{
func1(func2());
}
func2なんか使わずにfunc1の中でget_singletonを呼び出せば済むことだし
だったらthe_singletonをグローバルにするのと大差なくねって
2022/04/15(金) 19:46:49.16ID:shXIYNIj
2022/04/15(金) 19:49:50.97ID:RJmakPbV
まあ引数で渡せばいいわけだが…
2022/04/15(金) 19:53:05.56ID:PiHpabQE
>>15
グローバル変数やシングルトンがなくていいとは言わないけど、何でひきすうで出来ないと思うの?
グローバル変数やシングルトンがなくていいとは言わないけど、何でひきすうで出来ないと思うの?
2022/04/15(金) 19:55:09.07ID:shXIYNIj
>>16
それ何て純粋関数型プログラミング?
それ何て純粋関数型プログラミング?
2022/04/15(金) 20:05:45.76ID:gTMTzKSQ
システム全体のリソースならグローバルでいいだろ
グローバル変数を導入するメリットの方が勝つから
なんでもかんでもグローバルに置くのはやめようねというだけの話でしょ
グローバル変数を導入するメリットの方が勝つから
なんでもかんでもグローバルに置くのはやめようねというだけの話でしょ
2022/04/15(金) 20:07:59.29ID:shXIYNIj
>>19
システム全体じゃないリソースてどんなのあったっけ?
システム全体じゃないリソースてどんなのあったっけ?
2022/04/15(金) 20:15:16.00ID:RJmakPbV
リソースって何を指してるんだろう…
2022/04/15(金) 20:19:31.51ID:RJmakPbV
まあ寿命がはっきりしないオブジェクトって嫌なもんだよ
わかってもらえるとは思わんけど
わかってもらえるとは思わんけど
23デフォルトの名無しさん
2022/04/15(金) 20:45:25.17ID:aidqFE7S 前スレでクラス内部にinstanceを持たせて運用する事を質問した者です。
(注)前スレ:943
:ユニークポインタをシングルトンの様な仕様に置き換え
std::unique-ptr<Hoge>Temp=std::make-unique<Hoge>();
↓
static Hoge& GetInstance(){static Hoge temp;return temp;}
上記の仕様をさらに、
template <class T>
inline T Instance;
というテンプレートinstanceで使用できるようにアドバイスを頂き、その仕様に変更したところ、運用自体は問題ないのですが、コンストラクターの呼び出し位置がおかしい感じになってしまいますた。
インラインなのでコンパイル時?(inittermという関数内部でコンストラクトが実行されている)にコンストラクターが起動されてしまう感じで、外部ライブラリを使用したコンストラクションが失敗します。
これは明示的に回避できるのでしょうか?
また、皆さんはグローバル変数等を使用するときにどういった方法を取られますか?
クラス名から呼び出せるインスタンスはかなり便利なので使っていきたいのですが……
度々申し訳ございますん。
(注)前スレ:943
:ユニークポインタをシングルトンの様な仕様に置き換え
std::unique-ptr<Hoge>Temp=std::make-unique<Hoge>();
↓
static Hoge& GetInstance(){static Hoge temp;return temp;}
上記の仕様をさらに、
template <class T>
inline T Instance;
というテンプレートinstanceで使用できるようにアドバイスを頂き、その仕様に変更したところ、運用自体は問題ないのですが、コンストラクターの呼び出し位置がおかしい感じになってしまいますた。
インラインなのでコンパイル時?(inittermという関数内部でコンストラクトが実行されている)にコンストラクターが起動されてしまう感じで、外部ライブラリを使用したコンストラクションが失敗します。
これは明示的に回避できるのでしょうか?
また、皆さんはグローバル変数等を使用するときにどういった方法を取られますか?
クラス名から呼び出せるインスタンスはかなり便利なので使っていきたいのですが……
度々申し訳ございますん。
2022/04/15(金) 21:08:51.51ID:ZOmTtyVU
実際に1個しか存在しないものはシングルトンの表現が合ってる
GPUとかな
GPUとかな
2022/04/15(金) 21:22:11.96ID:o8nSddd2
inline変数は(MSVC16で確認する限り)1つの.dll内で同じ実体を共有する
dllをまたぐと別の実体になる
.hに書いてもリンク時に多重定義で怒られない
その言い方だとmainを呼び出す前の初期化処理で死んでる感じか
dllをまたぐと別の実体になる
.hに書いてもリンク時に多重定義で怒られない
その言い方だとmainを呼び出す前の初期化処理で死んでる感じか
2022/04/15(金) 21:25:54.67ID:lFYUjAWg
シングルトンにしてもグローバル変数にしても排他制御が必要な点で同じだよな
2022/04/15(金) 21:31:24.48ID:o8nSddd2
コンストラクタ実体を含んだdllをロードする前にinline変数の初期化が走るというのが問題なら、
GetInstanceのテンプレート実装に逃げるか...
template<class T>
T&GetInstance(){static _back;return _back;}
int main(){
GetInstance<Hoge>().Func();
}
一応言っておくがデータをケチる目的のはずだからinline変数もGetInstanceテンプレートも「本物」のグローバル変数ではない
dllをまたいだら別の実体だ
GetInstanceのテンプレート実装に逃げるか...
template<class T>
T&GetInstance(){static _back;return _back;}
int main(){
GetInstance<Hoge>().Func();
}
一応言っておくがデータをケチる目的のはずだからinline変数もGetInstanceテンプレートも「本物」のグローバル変数ではない
dllをまたいだら別の実体だ
2022/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でやるしかなかった
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】「国立ガラガラじゃん!」 「タダ券ばら撒かないんだっけ?」天皇杯決勝、6万7750人収容のスタンドに目立つ空席 [鉄チーズ烏★]
- 【立憲民主党】「質問レベルの低さが立憲の存立危機事態」台湾有事発言を引き出した立憲“執拗追及”が波紋… [尺アジ★]
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★13 [BFU★]
- 【サッカー】天皇杯決勝戦 町田×神戸 [久太郎★]
- ゼレンスキー氏、アメリカの支援失う危険あるとウクライナ国民に演説 米和平案めぐり [1ゲットロボ★]
- 中国「国連安保理の許可なしに日本攻撃可能」 Xで旧敵国条項に言及… ★14 [BFU★]
- 他サポ 2025-261
- 2025 SUPER FORMULA Lap18
- ハム専ファンフェス
- 京都競馬4回5日目エリザベス女王杯★3
- 【フジテレビ】2025 FORMULA 1【NEXT】Lap600
- 福島競馬3回5日目
- 【高市悲報】観光地から中国人🇨🇳が消え始める。。。。。。。。。。。。。日本人さあ、ほんとにこれでいいのか??? [573041775]
- 高市早苗「G20サミット、なめられない服を選びました。外交交渉でマウント取れる服買わないとなぁ」大炎上 [165981677]
- 「中国残留孤児」これ本当に悲しい話だよな。でも、そんな日本人の子どもを分け隔てなく育ててくれた中国の田舎の人は偉いわ [389326466]
- 【悲報】田崎史郎氏「発言撤回したら高市政権は終わる」 [115996789]
- 【緊急】井上vs那須川天心、あと2日
- 【悲報】普通の日本人「子どもは高級寿司店で寿司食うな」 [522666295]
