1 名前:デフォルトの名無しさん mailto:sage [2019/12/18(水) 17:56:53.03 ID:uFDqtnkl.net] C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part146 https://mevius.5ch.net/test/read.cgi/tech/1573094136/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.105【環境依存OK】 mevius.5ch.net/test/read.cgi/tech/1556142878/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) STLつかうと一気に実行ファイルサイズが10倍に?! 環境によるだろ。 俺はBorland-C++5.6.2に -D_RTLDLL オプションを指定して、極力 ランタイムを使用するようにして使っているが、例えばstd::vectorを 使っても使わない時と比べ10Kほどしか増えない すげえ。ダイナミックリンクしといてファイルサイズが増えないとかいってるよ。この人。 ↑え?だってお前、普通ダイナミックリンクするだろ? "ダイナミックリンク"す・れ・ば、ファイルサイズ**増えないです**
101 名前:デフォルトの名無しさん mailto:sage [2019/12/29(日) 15:16:08.73 ID:mv3qVHGb.net] まあ、猫でもなんとかとか、スッキリわかるとか、柴田よりはましだろw
102 名前: mailto:sage [2019/12/29(日) 15:26:45.05 ID:yqbBnK7b.net] >>98 エピさん、監訳ポジなら問題ないんですけどエピさん単著だったら、ちょっと考えますね エピさんの本は出来の波が激しすぎるのです
103 名前:デフォルトの名無しさん mailto:sage [2019/12/29(日) 15:40:38.44 ID:G5unUlDw.net] エピはサンプルコードの題材が全部タイマーのイメージ
104 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 02:16:44.05 ID:uy9KH9fJ.net] >>98 その3人全員委員会のメンバーなの?江添だけだと思ってたが
105 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 10:20:13.91 ID:iZxqjmO+.net] sizeof(void)がビルドが通らないorz void型を渡すときのテンプレートの特殊化ってどう書けば良いんじゃ…
106 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 10:47:48.49 ID:obTerxTG.net] は?
107 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 10:54:41.38 ID:fYgKDGaZ.net] サンプルコードプリーズ
108 名前:デフォルトの名無しさん mailto:sage [2019/12/30(月) 11:15:51.02 ID:g0RN7zwT.net] sizeof(void)がだめだからT=voidだけ特殊化したいということだろ? なにも特別なことはないと思うが。 https://ja.cppreference.com/w/cpp/language/template_specialization
109 名前:96 [2019/12/30(月) 23:04:11.87 ID:p3QJuMJ/.net] >>102 C++テンプレートテクニック―簡潔で再利用しやすいコードのためのC++活用術、2009 著者の紹介文に、こう書いてある επιστημη[エピステーメー] C++標準化委員会会員 高橋晶 1985年生まれ。2008年05月からC++標準化委員会にエキスパートとして参加 (本データは、この書籍が刊行された当時に掲載されていたものです)
110 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 04:04:35.24 ID:rzJRcJt/.net] まじかよ 正直ソフト開発してないライターがやたら参加してんのはどうかと思うけどなぁ
111 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 06:39:04.13 ID:K+WZPcbo.net] でもお前らの100倍詳しい
112 名前:デフォルトの名無しさん [2019/12/31(火) 07:04:20.12 ID:yGRo5VMJ.net] まぁ規格の解説とかはそういうのに関わってる人にしてもらうのが一番いいんじゃない?
113 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 07:29:37.36 ID:rzJRcJt/.net] まぁ解説とかはそうだし有難いんだけどね ちょっと日本のライター(に限らないのかもしれんけど)は自分でがっつり使い込んでもないテクニックを 「もしかしたら役に立たないかもしれない」との疑い全く無しに押し付けてることがあるしたまに宗教じみてるから そういう人ばかりだと今後が不安
114 名前:だなぁと それだけw [] [ここ壊れてます]
115 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 07:57:16.28 ID:K+WZPcbo.net] 運用するのはお前らの仕事
116 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 08:08:20.03 ID:8dhupYNq.net] 技術書籍は著者の思想に染まらなくても そこに書いてあるアイディアを欲しいとこだけつまみ食いが デフォな読み方だろ
117 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 09:13:17.18 ID:6pACnD9L.net] いや、どれもこれも役に立つよ てか新機能は大概実際に使っているやつらの発案で始まっているのだから当たり前 まあ、だからこそいろんな分野での要望がまぜこぜになって、ある分野では誰も興味を持たないみたいな言語機能も出てくるのだが
118 名前:111 mailto:sage [2019/12/31(火) 09:23:14.27 ID:1NlDtb3g.net] >>114 いや言語機能は大抵役に立つよそりゃ 役に立たないかも、ってのは彼らが主にブログとかで紹介してるようなテクニックのこと 完全型か不完全型かを判定するテクニック思いついたよ!(ODRに違反するので要件チェックでエラーにする為にしか使えないが、それは書いてない)とか C++/CLI風のプロパティをテンプレートで作ってみたよ使ってね!とかな 実際に開発してて使ってたらそんな都合よくはいかんやん?開発に使ってる人間とはちょっと感覚がズレてるんだよな
119 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 09:37:10.17 ID:qHnQy48w.net] >>115 それは開発やってる人間が考えたってある前提では上手くいくが別の前提では使えないということもあるし、巷に溢れてる初心者でも書ける記事よりは価値があると思うよ。 参考になるところだけ拾って自分の役に立つときに取り出せればいいんでない?
120 名前:111 mailto:sage [2019/12/31(火) 09:38:38.18 ID:wdGRUaME.net] まぁそれはそうやね なんだかんだ世話にはなってるし
121 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 10:34:54.28 ID:YPeginhU.net] std::vector<std::string> で、登録済みのstringのc_str()が変化しないことを保証する方法ってないかな? このままでも基本的にはムーブされることが期待できるけど、コピーが発生する可能性は否定できないよね?
122 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 11:23:41.27 ID:8dhupYNq.net] restrictがないからconst&から取得したc_strでも失効してることがあるよな
123 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 11:48:24.20 ID:qHnQy48w.net] >>118 そのvectorに対してiteratorが無効になる操作をしないこと、およびその要素stringに対してc_strが無効になる操作をしないこと、ではいけないの?
124 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 11:56:10.87 ID:6k+egH3+.net] vectorで書き換えられたくなければvector<string_view>にすれば
125 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 11:57:01.13 ID:8dhupYNq.net] コピーを作って、参照ではなく元々constなオブジェクトにするしかねえべ
126 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 12:01:50.45 ID:YPeginhU.net] ありがとう、そのままじゃ無理みたいだね。 std::vector<std::unique_ptr<std::string>>> にするわ。
127 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 12:19:07.09 ID:8dhupYNq.net] vcとgccでは通るんだけどclangだけ引っかかる const test obj; return static_cast<test const&&>(obj); //ok return move(obj); // warning: moving a local object in a return statement prevents copy elision [-Wpessimizing-move] copy elisionを後押ししちゃダメってこと?
128 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 12:57:47.44 ID:i0/j0IL1.net] そのまま読むと、「ムーブすると」コピー省略の妨げになるとしか書かれてない気がするけど
129 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 13:11:47.23 ID:6k+egH3+.net] 現代的なコンパイラならわざわざムーブする必要ないからね 最適化の邪魔になる可能性あるよって親切に教えてくれてるんでしょ
130 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 13:14:32.39 ID:8dhupYNq.net] 118からの
131 名前:ャれで122を書いたんだけど const付きで何かした結果をmoveでなら無理なくconst外し できるのかって発想で実験してたんだ [] [ここ壊れてます]
132 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 14:21:00.13 ID:jcurN+EG.net] >>123 そんなことするくらいだったらstd::dequeの方がよくね?
133 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 14:39:44.01 ID:YPeginhU.net] std::list は大丈夫かもしれないけど std::deque は vector と同じような。
134 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 14:56:19.70 ID:jcurN+EG.net] まぁ、std:dequeはチャンク単位でメモリ確保するから、頭とお尻の操作であればの再配置が行われないけど、途中要素だと再配置入るから保証は無理か。
135 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 15:02:45.14 ID:YPeginhU.net] ああなるほど、dequeの尻に追加する分には既存の要素の再配置は起こらないのか。ありがとう。
136 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 16:29:46.55 ID:hkax3Wzu.net] dequeの実装方法は規定されてなかったような
137 名前:デフォルトの名無しさん mailto:sage [2019/12/31(火) 17:01:07.64 ID:jcurN+EG.net] 詳しくは知らないけど、std::dequeにはreserveがないから、ちゃんと規定されているのではないかと思う。
138 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 10:18:26.20 ID:W3M0tzcA.net] C++とか多重定義があるから関数名が内部で修飾されて違う名前にするの、英語でなんか呼び名があったと思うのですが なんというのですか? C++と多重定義に限らず、実際の名前と違うのを作ることを言うのかも知れなかったけど
139 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 10:23:41.44 ID:kPvcajv8.net] マングリングのことかな
140 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 14:22:17.23 ID:W3M0tzcA.net] >>135 それです。 ありがとうございました。
141 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 14:24:24.22 ID:7xbR7AqI.net] 昔から思ってるけど、マングリングっていう単語 ちょっと口にするのに抵抗ある感
142 名前: [2020/01/01(水) 15:23:06.14 ID:tqBP4ADq.net] あけおめこ とよろ まんぐりがえし
143 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 16:31:16.52 ID:BCFJuGnw.net] うちの会社は開発島のとなりに総務島があってマングリングを誤解するだろうお姉さま方がたくさんいるから、とても言えない。 わざと聞こえるように言って反応を見てみたい気もするが怖くて出来ない。
144 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 16:34:16.30 ID:9/85Pj9b.net] そんな事をいちいち気にしなきゃいけないとか大変だな 置換とか正規表現とかも言うなよ
145 名前:デフォルトの名無しさん mailto:sage [2020/01/01(水) 20:13:50.83 ID:57Nye4dF.net] マングリング返し
146 名前:デフォルトの名無しさん [2020/01/02(木) 09:10:44.11 ID:hTPsjNJF.net] 公園で置換
147 名前:デフォルトの名無しさん [2020/01/02(木) 10:54:51.63 ID:fRqsjLPx.net] 置換みたいな面倒なのは通勤電車の中で済ませろ
148 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 13:02:38.31 ID:vIdqLkFw.net] string GetAnswer(string mode, string text) { std::string ques, ans; if (mode == "Read") { std::ifstream ifs("xxxx.txt", std::ios::in); ques = text; } else if (mode == "Write") { std::ifstream ifs("xxxx.txt"); ques = split(text, ":")[0]; } std::string str; ans = "not_found"; std::vector<std::string> line; while (getline(ifs, str)) { ・・・・・・・・・ } l・・・・・・・・ この状態でgetlineを読み込まないのはなぜですか。
149 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 13:04:51.69 ID:vIdqLkFw.net] std::ifstream ifs("xxxx.txt"); if (mode == "Read") { // std::ifstream ifs("xxxx.txt", std::ios::in) //コメントで外す; もしくは削除 ques = text; } else if (mode == "Write") { // std::ifstream ifs("xxxx.txt"); //コメントで外す、もしくは削除 ques = split(text, ":")[0]; } こうすれば、まともに動くのですが、前記の状態で動かないのはなぜですか。 modeは"Read"と""Write"しかないのですが。
150 名前:デフォルトの名無しさん [2020/01/02(木) 13:16:19.00 ID:fRqsjLPx.net] if抜けたらそれはどこへ逝く?
151 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 13:19:25.49 ID:+UNtt4nj.net] >>145 コンパイルエラーじゃね?
152 名前:デフォルトの名無しさん [2020/01/02(木) 13:23:42.58 ID:fRqsjLPx.net] グローバルのスコープにあるんじゃ
153 名前:ヒ [] [ここ壊れてます]
154 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 13:38:13.22 ID:+UNtt4nj.net] グローバルスコープにあるならオープンされてなさそうだね
155 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 19:15:39.81 ID:G5uvQucS.net] 質問ですが以下のコードのように、enum Barが クラスFooの中でprivateなサブタイプとして定義されているときに、 enum Barで定義されている定数TAG1やTAG2を ラムダ式の定義の中からクラス名修飾無しで使うにはどうしたらいいんですかね… class Foo { private: enum Bar { TAG1, TAG2, TAG3 }; public: enum Bar some_method(); enum Bar launch(std::function<enum Bar(int)> func); }; Foo::Bar Foo::some_method() { // メソッドの地の文 printf("TAG1=%d\n", TAG1); // これはクラス名修飾無しでもOK // ラムダ式の定義 auto lambdaFunc = [=](int x)->enum Bar{ if (x == 1) { return Foo::TAG1; // これはクラス名修飾しないとコンパイルエラー } else { return Foo::TAG2; // これもクラス名修飾しないとコンパイルエラー } }; // ラムダ式を使う return launch(lambdaFunc); }
156 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 19:27:46.90 ID:LbxbUX1g.net] >>150 https://ideone.com/38OeRz 出来たけど、なんか間違ってるか?
157 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 20:18:42.74 ID:G5uvQucS.net] >>151 レスdクス、だいたい動いたのですがMSVC 2010だと1点変更が必要でしたorz ↓17行目 https://ideone.com/PYoVfL some_method()の定義をクラスFooの定義外に持っていっても同じ。 ラムダ式の中でFoo::TAG1とせねばならないというのは誤認だった模様サーセン、 しかし上のような新たな闇に行き当たってしまった、、、
158 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 20:21:51.56 ID:G5uvQucS.net] なお、>>152 の17行目のthisをコメントアウトして(つまりオリジナルの>>151 のコードに戻して) その上でラムダ式Lmの中でFoo::T1と書くともっと訳のわからないエラーを吐かれる↓↓↓ 1>ideone_38OeRz.cpp(19): error C2065: '__this' : 定義されていない識別子です。 1>ideone_38OeRz.cpp(19): error C2227: '->T1' : 左側がクラス、構造体、共用体、ジェネリック型へのポインターではありません。 21世紀も半ばにさしかかろうというのにこんなことになるとわ…!
159 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 20:32:11.41 ID:/0b57Mnr.net] C++11ですらない化石はさすがに使う方が悪い
160 名前: mailto:sage [2020/01/02(木) 20:34:22.22 ID:VmmTWzwp.net] 遅いけど、私はなかなか c++11 に移行できていない労咳だと心底自覚するようになりました…
161 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 20:35:08.33 ID:LbxbUX1g.net] https://ideone.com/b6s1Oi >>152 病みすぎて良くわからん。 >>153 Ideonでは動いているので、環境が古すぎるとしか言いようがないな。 2010ってそろそろ10年前といっても差し支えない程度に古いぞ。
162 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 20:42:19.47 ID:LbxbUX1g.net] そういえば、ドラフトのIO2Dってどうなったんすか?
163 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 21:38:42.85 ID:/mhKa7TF.net] 頓挫したんじゃない? 一時期どんなものかと資料調べてだけどまとまってなかったよ。今どうなんだろうね?
164 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 21:50:26.55 ID:LbxbUX1g.net] ぐあ、残念。
165 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 22:43:44.99 ID:NQs+pspB.net] ideoneが未だにジム神様としか読めない
166 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 22:53:50.64 ID:LbxbUX1g.net] 俺はアニメのほう思い出すよ。見たことないけど。
167 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 23:23:24.45 ID:vIdqLkFw.net] >>146 ReadかWriteのどちらかを抜けてからgetlineで読み込みますね。 デバッグで確認しています。 >>147 ビルドの段階で全くエラーが出ません。 警告にもなっていません。>>149 >>149 グローバルスコープと言うより全体が__declspec(dllexport)で 出力された関数です。
168 名前:デフォルトの名無しさん mailto:sage [2020/01/02(木) 23:46:28.42 ID:HVAsQwCl.net] >>162 VS使ってんでしょ? > while (getline(ifs, str)) このifsを右クリックして定義がどこか探しなはれ
169 名前:デフォルトの名無しさん [2020/01/03(金) 12:08:13.91 ID:lHIykz7y.net] >>162 ここまで頓珍漢なレスは久々に観た 釣りなら大したもんだ
170 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 13:55:16.44 ID:fIUwKVUy.net] 初心者なんてそんなもんだろ >>145 if/else文の中で宣言されたifsはブロック{}で囲まれてしまっているから、ブロックの外からアクセスできない。 だからgetlineに渡してるifsはどこか別の場所にあるifsを参照してしまっている。 std::fstream fs; //< 読み書き両用にするなら"fstream"にすること if (mode == "Read") { . fs.open("xxxx.txt", std::ios::in); . ques = text; } else if (mode == "Write") { . fs.open("xxxx.txt"); . ques = split(text, ":")[0]; } ... getline(fs, str)
171 名前:デフォルトの名無しさん mailto:sage [2020/01/03(金) 17:20:32.66 ID:f1l2rf84.net] >>165 おっしゃる通りです。お恥ずかしい。 for文とかにだけ当てはまると思っていました。 後はローカルかグローバル変数かぐらいしか。 ありがとうございました。
172 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 07:56:51.57 ID:L9bP3bPr.net] >>166 いえいえ
173 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 11:04:42 ID:5cG1OuZI.net] vector<vector<vector<char>>> data(10, vector<vector<char>>(3, vector<char>(3))); だと,、char[10][3][3]になると思うのですが [10]の部分だけ動的にするにはどうすればいいのでしょうか。
174 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 11:09:21 ID:tEaTJVpu.net] [3][3]を固定にしたいってことか?
175 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 11:09:38 ID:5cG1OuZI.net] そうです。
176 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 11:16:31.83 ID:qsayucr9.net] class/structの勉強をしましょう
177 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 11:22:22.12 ID:tEaTJVpu.net] >>168 vector<array<array<char, 3>, 3>> data(10);
178 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 11:23:40.31 ID:5cG1OuZI.net] 構造体もvectorに入れられるのですね。 ありがとうございます。
179 名前:デフォルトの名無しさん mailto:sage [2020/01/08(水) 21:49:44.02 ID:PRP72WQ5.net] ちなみに class と struct はデフォルトが public か private か、という違いしかない 事実上同じもの
180 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 00:07:44.02 ID:KXHiDU3s.net] >>173 いえいえ
181 名前:デフォルトの名無しさん mailto:sage [2020/01/09(Thu) 10:15:27 ID:LsvkYb1v.net] C++のclassとstructはデフォのアクセス指定以外全く同じものだとちゃんと教えない教材がちらほらあるのが悪い そもそもclassより先にstructをCの構造体の感覚で教えるやつは教える側がちゃんと理解してない可能性すらある
182 名前:デフォルトの名無しさん [2020/01/09(木) 10:55:03.06 ID:0RBXSUPh.net] そこまで言うなら struct の方をさっさと deprecated - obsoleted すれば良かったんよ 20年位前にやっとけば良かった
183 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 11:59:01.69 ID:+yE1fb2H.net] というかclassが要らん private: 一行書けばいいだけだろ まあ最近ではGoやRustによってstructが復権してるけど、 当時はオブジェクト指向の用語に対して変なコンプレックスがあったんだろうな
184 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 12:47:07.90 ID:zQlYINS8.net] >>178 そうそう | | 彡⌒ミ \ (´・ω・`)デフォルトのアクセス指定子を定義したことは,十中八九,間違いであった. (| |):::: (γ /::::::: し \::: \
185 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 12:52:15.14 ID:LsvkYb1v.net] 指定子書き忘れにデフォがprivateならコンパイルエラーでわかるがpublicならわからん デフォはprivateの方がいい
186 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 12:55:55.27 ID:zQlYINS8.net] 禁止がデフォで許可が明示な constも本当はそうなっていて欲しい ラムダ式の[=]だけデフォconstになっててmutableで外すんだけどね
187 名前:デフォルトの名無しさん [2020/01/09(木) 18:49:23.86 ID:vYl+3riX.net] 全部コンパイルオプションで対応できそうなのに っていうかRustいらなくならなくね
188 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 20:02:43.03 ID:dcOC3Udy.net] >>181 最適化禁止のvolatileがデフォはウザすぎる
189 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 20:46:00.27 ID:jeGBkGmG.net] volatileってC++20で死ぬんでしょ?
190 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 20:53:16.18 ID:dcOC3Udy.net] まじか SFRとかどうすんだよ
191 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 21:18:47.87 ID:VFRbhrWi.net] volatileの有用な機能のみを残し、効果が疑わしい、または壊れている機能を非推奨化する 完全に消える分けでは無いらしい 詳細は知らん
192 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 21:55:38.56 ID:SnSt17is.net] >>176 まじですか、C++のstructも構造体だと思っていたけど。 知らなかった。 プロパティだけならstructの中の変数とclassの中の変数 って、あまり変わらない気がするけど、classの方はメンバ とか言われる実質は関数を含むことができるじゃない。 あと、親から継承したりとか。 なんとなく同じものという感じがしない。
193 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 22:06:14.43 ID:LsvkYb1v.net] structもメンバ関数を持つし、継承もするし、classをstructが継承することもその逆もできる デフォがpublicかprivateかの違いだけで機能はclassと全く同じ
194 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 22:23:38.89 ID:SnSt17is.net] >>188 知らなかった。長い間,、Cの構造体と同じことしか できないと思ってた。
195 名前:デフォルトの名無しさん mailto:sage [2020/01/09(木) 23:18:29.42 ID:3XE25/Yj.net] なんかboostスレ死んでるからここで教えてください。 boost使ってクラサバ作ってて、クライアントが接続されるたびに、サーバ側で比較的重い処理があり、 処理止めたく無いからio_serviceに溜まったキューの数見てスレッドを動的に調整したい。 けど、自分の拙い検索能力ではio_serviceに溜まってるキューの数を調べる方法が無さそうなんですが、取得することは可能ですか? よろしくお願いします。
196 名前:デフォルトの名無しさん mailto:sage [2020/01/10(金) 08:52:59.23 ID:cqQYZnld.net] 許容されるスレッド数で常にフルスロットルじゃいかんのけ? 処理がないスレッドは勝手に止まってるし、なんならセマフォで動作数も調節もできるだろうし
197 名前:デフォルトの名無しさん mailto:sage [2020/01/10(金) 20:10:30.90 ID:gdjTauNe.net] スレッド増やしたところで本質的な解決にならん問題な気がする。
198 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 00:59:53 ID:NtF2wljx.net] キューの前にガバナー、調速機を付ければいい キューに入れた個数と出てきた個数をカウントすりゃいいんだろ スプールでも作ればいいんじゃないの
199 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 01:12:20 ID:mrkcLLQe.net] 質問ですがstd::function<T>型のオブジェクトにNULLって代入していいの?
200 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 01:15:06 ID:GiJYoHUo.net] >>194 大丈夫 nullptrの代入は何も関数を保持していない状態にする
201 名前:デフォルトの名無しさん mailto:sage [2020/01/11(土) 01:43:57 ID:mrkcLLQe.net] なるほど! ?クス、