- 1 名前:デフォルトの名無しさん mailto:sage [2018/03/31(土) 20:20:06.25 ID:o3PNwIlC0.net]
- 次スレを立てる時は本文の1行目に以下を追加して下さい。
!extend:on:vvvvv:1000:512 C++に関する質問やら話題やらはこちらへどうぞ。 ただし質問の前にはFAQに一通り目を通してください。 IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。 前スレ C++相談室 part134 mevius.5ch.net/test/read.cgi/tech/1516406742/ このスレもよろしくね。 【初心者歓迎】C/C++室 Ver.102【環境依存OK】 mevius.5ch.net/test/read.cgi/tech/1509780815/ ■長いソースを貼るときはここへ。■ codepad.org/ https://ideone.com/ [C++ FAQ] https://isocpp.org/wiki/faq/ www.bohyoh.com/CandCPP/FAQ/ (日本語) VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
- 152 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 01:00:18.78 ID:b/ktaKN+0.net]
- 参照オブジェクトの概念がよくわかってない
学び直せと言いたい
- 153 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 01:04:57.02 ID:VAOccv/70.net]
- >>148
インスタンスなんて受け取ってないぞ
- 154 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 01:09:03.26 ID:/OvgYAab0.net]
- >>150
>>142で「インスタンスを受け取り」と書いてあるから ポインタ(の参照)でだけどインスタンスを渡しているのだろう 何故受け取っているのかとかの説明は無理だが
- 155 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 01:19:33.61 ID:b/ktaKN+0.net]
- それにしてもbをnewするとかイミフ
何もしてないじゃんw
- 156 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 01:22:46.36 ID:b/ktaKN+0.net]
- 古いインスタンスを_bに格納して新しいインスタンスをbに返したいのか
新しいインスタンスを作成してbと_b両方に返したいのか どっちなんだよ
- 157 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 01:22:49.52 ID:/OvgYAab0.net]
- >>152
b を new するってのは >b = new B(); のことか?参照で返してるんだよ 何故返す必要があるのかはこれも答えられないが >>142に new して返そうと思っていますとあるからな
- 158 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 01:30:17.78 ID:b/ktaKN+0.net]
- _b=new B() は見当たるが
b=new B() ←こんな記述は見当たらないぞ 嘘もたいがいにしとけや
- 159 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 01:39:29.12 ID:b/ktaKN+0.net]
- >>142
コイツのソース見る限りbに対しては何もしてないでしょ
- 160 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 03:35:09.27 ID:mYZtkoVNd.net]
- すまんすまん
>>142 >B* b; >A* a = new A(b); を見落としていた インスタンスを渡すといっておいてインスタンスを渡していないとは思いもしなかったw >>147であってるんだろうね
- 161 名前:デフォルトの名無しさん [2018/04/15(日) 06:03:36.65 .net]
- >>142
> void A(B* &b) > { > _b = b; > _b = new B(); > } void A(B* &b) { B* new_b = new B(); b = new_b; _b = new_b; } こういうのは愚直に書けばええんや
- 162 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 08:25:34.99 ID:IUBKEb9a0.net]
- AのコンストラクタにBへのポインタのポインタだか参照だかを渡さなくても
Bへのポインタと関係ないAのコンストラクタ、と A内部のBメンバへのポインタを返すゲッタ、との 組み合わせにする方が素直でねぇか? class A { B* _b; public: A() {_b = new B();} B* ptr_b() const {return _b;} }; int main(void) { A* a = new A(); B* b = a->ptr_b(); return 0; } 別に確保した「Bを格納すべき領域へのポインタ」を受け取って、 Aの初期化時にBの配置newを行わせたい、という意図かもしれないけど、 元の質問から想像を広げすぎてるよね。
- 163 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 10:01:16.50 ID:6WpjLuna0.net]
- Aが_bをdeleteするために管理するだけのクラスだとしたらスマポ使えという話になる
- 164 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 10:57:43.04 ID:Yi/sDJN50.net]
- 前に書き込んだことあるけど
https://qiita.com/notenopg/items/40571e69986a58b888a0 どうじゃ
- 165 名前:142 mailto:sage [2018/04/15(日) 11:01:19.87 ID:GeT3puOg0.net]
- 舌足らずでもうしわけありませんでした・・・
クラスBのインスタンスをクラスAで処理していくためにコンストラクタでクラスBの インスタンスを参照受け取りする仕様にしました。 大半のケースではそのまま処理して終わり、なのですが まれに受け取ったクラスBのインスタンスをnewし直す必要がありまして その際受け取ったクラスAのメンバ変数 _b をnewしても受け取り元のインスタンスを newできないことに悩んでいました ただオブジェクト指向の観点から見るとあまり美しいプログラミングスタイルでは無いのかもしれませんね。 クラスBのインスタンスはクラスA内部で完全隔離処理するようにした方がいいのかもしれません
- 166 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 11:19:51.96 ID:6WpjLuna0.net]
- BをAしか使わないならAの中に隔離する
他でも使う必要があって、Aの外部でBの寿命を管理してるなら、AにrefreshB()みたいなBをnewし直した時に渡し直す関数を用意する でいいんじゃないの 本当にBをnewし直す(メモリ上再配置する)必要があるならだけど 実はB自体にreset()用意するだけで済む話のように見える
- 167 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 12:55:30.01 ID:eVQUY7wra.net]
- c++じゃポインタのこともインスタンスっていうのか
- 168 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 14:39:37.81 ID:rsq+XQj0M.net]
- >>164
2レス前も読めないのか
- 169 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 18:30:19.93 ID:51qZxk5sa.net]
- 理解不足を言い換えてミスしてない風にするのが流行ってるのかな
- 170 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 22:24:39.46 ID:vR7s+ZvT0.net]
- ミスって理解不足からくるじゃん
- 171 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 23:39:26.36 ID:Mp1WrgTGa.net]
- 質問あるのですが、
同一PC内の画面機能と処理機能のプロセス間通信はどうやるのが便利ですか? 画面更新速度は100ms周期くらいです。 共有メモリがいいと思ったんですが、ソケット推してる人がいてもやもや アクセス速度とかNICの通信量とか考えると共有メモリ一択な気がするんですが、どうなんでしょうか? パイプとマップドメモリはメリット無いので考えていません。
- 172 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 23:42:01.12 ID:sXJBpbWg0.net]
- 何を重視するか次第
- 173 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 23:43:30.47 ID:qZPDSYA20.net]
- 共有メモリ=マップドファイルのファイル無しやで
- 174 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 23:43:31.62 ID:51qZxk5sa.net]
- そもそも別にする理由は何?
どんなものを想定してるの? プロセスは常に1対1なの
- 175 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 23:44:26.87 ID:sXJBpbWg0.net]
- OSは?
- 176 名前:デフォルトの名無しさん mailto:sage [2018/04/15(日) 23:47:06.30 ID:51qZxk5sa.net]
- 同一PC内なのにソケットとNICの通信量って何か関係あるの?
- 177 名前:はちみつ餃子 mailto:sage [2018/04/15(日) 23:53:07.49 ID:aQ0USPFo0.net]
- >>168
ソケットって、その場合はUNIXドメインソケットのことだろ。 NIC は関係ない。 プロセス間通信としてはほどほどに速度もあって、ほどほどに疎結合なので十分に選択肢の範囲内だと思う。
- 178 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 00:28:23.74 ID:TXxoP4/a0.net]
- unix domain ソケットがお手軽で便利だけど
時代に合わせてパイプか tcp かなあ Windows でしか使わないならならcom使うのも簡便
- 179 名前:デフォルトの名無しさん [2018/04/16(月) 01:39:01.50 .net]
- 共有メモリだとリングバッファとか排他とか自分で作り込まなきゃいけんやろ
ソケットならそのへん考えなくてええやん
- 180 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 02:21:40.05 ID:kGNRvKds0.net]
- windowsはファイルマッピングオブジェクトでしょ
パイプでさえSYNCHRONIZE特権指定できないゴミなんだから
- 181 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 03:12:35.45 ID:HsbFINqV0.net]
- 標準入出力最強説
- 182 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 06:43:39.39 ID:kK8liqj6M.net]
- unix domain socket なんて使ったことないな
名前空間としてファイルの指定がいるし将来違うマシン間で動作させる時に変更量が多いしtcp/udpに比べてデメリット多くね?
- 183 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 07:06:03.32 ID:irvwqMpDa.net]
- >>173,174
共有メモリは例えば/dev/shmのRAM領域にあるメモリマップですよね 同一PC内のソケットのボーレートってほぼクロック数なんですか? 同一PC内の通信であったとしてもネットワークドライバの実装するプロトコルスタックを経由してしまうので、 その分のオーバーヘッドの分だけ速度が落ちる、という解釈ですが
- 184 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 07:17:01.48 ID:irvwqMpDa.net]
- iperfとかで同一PC内で速度測ったらどれくらいいきます?
(1Gbpsな気が)
- 185 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 08:09:11.43 ID:TXxoP4/a0.net]
- >>179
ドロップしないから楽なんだよ デメリットは仰る通り
- 186 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 08:09:52.14 ID:TXxoP4/a0.net]
- >>180
あなた知識が色々おかしいので何も考えずに教えられたとおりにした方が良いですよ
- 187 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 12:07:30.90 ID:1SlhlQTu0.net]
- 昨日の安全確保支援士の試験にC++が出ていたが、メンバ変数にm_が付いていた。
さすがにポインタのpなどは付いていないが、ちょっと意外だった。
- 188 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 18:56:27.96 ID:aeexu7jXa.net]
- >>183
同一PCのTCP通信はどういう経路通るの?
- 189 名前:デフォルトの名無しさん mailto:sage [2018/04/16(月) 20:00:43.80 ID:Iff3OzVTM.net]
- クライアント→OS→サーバかその逆
- 190 名前:デフォルトの名無しさん mailto:sage [2018/04/17(火) 17:50:44.77 ID:YRsoLN600.net]
- 未だにシステムハンガリアンなやつみたいに変なのとも
うまく付き合うのがC++使いのスキルの1つだかんね
- 191 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 00:38:34.88 ID:1Mo3YyI90.net]
- ↑ボゾビット
- 192 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 02:18:47.96 ID:whM0Cl8U0.net]
- Windowsのネットワーク関係APIはkernel内に実装されていない
後は判るな?
- 193 名前:デフォルトの名無しさん mailto:sage [2018/04/18(水) 07:02:39.34 ID:bX/oR0u10.net]
- ネットワーク関係に限らずAPIはすべてサブシステムだね
- 194 名前:デフォルトの名無しさん mailto:sage [2018/04/20(金) 23:48:17.59 ID:MBksKo4b0.net]
- class Sample{
private: const double val{0.0} public: void set(double v){ static_cast<double>(this->val) = v; } }; VS2015での話なのですが、こんな感じのコードを先日見かけまして static_castでメンバ変数のconst外しができているように見えるのですけど、この動作は合法なものなのでしょうか? 試しにwandboxのclang 7.0で試して見た所当然のようにコンパイルエラーになったのですが・・・
- 195 名前:はちみつ餃子 mailto:sage [2018/04/21(土) 00:23:55.79 ID:7j/Wt31X0.net]
- >>191
const を外すのは const_cast じゃなきゃ出来ないことになっている。 だいぶん昔からそう。 でなきゃわざわざ分けている甲斐がない。
- 196 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 00:37:31.88 ID:WobodGQW0.net]
- const char *a = "hoge";
const char *b = "hoge"; この2つのポインタがa == bになることは保障されていますか?
- 197 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 00:42:18.95 ID:F9SE4HSu0.net]
- ない
- 198 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 00:47:40.36 ID:5uFute1E0.net]
- >>192
やっぱりそうですよね、何か特別な動作かとも思ったのですがVC++のバグか仕様なんですね・・・
- 199 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 06:06:21.46 ID:pETeS31u0.net]
- >>191
VS2017では警告されるぞ(おそらくVS2015でも) cl 191.cpp /c /W4 Microsoft(R) C/C++ Optimizing Compiler Version 19.13.26129 for x86 Copyright (C) Microsoft Corporation. All rights reserved. 191.cpp 191.cpp(7): warning C4213: 非標準の拡張機能が使用されています: 左辺値でキャストしました。 後はわかるな?
- 200 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 06:22:18.02 ID:wsxrLs1Z0.net]
- ポインタや参照のconst外しは合法だが
なぜ合法なのか(合法にせざるを得なかったのか)というとmemory aliasing状況下での最適化の限界に関する ラクダ本ばりに長い議論を要する 悪寒、 プログラミング言語C++か何かでは古いライブラリのconst付け忘れにコード修正無しで対応できるYO!みたいな簡単な説明しかないが しかし左辺値のキャストというのはどうなの?
- 201 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 08:02:29.99 ID:POwjcYl50.net]
- static_cast<double>(this->val)自体は合法でしょ
this->valと同じ値のdouble一時オブジェクトができるだけ おかしいのはそれに代入してること
- 202 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 11:34:19.85 ID:pETeS31u0.net]
- int x;
(float&)x = 1;
- 203 名前:デフォルトの名無しさん mailto:sage [2018/04/21(土) 11:34:55.76 ID:pETeS31u0.net]
- 途中で書き込まれてしまった
int x; (float&)x = 1; //well-formed (float )x = 1; //ill-formed
- 204 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 17:24:24.80 ID:RLzEBpTGa.net]
- std:stringを引数や戻り値で使う場合、値渡しでも大丈夫ですか?
- 205 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 17:29:11.38 ID:xCJicIF50.net]
- 大丈夫
- 206 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 18:29:08.58 ID:i5tL4+9s0.net]
- stringは内部に参照カウンタを保持した共有リファレンサを持っているから&&使用せずに直で渡しても特に副作用もなく何の問題もないよ
- 207 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 18:53:47.99 ID:cFbiqY2T0.net]
- 今どきのstringはヒープじゃなくスタックを使ったりもするね
鬼のように最適化されている
- 208 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 19:26:19.72 ID:xCJicIF50.net]
- >>203
おじいちゃんそれ大昔の話ですよ
- 209 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 19:52:27.54 ID:i5tL4+9s0.net]
- >>205
貴様は過去を否定するのか? 温故知新という言葉を知らないのか? 青二才
- 210 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 20:00:35.45 ID:pGMCB93ha.net]
- ありがとうございます
勝手にデストラクタでdeleteされるとか色々考えていましたがそこは先人たちが考慮して作られているのですね
- 211 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 20:19:16.41 ID:5qvptAAaM.net]
- いやいや老害に騙されちゃだめですよ。
参照カウントなstringは大昔に禁止されているので、ちゃんと参照や右辺値渡等を使いましょう
- 212 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 20:23:51.32 ID:M8qmSLCN0.net]
- >>208
何言ってんだおまえ 頭悪すぎるにもほどがあるだろ
- 213 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 20:58:25.32 ID:ltJDDxzZ0.net]
- COWなstringは効率が悪くてマルチスレッドとの相性が最悪なのでとっくの昔に打ち捨てられました
規格のCOW実装許容するための記述はC++11でバッサリ捨てられました 今はCOWは規格違反です
- 214 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:39:50.50 ID:M8qmSLCN0.net]
- なん…だと!?
- 215 名前:デフォルトの名無しさん [2018/04/22(日) 21:51:37.63 .net]
- おじいちゃんw
- 216 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 21:54:34.58 ID:w7SgV4Bf0.net]
- 値渡しや戻り値で戻せることと、
std::string内部での(ヒープ)メモリ管理の詳細は関係なくね?? 引数や戻り値としてスタックに構造体を積めるようになった時点で値渡しや戻り値で戻せることとはほぼ自明 (よほど変なコピコンを定義してコピーをわざと不首尾に終わらせない限りそれはできる
- 217 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 23:24:42.33 ID:xCJicIF50.net]
- >>213
まあそうだけれど無駄なコピーはなるべく避けましょうということで
- 218 名前:デフォルトの名無しさん mailto:sage [2018/04/22(日) 23:50:24.01 ID:usC+gOtq0.net]
- 今時のコンパイラは、そこらの人間よりよっぽど高度な最適化をするから、素直で単純なコードを書くと速くなる。
効率化するつもりで余計なことをすると、コンパイラの最適化を妨げて、かえって効率が落ちたりする。 本当に重要な部分は実測しながら試行錯誤、それ以外はできるだけ素直なコードを書く、ってあたりが基本。
- 219 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 01:28:01.46 ID:C1tu+nEe0.net]
- stringを値渡しせずにconst参照等々で渡すことはc++の基本なので、素直で単純なコードの部類に入ると思うが。
- 220 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 01:32:17.81 ID:Lxhtz3Yj0.net]
- って、あたりが基本(`・ω・´)キリッ
道化かw
- 221 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 01:37:49.36 ID:voecBiJS0.net]
- 先生!OpenMPへの展開も自動でやってくれるんですか?
- 222 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 01:46:26.60 ID:Lxhtz3Yj0.net]
- 値渡しを素直なコードとか言う人って他人の書いたコード読まないんだろうな
宿題以外で何か書いたことあるのか
- 223 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 02:04:07.25 ID:SgzxVTg+0.net]
- const type &
- 224 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 04:33:47.47 ID:WjBjSqCj0.net]
- const参照渡しが基本だったのって C++11 以前の世界の話だよね…
幸い、近頃はそんなコードをあまり読まずに済んでるけど。 余計なことをしない、ってのが大事なんだよ。 参照でなきゃいけない理由がなければ、参照を使うべきじゃないんだ。
- 225 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 06:33:47.30 ID:awXEdMZR0.net]
- どこの世界に生きてる人?
- 226 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 07:20:47.54 ID:voecBiJS0.net]
- どんな作品を作っているのかなぁ?
- 227 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 08:32:33.12 ID:EDVnvY5w0.net]
- 初心者です。
今書いてるプログラムをコンパイルして実行すると、エラーが出たり出なかったり謎の挙動を起こします 最初はエラーが出て、その後数回、コードを一切変えずコンパイルしなおして実行すると急にエラーが出ず上手く行ったりします。 これって何が原因なのでしょうか… こういう事ってよくあるのですか?
- 228 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 08:34:14.27 ID:Lxhtz3Yj0.net]
- キチガイ発言はツイッターかブログでどうぞ
- 229 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 08:35:11.51 ID:Lxhtz3Yj0.net]
- >>224
よくあることです デバッグしましょう
- 230 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 10:17:10.24 ID:Hh6TN2Aq0.net]
- >>224
そのエラーとやら、もしかして警告か? エラーは直すまで何度コンパイルしても絶対に通らない 警告はコンパイルが完了しオブジェクトファイルができる そのコンパイルとやら、もしかしてビルドか? それともmakeか? ビルドやmakeはオブジェクトファイルとソースファイルの日付を比較して ソースファイルのほうが古いとコンパイルを省く だから警告が出てからもう一度ビルドしても同じ警告は出ない おそらく、こういうことだと見受ける
- 231 名前:デフォルトの名無しさん [2018/04/23(月) 10:24:23.61 ID:48PNhEnX0.net]
- 変数を初期化してないんだろ
- 232 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 12:27:19.92 ID:8odlZZv8M.net]
- >>227
日本語読めないのかよ... > 実行すると、エラーが出たり出なかったり謎の挙動を起こします
- 233 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 13:44:26.09 ID:Hh6TN2Aq0.net]
- >>229
日本語でしゃべってくれ
- 234 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 13:58:46.97 ID:1JtTwXqR0.net]
- 実行してるということはコンパイルは通ってるということだと思う
つまりコンパイルの問題ではなく、コンパイルエラーではないだろうという推測
- 235 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 13:58:59.41 ID:Lxhtz3Yj0.net]
- >>230
「実行すると」 ビルド時のコンパイラなどからのエラーではなく、 プログラムを実行したときの挙動についての質問のようですよ
- 236 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 14:45:37.00 ID:Hh6TN2Aq0.net]
- 初心者つってるから
どこまでがコンパイルで どこからが実行なのかの 区別からあやしいと見ている 実行時エラーにしても stopダイアログなのか 結果がおかしいのか あの質問では言ってない
- 237 名前:デフォルトの名無しさん [2018/04/23(月) 14:53:14.79 ID:48PNhEnX0.net]
- すげーみっともない奴だな
- 238 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 14:56:19.11 ID:Hh6TN2Aq0.net]
- 嘘は言っていない
- 239 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 15:52:04.86 ID:mDBTWEJod.net]
- 言論の自由を行使し過ぎw
- 240 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 16:27:46.06 ID:So2OBlKcd.net]
- コンパイルして(リンクを)実行すると
だったりして
- 241 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 17:14:12.91 ID:VArh9qU+0.net]
- 初心者がいちいちobjからリンクしてるのか
- 242 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 17:15:44.11 ID:Hh6TN2Aq0.net]
- しつけえな
ここはプログラム技術板 技術的な内容が皆無のレスでひっ絡んでくるなカス
- 243 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 17:30:01.10 ID:orIXCmni0.net]
- >>224
何を実行するのか目的語をはっきりさせろ プロ意識が欠けている
- 244 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 17:32:39.31 ID:orIXCmni0.net]
- あ、初心者だったのか…
- 245 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 17:34:51.03 ID:vGDXyrLu0.net]
- >>224
ソースを公開することは可能ですか? https://ideone.com
- 246 名前:デフォルトの名無しさん [2018/04/23(月) 21:12:48.39 ID:7US5BnQm0.net]
- pthread を使ってループ処理をマルチスレッド化したのですが、シングルスレッドと同じスピードしか出ませんでした。
pthread でこういう事やっても無駄なんでしょうか?
- 247 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 22:04:36.67 ID:C1tu+nEe0.net]
- 流石に情報が少なすぎて
このままだと下手糞としか言いようがない。 ソースコード貼り付けれ
- 248 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 22:09:13.69 ID:oFP/MhUD0.net]
- シングルコアのPCかも
- 249 名前:デフォルトの名無しさん mailto:sage [2018/04/23(月) 22:17:20.63 ID:1ikED9ud0.net]
- pthread使うとひとつの処理が倍速にでもなると思ったのだろうか
- 250 名前:片山博文MZ mailto:sage [2018/04/23(月) 22:21:51.35 ID:ATy8dQXfd.net]
- 不完全な質問はスルーすっと
- 251 名前:デフォルトの名無しさん [2018/04/23(月) 22:42:58.69 ID:7US5BnQm0.net]
- 舌足らずですみません。コードはこんな感じです。
threadFunctionは単なる加算値、joinFunctionは集計処理です。 コアは物理2論理4です。 template< class ArgType > void Reduce( std::vector< ArgType >& threadArgs, void* (*threadFunction)(void*), void (*joinFunction)(std::vector< ArgType >&) ) { const size_t threadCount = threadArgs.size(); threads.resize( threadCount ); std::vector< void* > voidPtrArgs = CastArgsToVoidPtrs( threadArgs ); for ( int threadIndex = 0; threadIndex < threadCount; ++threadIndex ) { sched_param schedParam; schedParam.sched_priority = sched_get_priority_max( SCHED_FIFO ); pthread_attr_t threadAttribute; pthread_attr_init( & threadAttribute ); pthread_attr_setschedpolicy( & threadAttribute, schedPolicy ); pthread_attr_setinheritsched( & threadAttribute, PTHREAD_EXPLICIT_SCHED ); pthread_t& thread = threads[ threadIndex ]; pthread_setschedparam( thread, schedPolicy, & schedParam ); pthread_create( & thread, & threadAttribute, threadFunction, voidPtrArgs[ threadIndex ] ); } for ( int threadIndex = 0; threadIndex < threadCount; ++threadIndex ) { pthread_t thread = threads[ threadIndex ]; pthread_join( thread, NULL ); } joinFunction( threadArgs ); }
- 252 名前:デフォルトの名無しさん [2018/04/23(月) 22:45:44.01 ID:reOPAGg30.net]
- >>243
この世界では、何かやって思い描いてたようにならなかった場合 まず自分の能力不足を疑うのが鉄則
|

|