前スレ
C++相談室 part158
https://mevius.5ch.net/test/read.cgi/tech/1636969758/
探検
C++相談室 part159
レス数が950を超えています。1000を超えると書き込みができなくなります。
1デフォルトの名無しさん
2022/02/19(土) 11:56:42.14ID:kSnJ/KwP881デフォルトの名無しさん
2022/04/06(水) 18:15:07.58ID:Iu/ahyl1 ネイティブの多次元配列とは
882デフォルトの名無しさん
2022/04/06(水) 18:18:59.68ID:OIlaSdNT883デフォルトの名無しさん
2022/04/06(水) 18:30:19.00ID:aY4pnG+o eigen gmtlとか?
884デフォルトの名無しさん
2022/04/06(水) 19:07:48.95ID:ofj8wLUE 1つめがよーわからんけど
・次元数はコンパイル時決定
・要素数もコンパイル時決定
・子要素のサイズは全て同じ(arr[0].size()==arr[1].size() が常に成り立つ)
ってことでええの?
それなら単純にstd::array<std::array<T, 4>,5>でいいとは思うが
・次元数はコンパイル時決定
・要素数もコンパイル時決定
・子要素のサイズは全て同じ(arr[0].size()==arr[1].size() が常に成り立つ)
ってことでええの?
それなら単純にstd::array<std::array<T, 4>,5>でいいとは思うが
885デフォルトの名無しさん
2022/04/06(水) 19:36:43.45ID:vJ8PYFJ1 全部arrayだとスタックに配置される事あるからvector<array>でやってるな
886デフォルトの名無しさん
2022/04/06(水) 21:17:51.29ID:tUlkAQY7 >>880
std::mdspanというのが提案中だがまだ時間かかりそう
std::mdspanというのが提案中だがまだ時間かかりそう
887デフォルトの名無しさん
2022/04/06(水) 23:18:21.83ID:NvxWnsbd888デフォルトの名無しさん
2022/04/07(木) 03:17:05.89ID:yw7pyl+g889デフォルトの名無しさん
2022/04/07(木) 03:34:21.33ID:zyrTrwHF 柔軟な多重配列なんて自分ですぐ作っておしまいな話なのに
なぜ標準にないとかライブラリがないと言い出したり将来の仕様に期待するとか意味不明
なぜ標準にないとかライブラリがないと言い出したり将来の仕様に期待するとか意味不明
890デフォルトの名無しさん
2022/04/07(木) 03:49:06.16ID:g2f/LEmv numpyを使う。もちろん他にpython併用する理由があればだけど。
ローメジャーなのでメモリ上での向きは個別にやってる。
ローメジャーなのでメモリ上での向きは個別にやってる。
891デフォルトの名無しさん
2022/04/07(木) 05:59:06.00ID:kMhdBz2h >>880
blas使いたいんならstd::sliceがモロそのものだよ
blas使いたいんならstd::sliceがモロそのものだよ
892デフォルトの名無しさん
2022/04/07(木) 06:13:35.95ID:yw7pyl+g893デフォルトの名無しさん
2022/04/07(木) 06:17:36.20ID:OOyqDhdW あるクラスのコンストラクタがvector<int>をとるんだけど、たまにvector<size_t>を渡したいときがあるからオーバーロードするようにしたらambiguousだとエラーが出た
1) ambiguous にならない方法はありますか
2) vector<size_t>の各要素がintの範囲に収まるくらい小さいとき、これをvector<int>にキャストするナイスな書き方はありますか
1) ambiguous にならない方法はありますか
2) vector<size_t>の各要素がintの範囲に収まるくらい小さいとき、これをvector<int>にキャストするナイスな書き方はありますか
894デフォルトの名無しさん
2022/04/07(木) 06:40:42.70ID:kMhdBz2h ambigousにはならんようだが
https://ideone.com/YrFYsI
https://ideone.com/YrFYsI
895デフォルトの名無しさん
2022/04/07(木) 07:18:15.48ID:3YRGB6r4896デフォルトの名無しさん
2022/04/07(木) 08:17:57.53ID:CaxjwvsJ ファイルならまだしもオンメモリーで高速なランダムアクセスとか言語の範囲では工夫しようがなくね?
897デフォルトの名無しさん
2022/04/07(木) 08:32:07.21ID:Ym/mh0iz 近傍のアクセスが速いというのは言語関係ないしな
898デフォルトの名無しさん
2022/04/07(木) 10:27:53.88ID:2nzlX6cZ そういえばSTLのコンテナに[]で範囲外アクセスしたとき、デバッグモードだとちゃんとアサート出してくれるけど
あれってSTL実装した人がそう書いたから出るの?それともOSの機能か何か?
あれってSTL実装した人がそう書いたから出るの?それともOSの機能か何か?
899デフォルトの名無しさん
2022/04/07(木) 10:32:39.68ID:2HgVVA+6 全てそう書いたから出るんだよ
OSはレイヤが違う話
OSはレイヤが違う話
900デフォルトの名無しさん
2022/04/07(木) 10:39:14.99ID:2nzlX6cZ へえ、じゃやっぱマクロ使ってガシガシ書いてるんだろうね
自分じゃ絶対やりたくないなw
自分じゃ絶対やりたくないなw
901デフォルトの名無しさん
2022/04/07(木) 17:34:09.66ID:mHsgrYEE ifdefで括るだけだろ
902デフォルトの名無しさん
2022/04/07(木) 18:22:02.97ID:kMhdBz2h >>898
ルール上、保証がないことでも
やってくれてることって、どこにでもあるだろ
operator[](size_t)で範囲外アクセスした場合の動作は未定義なので
どんな扱いをされても合法なんだよ
# 一時期流行った気持ち悪い喩えはもうしない
ルール上、保証がないことでも
やってくれてることって、どこにでもあるだろ
operator[](size_t)で範囲外アクセスした場合の動作は未定義なので
どんな扱いをされても合法なんだよ
# 一時期流行った気持ち悪い喩えはもうしない
903デフォルトの名無しさん
2022/04/07(木) 21:49:18.59ID:6+zrl0OG SNSの気持ち悪いノリ持ち込むなよ
904デフォルトの名無しさん
2022/04/08(金) 01:44:38.29ID:jwLlCRWe >>900
お客様根性丸出しのプログラマとか・・・
お客様根性丸出しのプログラマとか・・・
905デフォルトの名無しさん
2022/04/09(土) 13:06:11.18ID:NDf9sYGT メモリが足らないから64ビットにするとかいうやつがいて
ソース見たら
double hoge[300][300][300];
って笑った
ソース見たら
double hoge[300][300][300];
って笑った
906デフォルトの名無しさん
2022/04/09(土) 13:37:31.78ID:gSPSOhuN 64bit化だけじゃ無理でしょ
スタックサイズを512MBぐらいにしなきゃ
スタックサイズを512MBぐらいにしなきゃ
907デフォルトの名無しさん
2022/04/09(土) 13:47:10.70ID:a9m8EYfT ツッコミどころが違う…
32bitのままヒープに確保で十分だから
32bitのままヒープに確保で十分だから
908デフォルトの名無しさん
2022/04/09(土) 13:49:15.33ID:jXZanj6A ヒープを使って良いのはアマチュアまでだからな
909デフォルトの名無しさん
2022/04/09(土) 13:53:57.22ID:qQptZxW8 世の中マシン性能で解決おじさんみたいなのばっかり
910デフォルトの名無しさん
2022/04/09(土) 14:20:15.81ID:erlZKZM8911はちみつ餃子 ◆8X2XSCHEME
2022/04/09(土) 15:54:11.32ID:LbeQCC1G デフォルトでのスタックサイズ上限がだいぶん小さめ (数メガバイト程度) になってるのは
基本的にそれで足りる、 なるべくそれで足りるように書けという暗黙の圧力だと思う。
必要に応じて柔軟に対処すりゃいいけど、最初からあえて逆らうべきでもないだろ。
なんでもかんでもスタックを使ってるとデバッガで追いづらいし、
流れを制御するための変数と処理する対象になるデータ (大抵はある程度に大きい) は分けたい。
回路設計に喩えると制御線と動力線を分けるみたいな感じ。
(わかりにくい比喩ですまんがあくまで感覚なのでこういう形でしか表現できない。)
基本的にそれで足りる、 なるべくそれで足りるように書けという暗黙の圧力だと思う。
必要に応じて柔軟に対処すりゃいいけど、最初からあえて逆らうべきでもないだろ。
なんでもかんでもスタックを使ってるとデバッガで追いづらいし、
流れを制御するための変数と処理する対象になるデータ (大抵はある程度に大きい) は分けたい。
回路設計に喩えると制御線と動力線を分けるみたいな感じ。
(わかりにくい比喩ですまんがあくまで感覚なのでこういう形でしか表現できない。)
912ハノン ◆QZaw55cn4c
2022/04/09(土) 16:35:28.22ID:50hSXO1R >>911
>回路設計に喩えると制御線と動力線を分けるみたいな感じ。
昔、試作基盤として、天地にべったり Vcc とアースを上辺と下辺に貼り付けて、間に島(ランド)をたくさん並べるっていうのを聞いたことがあります
どういう名称だったか忘れちゃいましたが…
>回路設計に喩えると制御線と動力線を分けるみたいな感じ。
昔、試作基盤として、天地にべったり Vcc とアースを上辺と下辺に貼り付けて、間に島(ランド)をたくさん並べるっていうのを聞いたことがあります
どういう名称だったか忘れちゃいましたが…
913デフォルトの名無しさん
2022/04/09(土) 16:45:04.63ID:erlZKZM8 おれおれコーディングルールを開陳されても困る
914デフォルトの名無しさん
2022/04/09(土) 18:42:32.24ID:njPxFZn6915デフォルトの名無しさん
2022/04/09(土) 19:24:26.54ID:mI1Pq9ZL 300が何の数字か知らんけど、それが変更や拡張で800くらいになったら溢れるんだから
64bitが必要って判断はなくはないでしょ
何の数字か知らんけど
64bitが必要って判断はなくはないでしょ
何の数字か知らんけど
916デフォルトの名無しさん
2022/04/09(土) 19:56:02.24ID:NDf9sYGT >>915
君は本物のバカだな
君は本物のバカだな
917デフォルトの名無しさん
2022/04/09(土) 21:01:35.50ID:/RZJpXw8 規格にスタックって出てくる?
918デフォルトの名無しさん
2022/04/09(土) 22:53:29.39ID:NDf9sYGT 出てくるわけねーじゃん
バカですか?
バカですか?
919デフォルトの名無しさん
2022/04/09(土) 23:32:57.29ID:lfgNvR7s std::threadで作ったスレッドのスタックサイズは1 MBで
変更はできないら
しい
今日日は仮想メモリがあるからなリ
ッチなマシンなら……
変更はできないら
しい
今日日は仮想メモリがあるからなリ
ッチなマシンなら……
920デフォルトの名無しさん
2022/04/10(日) 01:07:52.01ID:OW76vhVn 標準ライブラリなんて普通使わないだろ
汎用的にしすぎてて、いらない機能が多いからやたらと遅いし
汎用的にしすぎてて、いらない機能が多いからやたらと遅いし
921デフォルトの名無しさん
2022/04/10(日) 01:48:34.97ID:vpYyJyBE 標準以外なにをつかうんだ
922デフォルトの名無しさん
2022/04/10(日) 04:47:34.93ID:Fso6oKAR _beginthreadex()
923デフォルトの名無しさん
2022/04/10(日) 05:15:04.39ID:RmTwSS8K pthread
924デフォルトの名無しさん
2022/04/10(日) 05:58:59.81ID:xcZwEbFY <thread>で抽象化されていないOS特有の機能を使いたきゃAPI使うってだけ
925デフォルトの名無しさん
2022/04/10(日) 11:29:27.51ID:lpHEMRFm926デフォルトの名無しさん
2022/04/10(日) 11:37:41.44ID:vpYyJyBE >>925
被せるだけじゃなくて自作すんの?
被せるだけじゃなくて自作すんの?
927デフォルトの名無しさん
2022/04/10(日) 11:57:59.43ID:Np98oj9K ちんちんシュッ!シュッ!シュッ!
928デフォルトの名無しさん
2022/04/10(日) 13:14:21.25ID:wqaUV7TG929デフォルトの名無しさん
2022/04/10(日) 16:50:49.57ID:8UzTPUX4930デフォルトの名無しさん
2022/04/11(月) 06:43:40.41ID:x3kzaSAd 関数群をまとめたいときってクラスで切るべき? 名前空間で切るべき?
例えば sub1、 sub2 というサブルーチンがあって、これらが func1、func2 から呼ばれるときに、これらをまとめたいと思うんです
例えば sub1、 sub2 というサブルーチンがあって、これらが func1、func2 から呼ばれるときに、これらをまとめたいと思うんです
931デフォルトの名無しさん
2022/04/11(月) 06:51:36.36ID:r64ZejsB べきという言い方はあまり好まんが
関数間で連携させるならクラス
連携しない単なるグループなら名前空間
というのが俺がよく使う手だ
関数間で連携させるならクラス
連携しない単なるグループなら名前空間
というのが俺がよく使う手だ
932デフォルトの名無しさん
2022/04/11(月) 06:54:00.91ID:sjzgKw67 > これらをまとめたいと思うんです
どうまとめたいんだよ…
どうまとめたいんだよ…
933デフォルトの名無しさん
2022/04/11(月) 12:12:27.70ID:sxIacEU4 mc++d読んだけど、これが20年前以上に書かれたってことがすごいな
今となっては、当たり前のことをばっかだけど
当時は革新的だったんじゃないかな
今となっては、当たり前のことをばっかだけど
当時は革新的だったんじゃないかな
934はちみつ餃子 ◆8X2XSCHEME
2022/04/11(月) 13:01:51.57ID:7nQKgh0L >>930
特定の範囲でしか使わない関数があるという意味?
それだけの理由なら名前空間でもクラスでも分ける必要はない。
その翻訳単位で内部リンケージにしておけば十分だよ。
名前空間やクラスは外部に対してどう見せるかの問題なんだから
機能単位の中で階層を分ける必要はあんまりない。
特定の範囲でしか使わない関数があるという意味?
それだけの理由なら名前空間でもクラスでも分ける必要はない。
その翻訳単位で内部リンケージにしておけば十分だよ。
名前空間やクラスは外部に対してどう見せるかの問題なんだから
機能単位の中で階層を分ける必要はあんまりない。
935デフォルトの名無しさん
2022/04/11(月) 15:33:36.87ID:gXppguDy そういや翻訳単位の管理として新しくモジュールがc++20から導入されたけど、使い心地どうかしらん?
既存コードもモジュール化した方がいいくらい便利だったりするのかしらん?
既存コードもモジュール化した方がいいくらい便利だったりするのかしらん?
936デフォルトの名無しさん
2022/04/11(月) 16:44:48.15ID:bKclHLZw937デフォルトの名無しさん
2022/04/11(月) 19:36:19.35ID:KtON6/oU >>935
昨年末あたりにvisual studioで試したらどうやってもビルド通らなくて諦めたけど今もう使えるようになってるんかな
昨年末あたりにvisual studioで試したらどうやってもビルド通らなくて諦めたけど今もう使えるようになってるんかな
938デフォルトの名無しさん
2022/04/12(火) 01:31:53.93ID:EgjH8LRN 実験した程度でしかないけど使えてたよ。
939デフォルトの名無しさん
2022/04/12(火) 10:13:21.46ID:5vVn8Fqf >>934
その翻訳単位がグローバル領域だったら? って意味でしょ
その翻訳単位がグローバル領域だったら? って意味でしょ
941デフォルトの名無しさん
2022/04/12(火) 16:43:20.82ID:qoqTD/fb dfs とか bfs みたいな名前の関数はそれを呼ぶ関数とまとめたくなるよね分かる
関数内関数にすると他の関数から呼べなくなるしな
名前を変えよってのはナシなw
関数内関数にすると他の関数から呼べなくなるしな
名前を変えよってのはナシなw
942デフォルトの名無しさん
2022/04/12(火) 17:25:13.49ID:nzV1CUkS モジュール……
943デフォルトの名無しさん
2022/04/12(火) 17:51:32.45ID:RKLCiqJK アホな質問かもしれないのですが……
今までユニークポインタで実体領域確保していたクラスを、どうせ一つしかnewしないからと、クラス内部に自身型の静的変数を保持して使用する方法へと変更しました。
所謂シングルトンに似た感じのものだと思うのですが。
std::unique-ptr<Hoge>Temp=std::make-unique<Hoge>();
↓
static Hoge& GetInstance(){static Hoge temp;return temp;}
使用する分には問題ないのですが、実体化させたいクラス数が多く、結果的には静的変数のガズが増え、実体がグローバルに多数存在する状態になってしまっていると思います。
この場合、名前衝突以外に何か想定される不具合はありますか?
データを保持させるクラス以外は全てこれに置き換えようと思っているのですが、今までnewして使っていたため何か罠があると思えてなりません。
この方法はクラス名から実態を呼び出せて私に大変便利です。
今までユニークポインタで実体領域確保していたクラスを、どうせ一つしかnewしないからと、クラス内部に自身型の静的変数を保持して使用する方法へと変更しました。
所謂シングルトンに似た感じのものだと思うのですが。
std::unique-ptr<Hoge>Temp=std::make-unique<Hoge>();
↓
static Hoge& GetInstance(){static Hoge temp;return temp;}
使用する分には問題ないのですが、実体化させたいクラス数が多く、結果的には静的変数のガズが増え、実体がグローバルに多数存在する状態になってしまっていると思います。
この場合、名前衝突以外に何か想定される不具合はありますか?
データを保持させるクラス以外は全てこれに置き換えようと思っているのですが、今までnewして使っていたため何か罠があると思えてなりません。
この方法はクラス名から実態を呼び出せて私に大変便利です。
944デフォルトの名無しさん
2022/04/12(火) 18:22:24.95ID:fdFUG1QI >>943
ないです
ないです
947デフォルトの名無しさん
2022/04/12(火) 18:39:03.10ID:FTlcB8DO クラス外側でtemplate実装にしろよとは思うが
template<class T>
inline T Instance;
int main(){
Instance<Hoge>.Execute();
}
template<class T>
inline T Instance;
int main(){
Instance<Hoge>.Execute();
}
948デフォルトの名無しさん
2022/04/12(火) 19:21:11.76ID:72/2frZ9 static ローカル変数が定石じゃないの?
949デフォルトの名無しさん
2022/04/12(火) 20:27:31.77ID:vgUv52EM は?
950デフォルトの名無しさん
2022/04/12(火) 20:30:19.09ID:X1V1J1VK 経験的にはどうせ静的なら変に隠さずグローバル変数の方が使いやすいです
951デフォルトの名無しさん
2022/04/12(火) 21:36:16.25ID:RKLCiqJK ちょっと皆さんの言ってることがよくわからないのですが……
テンプレートにして有効範囲で使用する、グローバルでいつでも呼び出せるようにする
ということでしょうか?
使用を想定しているのは膨大なデータのコンプレックスではなく、外部データ加工用に少量のローカル変数を持たせたクラスなので、実体はひつとで大丈夫だと思います。
その際には、衝突を考えないならば、グローバウに無造作に置いた方が使いやすいよ、ということでしょうか?
テンプレートにして有効範囲で使用する、グローバルでいつでも呼び出せるようにする
ということでしょうか?
使用を想定しているのは膨大なデータのコンプレックスではなく、外部データ加工用に少量のローカル変数を持たせたクラスなので、実体はひつとで大丈夫だと思います。
その際には、衝突を考えないならば、グローバウに無造作に置いた方が使いやすいよ、ということでしょうか?
952デフォルトの名無しさん
2022/04/12(火) 22:13:59.90ID:oNokQpOT 左再帰が無限ループになる理由を教えて
954蟻人間 ◆T6xkBnTXz7B0
2022/04/12(火) 23:31:14.39ID:Dt0TGPDO 積んで解放しないから。
955デフォルトの名無しさん
2022/04/12(火) 23:39:21.85ID:EarvAF13 停止しないから無限ループする
…って酷い理由だな
…って酷い理由だな
956デフォルトの名無しさん
2022/04/13(水) 00:21:12.99ID:bubjF7cO じゃあ停止するかどうかを判定する汎用ルーチンHを作ればいいんだよ。
957947
2022/04/13(水) 01:25:51.41ID:qfz8Xp88958デフォルトの名無しさん
2022/04/13(水) 05:51:58.22ID:8pcHyiAe staticにインスタンス入れるやり方だとマルチスレッドマルチプロセスにした時すぐ破綻するから大き目の定数入れる以外には使ってないな
959デフォルトの名無しさん
2022/04/13(水) 08:11:33.40ID:ZQqXT36F グローバル変数は初期化順序が環境依存になる問題があるから、
呼び出し順序で初期化するインライン関数のstaticローカル変数の方が扱いやすい
という話があったかと思うけど、最近は回避するテクニックできたの?
呼び出し順序で初期化するインライン関数のstaticローカル変数の方が扱いやすい
という話があったかと思うけど、最近は回避するテクニックできたの?
960デフォルトの名無しさん
2022/04/13(水) 09:44:11.11ID:abmOAw0D961デフォルトの名無しさん
2022/04/13(水) 10:25:01.35ID:2DJG1h+b 相談
抽象的なノードクラスがあり、上流ノードから下流ノードが接続され情報を取り出したいとする
この時、接続時に上流ノードの出力タイプと、下流ノードの入力タイプが符合するかどうかを調べたい
今考えている実装方法としてenum型でタイプを列挙しておき、ノードの出力属性としてもたせ
入力に必要な属性を接続時に調べておく方法
シンプルでベストかなとは思うが、タイプが増えていくとその管理がやや大変かと思う
文字列で符合させるやり方も考えたが、例えば"int"と"integer"とかでごちゃごちゃしそう
なにか妙案があればお聞かせ願いたい
抽象的なノードクラスがあり、上流ノードから下流ノードが接続され情報を取り出したいとする
この時、接続時に上流ノードの出力タイプと、下流ノードの入力タイプが符合するかどうかを調べたい
今考えている実装方法としてenum型でタイプを列挙しておき、ノードの出力属性としてもたせ
入力に必要な属性を接続時に調べておく方法
シンプルでベストかなとは思うが、タイプが増えていくとその管理がやや大変かと思う
文字列で符合させるやり方も考えたが、例えば"int"と"integer"とかでごちゃごちゃしそう
なにか妙案があればお聞かせ願いたい
962デフォルトの名無しさん
2022/04/13(水) 10:28:21.90ID:CyvaZh5F 抽象的でわからん
963デフォルトの名無しさん
2022/04/13(水) 10:36:53.86ID:2DJG1h+b すいません、もうちょっと自分で考えて相談点まとめます
964デフォルトの名無しさん
2022/04/13(水) 10:44:17.47ID:zii+x7Ds それぞれのスレッドでは個別だけど スレッド内では唯一のインスタンス
スレッドをまたいでも共通で唯一のインスタンス
あたまがこんらんする
スレッドをまたいでも共通で唯一のインスタンス
あたまがこんらんする
965デフォルトの名無しさん
2022/04/13(水) 12:06:05.65ID:IuPW2iUE >>961
どのみち符号の管理・徹底は必須だから、文字列で符号化し、表とかにまとめてバージョン管理・周知徹底する。
protocol bufferとかでインターフェイス管理すれば少しは楽かね。
protocol buffer以外だとなにがいいかしらん?
どのみち符号の管理・徹底は必須だから、文字列で符号化し、表とかにまとめてバージョン管理・周知徹底する。
protocol bufferとかでインターフェイス管理すれば少しは楽かね。
protocol buffer以外だとなにがいいかしらん?
966デフォルトの名無しさん
2022/04/13(水) 12:12:18.93ID:5KnL277L // A と Bのところだけが異なるfとf2
// うまくこの関数をまとめれませんか?
#include <iostream>
#include <vector>
#include <algorithm>
struct Foo
{
void Func() const
{}
};
void f(const std::vector<Foo>& vf)
{
std::for_each(vf.begin(),vf.end(),
[](auto&& f)
{
f.Func();//A
}
);
}
void f2(const std::vector<Foo*>& vf)
{
std::for_each(vf.begin(),vf.end(),
[](auto&& f)
{
f->Func();//B
}
);
}
int main( int argc, char *argv[] )
{
std::vector<Foo> vf;
std::vector<Foo*> vfp;
f(vf);
f2(vfp);
}
// うまくこの関数をまとめれませんか?
#include <iostream>
#include <vector>
#include <algorithm>
struct Foo
{
void Func() const
{}
};
void f(const std::vector<Foo>& vf)
{
std::for_each(vf.begin(),vf.end(),
[](auto&& f)
{
f.Func();//A
}
);
}
void f2(const std::vector<Foo*>& vf)
{
std::for_each(vf.begin(),vf.end(),
[](auto&& f)
{
f->Func();//B
}
);
}
int main( int argc, char *argv[] )
{
std::vector<Foo> vf;
std::vector<Foo*> vfp;
f(vf);
f2(vfp);
}
967蟻人間 ◆T6xkBnTXz7B0
2022/04/13(水) 12:20:05.74ID:+YltrYoo std::vector<Foo*>
std::vector<Foo>
のインターフェイスに共通部分がない。アキラメロン。
std::vector<Foo>
のインターフェイスに共通部分がない。アキラメロン。
968947
2022/04/13(水) 13:02:01.63ID:sgl3F80B type_traitsで殴ればいけそう
template<class T>
auto& to_reference_if_pointer(T&t){
if constexpr(std::is_pointer_v<T>){
return *t;
}else{
return t;
}
}
to_reference_if_pointer(f).Func();
template<class T>
auto& to_reference_if_pointer(T&t){
if constexpr(std::is_pointer_v<T>){
return *t;
}else{
return t;
}
}
to_reference_if_pointer(f).Func();
969はちみつ餃子 ◆8X2XSCHEME
2022/04/13(水) 13:12:01.75ID:qCcEdGhE970デフォルトの名無しさん
2022/04/13(水) 18:00:26.46ID:m7JtDTD6 >>957
今実機で確認して、インライン化したテンプレートをヘッダーに咥える方法が自分にとって良い事を確認しました!
ありがとうございます。
いちいちスタティック咥えるより良いと思います。
マルチスレッドは使用したことがないのでわかりませんが、なるべき勉強してみたいと思います。
皆さんありがとうございます!
今実機で確認して、インライン化したテンプレートをヘッダーに咥える方法が自分にとって良い事を確認しました!
ありがとうございます。
いちいちスタティック咥えるより良いと思います。
マルチスレッドは使用したことがないのでわかりませんが、なるべき勉強してみたいと思います。
皆さんありがとうございます!
971デフォルトの名無しさん
2022/04/13(水) 18:15:56.73ID:I4ieD//T >>966
std::for_each(vf.begin(),vf.end(),std::mem_fn(&Foo::Func));
または
for (auto &&x : vf) { std::invoke(&Foo::Func, x); }
std::for_each(vf.begin(),vf.end(),std::mem_fn(&Foo::Func));
または
for (auto &&x : vf) { std::invoke(&Foo::Func, x); }
972デフォルトの名無しさん
2022/04/13(水) 18:28:24.44ID:U0E88zpG オマンコハンター チンポマン!
股間の銃を携えて今日もおまんこ狙い撃ち
股間の銃を携えて今日もおまんこ狙い撃ち
973デフォルトの名無しさん
2022/04/13(水) 23:40:49.30ID:grUsXYkY >>971
ラムダが消されてて笑った
ラムダが消されてて笑った
974デフォルトの名無しさん
2022/04/13(水) 23:53:02.59ID:nvVh9cdQ975デフォルトの名無しさん
2022/04/14(木) 07:29:49.75ID:Qd4x1CZh シングルトンは要らない子、とヴァカにしていたが
グローバルなオブジェクトのコンストラの呼び出し順序が翻訳単位を超えた呼び出し順序がまるきり不
定になるというC/C++の仕様を回避するのには有効おと1 mgぐらい考えを新ためた
OSのwrapperを書いて、main()でそれを初期化することにして
グローバルなオブジェクトのコンストラから思わずOSのwrapper経由でログを吐かせようとしたらクラッシュして気づいたから
最初のOSのwrapperの最初の呼び出しでまだ未呼び出しなら初期化したら良い(ビコーン ← まんまシングルトン
main()で初期化することが保証しているから、グローバルなコンストラの中でいきなりスレッドを起こしてそこから
OSのwrapperを呼ぶ、みたいなktgi行為が無い限りこのシングルトンはマルチスレッドの対策が不要
グローバルなオブジェクトのコンストラの呼び出し順序が翻訳単位を超えた呼び出し順序がまるきり不
定になるというC/C++の仕様を回避するのには有効おと1 mgぐらい考えを新ためた
OSのwrapperを書いて、main()でそれを初期化することにして
グローバルなオブジェクトのコンストラから思わずOSのwrapper経由でログを吐かせようとしたらクラッシュして気づいたから
最初のOSのwrapperの最初の呼び出しでまだ未呼び出しなら初期化したら良い(ビコーン ← まんまシングルトン
main()で初期化することが保証しているから、グローバルなコンストラの中でいきなりスレッドを起こしてそこから
OSのwrapperを呼ぶ、みたいなktgi行為が無い限りこのシングルトンはマルチスレッドの対策が不要
976デフォルトの名無しさん
2022/04/14(木) 07:33:43.77ID:Qd4x1CZh 訂正orz、
誤: 最初のOSのwrapperの最初の呼び出しでまだ未呼び出しなら初期化したら良い(ビコーン ← まんまシングルトン
正: 最初のOSのwrapperの最初の呼び出しでまだ未初期化なら初期化したら良い(ビコーン ← まんまシングルトン
誤: 最初のOSのwrapperの最初の呼び出しでまだ未呼び出しなら初期化したら良い(ビコーン ← まんまシングルトン
正: 最初のOSのwrapperの最初の呼び出しでまだ未初期化なら初期化したら良い(ビコーン ← まんまシングルトン
977デフォルトの名無しさん
2022/04/14(木) 08:28:49.07ID:79II+WyL 別にシングルトンじゃなくても単に起動時に初期化して渡せばええやん
978デフォルトの名無しさん
2022/04/14(木) 09:59:18.13ID:wwxSZsaE いや要るでしょシングルトン
何らかのリソースマネージャ作るときとか避けて通れないし
何らかのリソースマネージャ作るときとか避けて通れないし
979デフォルトの名無しさん
2022/04/14(木) 10:35:30.42ID:dlHUY+WK >>977
初期化順序の問題って回避できたっけ?
初期化順序の問題って回避できたっけ?
980デフォルトの名無しさん
2022/04/14(木) 10:40:07.14ID:79II+WyL mainでリソース用意しろという話よ
ライブラリだったら初期化用になんか叩いてもらえ
ライブラリだったら初期化用になんか叩いてもらえ
レス数が950を超えています。1000を超えると書き込みができなくなります。
ニュース
- 中国国営メディア「沖縄は日本ではない」… [BFU★]
- NY円、一時1ユーロ=180円台まで下落…1999年のユーロ導入以来初 [蚤の市★]
- 【外交】日中関係悪化、長期化の様相 2012年には自動車輸出80%減も ロイター★3 [1ゲットロボ★]
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」 [ぐれ★]
- 「稼ぐのよ!」高市総理が電話ガチャ切りで伝えたこと 鈴木憲和農林水産大臣が国政報告会に出席 自身が目指す農政の方針語る [煮卵★]
- 高市「シカ発言撤回しない」ネトウヨに媚びた発言したら総理になれた。成功体験が忘れられない😲 [861717324]
- 『しんちゃんと岸田さん』 [175344491]
- 竹田天皇「中国の渡航自粛勧告は日本にとって渡りに船」 [377482965]
- 自民「高市の一言でこれまで積み上げてきた関係が駄目になる。言葉の重みを分かっていない。自分でまいた種は自分で刈り取ってもらう」 [256556981]
- 中国発日本行の航空券、491,000件(全体の32%)がキャンセルされたと判明。高市どうすんのこれ [603416639]
- 【緊急】日本、円安バブル遂に崩壊!インバウンド崩壊に株大暴落! [383063292]
