C++に関する質問やら話題やらはこちらへどうぞ。
ただし質問の前にはFAQに一通り目を通してください。
IDE (VC++など)などの使い方の質問はその開発環境のスレにお願いします。
前スレ
C++相談室 part150
https://mevius.5ch.net/test/read.cgi/tech/1584975873/
このスレもよろしくね。
【初心者歓迎】C/C++室 Ver.105【環境依存OK】
http://mevius.5ch.net/test/read.cgi/tech/1556142878/
■長いソースを貼るときはここへ。■
http://codepad.org/
https://ideone.com/
[C++ FAQ]
https://isocpp.org/wiki/faq/
http://www.bohyoh.com/CandCPP/FAQ/ (日本語)
テンプレここまで
C++相談室 part151
■ このスレッドは過去ログ倉庫に格納されています
2020/05/14(木) 11:53:25.59ID:ZPCfyTux
605デフォルトの名無しさん
2020/06/25(木) 20:02:21.68ID:aCPUEpAO デストラクタがインラインなら>>595
606デフォルトの名無しさん
2020/06/25(木) 20:05:18.94ID:g2od3l7G バイナリ互換想定してないなら、inlineしない方が稀じゃね
全部外部定義だと、高速化の妨げになるじゃないか
世の中のc++用ライブラリを見てみれば良いさ
inlineが無いどころかheader onlyが幅を利かせている
全部外部定義だと、高速化の妨げになるじゃないか
世の中のc++用ライブラリを見てみれば良いさ
inlineが無いどころかheader onlyが幅を利かせている
607デフォルトの名無しさん
2020/06/25(木) 20:08:52.95ID:g2od3l7G alignmentサイズの隙間に入れたところで、コピーの時にコピーされるかどうかも不明
と言うか、単体だとまずされない
まあコピーも外部定義されていれば置き換え可能だけど
と言うか、単体だとまずされない
まあコピーも外部定義されていれば置き換え可能だけど
608デフォルトの名無しさん
2020/06/25(木) 20:10:03.10ID:L+/QiPNH >>599
そもそもバイナリ互換を考慮していないライブラリを今さら何とかしようとするウンコな発想ありきだからな。
まともなライブラリ実装者なら
「そんなクソとっとと便所に流してマトモなもの作り直せ」
としか言わんわ。
そもそもバイナリ互換を考慮していないライブラリを今さら何とかしようとするウンコな発想ありきだからな。
まともなライブラリ実装者なら
「そんなクソとっとと便所に流してマトモなもの作り直せ」
としか言わんわ。
609デフォルトの名無しさん
2020/06/25(木) 20:11:42.55ID:Y+MR3z5H >>606
テンプレートだろそれ
テンプレートだろそれ
610デフォルトの名無しさん
2020/06/25(木) 20:13:29.88ID:Y+MR3z5H >>607
コピーもインライン前提か?
コピーもインライン前提か?
611デフォルトの名無しさん
2020/06/25(木) 20:14:36.46ID:g2od3l7G inlineじゃないtemplateのヘッダオンリーでも、バイナリ互換保つの無理だよね
例えinline化されてなくても、各obj内で実体化されたtemplate関数が同一じゃないと何が起こっても文句言えない
例えinline化されてなくても、各obj内で実体化されたtemplate関数が同一じゃないと何が起こっても文句言えない
612デフォルトの名無しさん
2020/06/25(木) 20:15:41.12ID:g2od3l7G 明示的なinlineもだけど、定義せずコンパイラに任せた場合デフォルトで出来るものはinline扱いになる
613デフォルトの名無しさん
2020/06/25(木) 20:16:21.51ID:Y+MR3z5H なんでobj?
ライブラリっていってるんだからlibだろ
ライブラリっていってるんだからlibだろ
614デフォルトの名無しさん
2020/06/25(木) 20:18:38.89ID:g2od3l7G libはobjの集合だろうに
615デフォルトの名無しさん
2020/06/25(木) 20:19:42.46ID:Y+MR3z5H インライン混じりのライブラリ
ならメンバ変数を増やすのを心配する以前だろ
問題が変わってる
ならメンバ変数を増やすのを心配する以前だろ
問題が変わってる
616デフォルトの名無しさん
2020/06/25(木) 20:27:59.07ID:Y+MR3z5H >>611
だからヘッダは基本変更しない
だからヘッダは基本変更しない
617デフォルトの名無しさん
2020/06/25(木) 20:29:04.78ID:iE0yhaVV どうしても必要なことなら、
ライブラリの中にスタティックな連想配列置いて、thisアドレスをキーにして追加したいメンバ変数引くようにしたら?
トリッキーでないし確実に動く
ライブラリの中にスタティックな連想配列置いて、thisアドレスをキーにして追加したいメンバ変数引くようにしたら?
トリッキーでないし確実に動く
618デフォルトの名無しさん
2020/06/25(木) 20:29:54.44ID:g2od3l7G コピーされなきゃ良いよね
619デフォルトの名無しさん
2020/06/25(木) 20:30:23.57ID:g2od3l7G vectorで持たれてても再配置されたら困るし
620デフォルトの名無しさん
2020/06/25(木) 20:32:18.93ID:Y+MR3z5H621デフォルトの名無しさん
2020/06/25(木) 20:34:29.24ID:Y+MR3z5H 何の互換性を保ちたいのかわからなくなってきた
622デフォルトの名無しさん
2020/06/25(木) 20:42:06.05ID:N8mY4JDD 同感
623デフォルトの名無しさん
2020/06/25(木) 21:13:19.28ID:Y+MR3z5H ライブラリを使う(一部の)コードはコンパイル済みでリコンパイル出来ない
コンパイル済みのコード内で使ってるクラスのメンバ変数を追加したい
当然
クラスのサイズは変えられないし
コンパイル済みのコード内の(インライン展開されてる)関数も変えられない
どの関数がコンパイル済みコード内にあって
どの関数がライブラリ内にあるかは不明
コンパイル済みのコード内で使ってるクラスのメンバ変数を追加したい
当然
クラスのサイズは変えられないし
コンパイル済みのコード内の(インライン展開されてる)関数も変えられない
どの関数がコンパイル済みコード内にあって
どの関数がライブラリ内にあるかは不明
624デフォルトの名無しさん
2020/06/25(木) 21:14:06.17ID:Y+MR3z5H こんな感じ?
625デフォルトの名無しさん
2020/06/25(木) 21:25:58.94ID:GV91Na/E ほとんど読んでないけどID:aCPUEpAOとID:Y+MR3z5Hがド素人なのはわかった
626デフォルトの名無しさん
2020/06/25(木) 21:27:27.39ID:Y+MR3z5H はいはいwww
627デフォルトの名無しさん
2020/06/25(木) 21:32:36.99ID:GV91Na/E ヘッダの変更無しにどうやって新しい機能追加すんだよ
628デフォルトの名無しさん
2020/06/25(木) 21:39:56.91ID:Y+MR3z5H 機能を追加したいなんて言ってたか?
629デフォルトの名無しさん
2020/06/25(木) 21:40:05.85ID:GV91Na/E630デフォルトの名無しさん
2020/06/25(木) 21:46:21.80ID:Y+MR3z5H なにそのド素人発言
631デフォルトの名無しさん
2020/06/25(木) 21:47:56.11ID:GV91Na/E >>610,613,615
632デフォルトの名無しさん
2020/06/25(木) 21:49:41.84ID:GV91Na/E インスタンスで扱ってるなら暗黙定義された関数の動作が変わる可能性くらいすぐ気づけやド素人が
633デフォルトの名無しさん
2020/06/25(木) 21:58:47.71ID:W+LR7rOf ポインタで扱うとインライン関数がリコンパイル無しで変えられるって?
634デフォルトの名無しさん
2020/06/25(木) 22:01:17.65ID:W+LR7rOf ライブラリなんだから
メンバ関数は全てライブラリ側で実装するだろ普通
テンプレートとか別途リンクが不要なことが売りなライブラリならともかく
何のためのライブラリだか
メンバ関数は全てライブラリ側で実装するだろ普通
テンプレートとか別途リンクが不要なことが売りなライブラリならともかく
何のためのライブラリだか
636デフォルトの名無しさん
2020/06/25(木) 22:06:38.78ID:Q7o8gz5q てかこの要件だと>>617ですでに答え出てる気がする
637デフォルトの名無しさん
2020/06/25(木) 22:06:48.48ID:W+LR7rOf 案を出せない人間が何を言っても負け犬の遠吠え
638デフォルトの名無しさん
2020/06/25(木) 22:09:27.67ID:W+LR7rOf639デフォルトの名無しさん
2020/06/25(木) 22:11:36.08ID:W+LR7rOf640デフォルトの名無しさん
2020/06/25(木) 22:14:20.52ID:Q7o8gz5q641デフォルトの名無しさん
2020/06/25(木) 22:15:15.45ID:Q7o8gz5q642デフォルトの名無しさん
2020/06/25(木) 22:16:59.09ID:W+LR7rOf 外部から直接アクセスしない変数を置き換えるに決まってるたろ
連想配列だと
初期化順とかスレッド安全とかパフォーマンスとか
色々と心配だねえ
連想配列だと
初期化順とかスレッド安全とかパフォーマンスとか
色々と心配だねえ
643デフォルトの名無しさん
2020/06/25(木) 22:20:39.99ID:lze6mCYp644デフォルトの名無しさん
2020/06/25(木) 22:20:56.12ID:W+LR7rOf645デフォルトの名無しさん
2020/06/25(木) 22:26:37.67ID:Q7o8gz5q646デフォルトの名無しさん
2020/06/25(木) 22:26:45.54ID:W+LR7rOf647デフォルトの名無しさん
2020/06/25(木) 22:29:26.54ID:Q7o8gz5q 何言ってんだこいつ
648デフォルトの名無しさん
2020/06/25(木) 22:29:51.27ID:W+LR7rOf コンストラクタはインラインでも>>572で問題ないね
649デフォルトの名無しさん
2020/06/25(木) 22:35:32.05ID:W+LR7rOf650デフォルトの名無しさん
2020/06/25(木) 22:36:49.66ID:W+LR7rOf >>643じゃなかった
連想配列案
連想配列案
651デフォルトの名無しさん
2020/06/25(木) 22:47:52.28ID:Q7o8gz5q インラインじゃないならって、普通コンパイルオプションやnoinlineで指定してない限り、
実装が見えているメンバ関数は全てインライン展開はされうるんだぞ
そんな厳しい前提がOKなら>>645で言ったdeleteの問題だって対処できる
実装が見えているメンバ関数は全てインライン展開はされうるんだぞ
そんな厳しい前提がOKなら>>645で言ったdeleteの問題だって対処できる
652デフォルトの名無しさん
2020/06/25(木) 22:50:51.97ID:W+LR7rOf653デフォルトの名無しさん
2020/06/25(木) 22:54:30.29ID:W+LR7rOf >>651
ヘッダにない関数はインラインにしようがない
ヘッダにない関数はインラインにしようがない
654デフォルトの名無しさん
2020/06/25(木) 22:59:14.54ID:W+LR7rOf655デフォルトの名無しさん
2020/06/25(木) 23:01:53.27ID:W+LR7rOf デストラクタ問題に対応出来るのは今のところ>>595だけ
656デフォルトの名無しさん
2020/06/25(木) 23:05:32.49ID:Q7o8gz5q657デフォルトの名無しさん
2020/06/25(木) 23:06:38.16ID:Q7o8gz5q658デフォルトの名無しさん
2020/06/25(木) 23:11:48.74ID:W+LR7rOf659デフォルトの名無しさん
2020/06/25(木) 23:23:27.92ID:W+LR7rOf コンテナやスマポなど、コピーやデストラクタで処理される物の中身を少し大きくするとか
close()みたいな最後に必ず呼ばれる関数があればそこに入れ込むとか
中身がわかればもっと別の案も出るかも
close()みたいな最後に必ず呼ばれる関数があればそこに入れ込むとか
中身がわかればもっと別の案も出るかも
660デフォルトの名無しさん
2020/06/25(木) 23:30:07.30ID:W+LR7rOf >>656
速度が必要と書いてなければ速度無視が前提って...
なかなか衝撃発言ですねえ
C++なんだから組み込みのチープ環境かもしれないし
リアルタイム処理かもしれないし
もしかしたらISR内部かも
(ISRならnewも問題になるか)
速度がどうでもいい用途でいまだにC++を使うって
どんな業界かな?
速度が必要と書いてなければ速度無視が前提って...
なかなか衝撃発言ですねえ
C++なんだから組み込みのチープ環境かもしれないし
リアルタイム処理かもしれないし
もしかしたらISR内部かも
(ISRならnewも問題になるか)
速度がどうでもいい用途でいまだにC++を使うって
どんな業界かな?
661デフォルトの名無しさん
2020/06/25(木) 23:34:58.25ID:Q7o8gz5q ほんとにド素人だな・・・呆れた
662デフォルトの名無しさん
2020/06/25(木) 23:41:46.09ID:W+LR7rOf 負け宣言?
雑魚が
雑魚が
664デフォルトの名無しさん
2020/06/26(金) 07:52:12.45ID:UtOMuHDg 不変のアブストラクトクラスを作っておいて
実装はそこの派生クラスでやり
使用者はポインタで使う
実装はそこの派生クラスでやり
使用者はポインタで使う
666デフォルトの名無しさん
2020/06/26(金) 20:05:18.50ID:jgcbTaF5 糞コテ集合
667デフォルトの名無しさん
2020/06/26(金) 22:39:47.73ID:2sQMfeSo あと蟻人間とかいうやつが揃えばジャックポット
668デフォルトの名無しさん
2020/06/26(金) 22:59:40.41ID:ReyCZ0Ra よーし、みんな呼んじゃうゾ
void君、rubyガイジ、jquery房ーっ
void君、rubyガイジ、jquery房ーっ
669デフォルトの名無しさん
2020/06/27(土) 00:11:14.27ID:rOaH6R8n 蟻ははちみつが大好き。
ハチとアリは同属。
ハチとアリは同属。
670デフォルトの名無しさん
2020/06/27(土) 03:40:34.85ID:W+OG+j+5 ∩___∩ |
| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | J
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
671デフォルトの名無しさん
2020/06/27(土) 03:55:34.00ID:aqzZKmXR 心底どうでもいい
672デフォルトの名無しさん
2020/06/27(土) 10:40:14.09ID:rOaH6R8n 片山右京
673デフォルトの名無しさん
2020/06/27(土) 13:08:47.90ID:5dDNakqG 杉下右京
674デフォルトの名無しさん
2020/06/27(土) 14:16:45.56ID:rOaH6R8n 博文
675デフォルトの名無しさん
2020/06/27(土) 22:55:32.89ID:XmSaDv1W 今時のmodern c++で、マルチスレッドやるにはどうすればいいでしょうか。とりあえず今はC++17でコンパイルしてますが
1.c++20のコルーチンとコールチンライブラリを使う
2.固定スレッド数のスレッドプールなら簡単に実装できるので自分で実装、もしくは素敵なライブラリがある?
3.std::thread,std::asyncでいいや
1.c++20のコルーチンとコールチンライブラリを使う
2.固定スレッド数のスレッドプールなら簡単に実装できるので自分で実装、もしくは素敵なライブラリがある?
3.std::thread,std::asyncでいいや
677デフォルトの名無しさん
2020/06/27(土) 23:00:22.36ID:XmSaDv1W とりあえず、MSVCを使ってます
1は時期尚早?
2はMSVCだとTask Parallel Libraryがあるけど、プライオリティキューを使いたいとなるとやっぱ自前?
3はね
皆さんはどんな感じでしょうか
1は時期尚早?
2はMSVCだとTask Parallel Libraryがあるけど、プライオリティキューを使いたいとなるとやっぱ自前?
3はね
皆さんはどんな感じでしょうか
678デフォルトの名無しさん
2020/06/27(土) 23:06:40.51ID:TsX0h7IG マルチスレッドやる
がわからん
何をしたいの?
がわからん
何をしたいの?
679デフォルトの名無しさん
2020/06/27(土) 23:10:16.30ID:XmSaDv1W タスクの実行を(優先順位付きで)スケジュールしたり、キャンセルしたりしたいです
非同期処理?
なんてイエバいいのだろう
非同期処理?
なんてイエバいいのだろう
680デフォルトの名無しさん
2020/06/27(土) 23:12:59.91ID:TsX0h7IG 環境は?
681デフォルトの名無しさん
2020/06/27(土) 23:14:55.69ID:XmSaDv1W MSVCのWindowsアプリです
682デフォルトの名無しさん
2020/06/27(土) 23:24:28.13ID:TsX0h7IG MFC
Windows API
std::thread
どれでも出来るけど
求めるものは?
性能?作りやすさ?移植性?
Windows API
std::thread
どれでも出来るけど
求めるものは?
性能?作りやすさ?移植性?
683デフォルトの名無しさん
2020/06/27(土) 23:26:07.41ID:XmSaDv1W まぁ、windowsにはwin32でthread pool apiがあったり、ATLでCThreadPoolクラスみたいのがあるっぽいんですが、昔より今時の方法で..
性能はあんま気にしてません
作りやすさですね
性能はあんま気にしてません
作りやすさですね
684デフォルトの名無しさん
2020/06/27(土) 23:26:45.37ID:TsX0h7IG 普通に自作すれば?
仕様を好み通りに出来る
仕様を好み通りに出来る
685デフォルトの名無しさん
2020/06/27(土) 23:29:23.19ID:XmSaDv1W 性能はあんま気にしてませんが、テスト的にstd::threadで今は実装してますが、セマフォなりで全く制御してないのでCPU使用率がはねあがって、セマフォで制御するくらいならスレッドプールくらいは導入したいなと
686デフォルトの名無しさん
2020/06/27(土) 23:35:09.74ID:XmSaDv1W687デフォルトの名無しさん
2020/06/27(土) 23:51:55.88ID:IY07Q1dO msvcならasync使えばthread pool使われてたような
async|deferredでは問題ないけど、asyncのみだと仕様的にアウトっぽいから将来的に修正されるかもしれんが
async|deferredでは問題ないけど、asyncのみだと仕様的にアウトっぽいから将来的に修正されるかもしれんが
688デフォルトの名無しさん
2020/06/27(土) 23:55:27.13ID:TsX0h7IG プライオリティキュー
自体を既に使ってるなら
待つ仕組みだけ追加すれば良いのでは?
自体を既に使ってるなら
待つ仕組みだけ追加すれば良いのでは?
689デフォルトの名無しさん
2020/06/27(土) 23:58:18.31ID:TsX0h7IG while (1){
イベント待ち
イベントクリア
キューから取得
処理
}
----
キューに追加
イベントセット
イベント待ち
イベントクリア
キューから取得
処理
}
----
キューに追加
イベントセット
690デフォルトの名無しさん
2020/06/28(日) 00:14:46.55ID:En8ZMxKR691デフォルトの名無しさん
2020/06/28(日) 00:19:31.12ID:BWJrAYP0 while (1){
イベント待ち
イベントクリア
while (キューから取得){
処理
}
}
----
キューに追加
イベントセット
イベント待ち
イベントクリア
while (キューから取得){
処理
}
}
----
キューに追加
イベントセット
692デフォルトの名無しさん
2020/06/28(日) 00:21:59.78ID:BWJrAYP0 こうだった
std::set / less
同じプライオリティがダブらないならこれでも
std::set / less
同じプライオリティがダブらないならこれでも
693デフォルトの名無しさん
2020/06/28(日) 00:25:52.98ID:En8ZMxKR プライオリティはダブルんですけど、要素がプライオリティじゃなくて、プライオリティと例えば実行するstd::functionのペアで、このペアオブジェクトがダブらないはず
694デフォルトの名無しさん
2020/06/28(日) 00:27:09.32ID:h/QEc5EX お前は人の相談に乗れるレベルなのか?
695デフォルトの名無しさん
2020/06/28(日) 00:33:11.03ID:BWJrAYP0696デフォルトの名無しさん
2020/06/28(日) 00:42:37.03ID:En8ZMxKR >>695
unordered系しか本格的に使ったことしかないんですけど
std::pair使わずに独自ペアオブジェクトじゃだめそうだな..
std::pairをstd::shared_ptrでラップすればOKそうに見える
unordered系しか本格的に使ったことしかないんですけど
std::pair使わずに独自ペアオブジェクトじゃだめそうだな..
std::pairをstd::shared_ptrでラップすればOKそうに見える
697デフォルトの名無しさん
2020/06/28(日) 00:43:43.83ID:BWJrAYP0 lessもプライオリティとfunctionのペアってことね
同じプライオリティの処理が
キューにセットした順にはならなくなるけど
個人的には
キューにセットした回数分実行するために
multisetにしたい
同じプライオリティの処理が
キューにセットした順にはならなくなるけど
個人的には
キューにセットした回数分実行するために
multisetにしたい
698デフォルトの名無しさん
2020/06/28(日) 00:46:39.83ID:BWJrAYP0 プライオリティが多くないなら
ブライオリティ別のdequeにすれば
公平性は保たれるし比較も不要
ブライオリティ別のdequeにすれば
公平性は保たれるし比較も不要
699デフォルトの名無しさん
2020/06/28(日) 00:46:53.66ID:En8ZMxKR multisetですか、ちょっと調べてみます
700デフォルトの名無しさん
2020/06/28(日) 00:56:32.40ID:En8ZMxKR あー。multisetでいいですね。それにします。
ありがとうございます
ありがとうございます
701デフォルトの名無しさん
2020/06/28(日) 06:20:46.65ID:vMsHglGs ここまでintel TBBなし
702デフォルトの名無しさん
2020/06/28(日) 06:44:27.88ID:8Xgo7zrJ >>675
C++17ならstd::execution::parが使えるぞ
C++17ならstd::execution::parが使えるぞ
703デフォルトの名無しさん
2020/06/30(火) 18:13:09.56ID:W+MWiusu C++17を指定する#pragmaない? gccかclで
704デフォルトの名無しさん
2020/06/30(火) 20:39:19.04ID:8IN9xg77 >>703
引数じゃいかんのか?
引数じゃいかんのか?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 「もうキモくてキモくて…」29歳女性が語る“おぢアタック”の実態。「俺ならイケるかも」年下女性を狙う勘違い中年男性には共通点が [Hitzeschleier★]
- 高市首相、トランプ米大統領に「早期に会いたい」 日中関係悪化受け… ★4 [BFU★]
- 【コメ】卸売業者「簡単に安売りできない」「大暴落起きれば大赤字に」 JA「新米の販売進度が近年になく遅い。コメの回転が悪い」 ★5 [Hitzeschleier★]
- テレビ朝日 本社から男性が転落し死亡。関連会社社員か 当たった通行人が左肩軽傷 [阿弥陀ヶ峰★]
- 中国軍機がレーダー照射 小泉防衛大臣の説明に「矛盾している」中国外務省報道官が批判 [♪♪♪★]
- テレビ朝日本社から20~30代の関連会社社員とみられる男性が転落し死亡 六本木けやき坂通りの通行人にはけが人なし [少考さん★]
- 【高市速報】中国、最後通牒 [308389511]
- 石見舞菜香ちゃんの声のお尻の穴なめたい
- まーた地震
- 地震wwwwwwwww
- 【悲報】高市早苗「物価高はそのうち収まると思います」
- しね✋ーーーーー☀
