前スレ
C++相談室 part157
https://mevius.5ch.net/test/read.cgi/tech/1628474251/
探検
C++相談室 part158
■ このスレッドは過去ログ倉庫に格納されています
2021/11/15(月) 18:49:18.44ID:I69rZ/Of
325デフォルトの名無しさん
2021/12/10(金) 21:33:24.42ID:4aSHek6G326デフォルトの名無しさん
2021/12/10(金) 22:00:02.92ID:G7csYfUf >>325
聞かれたから答えたけど会話にならんな・・・この辺で
聞かれたから答えたけど会話にならんな・・・この辺で
327デフォルトの名無しさん
2021/12/10(金) 22:00:16.81ID:caXqow3a どうしたらいいかご意見を聞かせてください!٩( ᐛ )و
class hogeにおいてメンバ変数unique_ptr<toge>toge1を所有しております。
vector<hoge> vHogeを運用するとき、hogeのインスタンスをプッシュバックしようとすると、削除された関数ですというエラーメッセージが帰ってまいります。
おそらくtoge1がユニークポインタであり、ムーブ以外の移動が不可能だからだと思うのですが……このままプッシュバックさせるのに何か方法はありますでしょうか?
健作でtoge1にshared_ptrを使う、hogeのコピーコンストラクタにmemcpyを使う等の解を見つけました。
私ごとですが、shared_ptrは循環参照で失敗した哀しい過去があり、恐怖感があります。
またmemcpyでユニークポインタをメモリコピーする場合の機序がイマイチわかりません……
ムーブを経由させずにどうやってユニークポインタを再確保出来る証拠でしょうか……?
どちらの方法でも、実行する場合の注意点があればなんでも教えていただければ幸いです(^O^)/
また上記以外の方法も、もし存在するならば教えていただけると嬉しいです(´;ω;`)
先にお礼申し上げます。ありがとうございます。
class hogeにおいてメンバ変数unique_ptr<toge>toge1を所有しております。
vector<hoge> vHogeを運用するとき、hogeのインスタンスをプッシュバックしようとすると、削除された関数ですというエラーメッセージが帰ってまいります。
おそらくtoge1がユニークポインタであり、ムーブ以外の移動が不可能だからだと思うのですが……このままプッシュバックさせるのに何か方法はありますでしょうか?
健作でtoge1にshared_ptrを使う、hogeのコピーコンストラクタにmemcpyを使う等の解を見つけました。
私ごとですが、shared_ptrは循環参照で失敗した哀しい過去があり、恐怖感があります。
またmemcpyでユニークポインタをメモリコピーする場合の機序がイマイチわかりません……
ムーブを経由させずにどうやってユニークポインタを再確保出来る証拠でしょうか……?
どちらの方法でも、実行する場合の注意点があればなんでも教えていただければ幸いです(^O^)/
また上記以外の方法も、もし存在するならば教えていただけると嬉しいです(´;ω;`)
先にお礼申し上げます。ありがとうございます。
328デフォルトの名無しさん
2021/12/10(金) 22:05:57.88ID:4aSHek6G >>326
もとはといえオメェが勘違いしたからだろこのヒトモドキが
もとはといえオメェが勘違いしたからだろこのヒトモドキが
329デフォルトの名無しさん
2021/12/10(金) 22:09:42.92ID:G7csYfUf330デフォルトの名無しさん
2021/12/10(金) 22:20:49.71ID:Yfltgwdt >>322
普通事前に弾くとかドヤ顔で言われてもそんなの200も承知の助なんだよ
ああいう不測な組み方で死にかねない爆弾抱えるデメリットに比べたら
unsignedなことによるメリットなんて実質ほぼないカスみたいなもんだからsizeがunsignedなのは設計ミスではって話
普通事前に弾くとかドヤ顔で言われてもそんなの200も承知の助なんだよ
ああいう不測な組み方で死にかねない爆弾抱えるデメリットに比べたら
unsignedなことによるメリットなんて実質ほぼないカスみたいなもんだからsizeがunsignedなのは設計ミスではって話
331デフォルトの名無しさん
2021/12/10(金) 22:23:19.44ID:caXqow3a 申し訳ございません( ✌︎'ω')✌︎
遅れましたがこれです。
プッシュバックでエラーががが
struct Toge{
int a=0;
};
struct hoge {
std::unique_ptr<toge> toge1;
};
int main ()
{
std::vector<hoge> vHoge;
hoge hoge001;
vHoge.push_back(hoge001);
}
遅れましたがこれです。
プッシュバックでエラーががが
struct Toge{
int a=0;
};
struct hoge {
std::unique_ptr<toge> toge1;
};
int main ()
{
std::vector<hoge> vHoge;
hoge hoge001;
vHoge.push_back(hoge001);
}
332デフォルトの名無しさん
2021/12/10(金) 22:24:50.14ID:caXqow3a 大文字になってしまった……
struct Toge >>> struct toge
と思っていただければ……
struct Toge >>> struct toge
と思っていただければ……
333デフォルトの名無しさん
2021/12/10(金) 22:34:31.10ID:iN+TjAqi vHoge.push_back(std::move(hoge001));
334デフォルトの名無しさん
2021/12/10(金) 22:36:13.76ID:AEk60g9j vectorに突っ込んだらもうhoge001は使わないんだったらvHoge.push_back(std::move(hoge001));
コピーさせたいならhogeにこんなコピコンとコピop=を定義しとけばいい
hoge(const hoge& other) : toge1(new toge(*other.toge1)){}
基本はmoveだけど時々コピーもしたいくらいなら特殊関数じゃなくてclone()みたいな関数にしておく
どれがいいかは本当の用途と目的で選んで
コピーさせたいならhogeにこんなコピコンとコピop=を定義しとけばいい
hoge(const hoge& other) : toge1(new toge(*other.toge1)){}
基本はmoveだけど時々コピーもしたいくらいなら特殊関数じゃなくてclone()みたいな関数にしておく
どれがいいかは本当の用途と目的で選んで
335デフォルトの名無しさん
2021/12/10(金) 22:37:31.61ID:G7csYfUf >>332
コンパイルエラーを直してください
https://ideone.com/RxQYii
>>330
承知してるなら弾け
今回の用件はsize_type使えばいいだけなのでunsignedかどうかは関係ない
コンパイルエラーを直してください
https://ideone.com/RxQYii
>>330
承知してるなら弾け
今回の用件はsize_type使えばいいだけなのでunsignedかどうかは関係ない
336はちみつ餃子 ◆8X2XSCHEME
2021/12/10(金) 22:52:51.98ID:ogq0Brkp >>327
> hogeのコピーコンストラクタにmemcpyを使う等の解
これについてはダメ。
設計上の話ではなく言語仕様での保証がない。
そんなのがまかり通ったらスマートポインタの意味がない。
型が trivially copyable の要件を満たすときだけ memcpy でのコピーが許されている。
> hogeのコピーコンストラクタにmemcpyを使う等の解
これについてはダメ。
設計上の話ではなく言語仕様での保証がない。
そんなのがまかり通ったらスマートポインタの意味がない。
型が trivially copyable の要件を満たすときだけ memcpy でのコピーが許されている。
337デフォルトの名無しさん
2021/12/10(金) 23:02:05.91ID:4aSHek6G338デフォルトの名無しさん
2021/12/10(金) 23:18:01.33ID:G7csYfUf >>337
なんだか煽ってばかりですね。質問内容は明快にしないといけないので。
なんだか煽ってばかりですね。質問内容は明快にしないといけないので。
339デフォルトの名無しさん
2021/12/10(金) 23:22:36.91ID:4aSHek6G ああ言えば上裕
オメェそっくり
オメェそっくり
340デフォルトの名無しさん
2021/12/10(金) 23:40:14.88ID:Yfltgwdt341デフォルトの名無しさん
2021/12/10(金) 23:41:07.01ID:caXqow3a342デフォルトの名無しさん
2021/12/10(金) 23:49:32.55ID:aT/chChl343デフォルトの名無しさん
2021/12/10(金) 23:57:06.57ID:G7csYfUf >>340
関係ないでしょw vectorの要素指定に必要な型はsize_typeだからw
関係ないでしょw vectorの要素指定に必要な型はsize_typeだからw
344デフォルトの名無しさん
2021/12/11(土) 00:02:57.69ID:3H+eghbz345デフォルトの名無しさん
2021/12/11(土) 00:09:02.31ID:VVJ2blgW >>344
同じ人かなw 最初から最後まで関係ないとしか言ってないよw 関係ない話をする意味はないw
同じ人かなw 最初から最後まで関係ないとしか言ってないよw 関係ない話をする意味はないw
346デフォルトの名無しさん
2021/12/11(土) 00:11:05.65ID:3H+eghbz はい逃げたねお疲れさまー
てかまあこんな頭の固いジジイ追い詰めなくても
>>319-320あたりで結論出てるからもういいんだけどね
sizeも漏れなく頭の固いクソジジイが設計ミスしたんだろうなぁ
間違いを認められるだけコイツよりまだマシだけど
てかまあこんな頭の固いジジイ追い詰めなくても
>>319-320あたりで結論出てるからもういいんだけどね
sizeも漏れなく頭の固いクソジジイが設計ミスしたんだろうなぁ
間違いを認められるだけコイツよりまだマシだけど
347デフォルトの名無しさん
2021/12/11(土) 00:13:11.51ID:3H+eghbz わいも寝るんで逃げさせてもらうわ、ほな
348デフォルトの名無しさん
2021/12/11(土) 00:13:27.97ID:VVJ2blgW349デフォルトの名無しさん
2021/12/11(土) 02:16:25.58ID:heMahnZy350デフォルトの名無しさん
2021/12/11(土) 03:09:07.14ID:fJKHaMXl emplace_backっていつ使うんだっけ?
351デフォルトの名無しさん
2021/12/11(土) 03:48:00.02ID:heMahnZy352デフォルトの名無しさん
2021/12/11(土) 08:31:56.16ID:iPxJ8RPT >>349
ありがとうございます!
エンプレイスバックでも確認できました。
本当に根本がわかってなかったにでお恥ずかしい話ですが、ユニークポインタはmove出来ることは知っていても、インスタンスごとmoveするという考えに至りませんでした。
右辺値の言葉だけは知っていた状態です……
moveが引数の領域を右辺値に変換するので、インスタンスのメンバ全てが一時的に右辺地に変換され、その結果ユニークポインタの移動も許可されるという考えで良いのですかね?
皆様ありがとうございます
ありがとうございます!
エンプレイスバックでも確認できました。
本当に根本がわかってなかったにでお恥ずかしい話ですが、ユニークポインタはmove出来ることは知っていても、インスタンスごとmoveするという考えに至りませんでした。
右辺値の言葉だけは知っていた状態です……
moveが引数の領域を右辺値に変換するので、インスタンスのメンバ全てが一時的に右辺地に変換され、その結果ユニークポインタの移動も許可されるという考えで良いのですかね?
皆様ありがとうございます
353デフォルトの名無しさん
2021/12/11(土) 08:39:15.08ID:RT/36Bm9 gccのヘッダファイル見るとpush_backがemplace_backに置き換えられてた
354デフォルトの名無しさん
2021/12/11(土) 11:16:33.01ID:VVJ2blgW 質問する方はそもそも何を知りたいのか、どうしたいのかを明確にせず
回答する方はよく分からずに回答してる感じだな(はちみつ餃子以外)
回答する方はよく分からずに回答してる感じだな(はちみつ餃子以外)
355デフォルトの名無しさん
2021/12/11(土) 11:28:49.13ID:XUdPn4EW 本人じゃないとありえんようなクソレス
356デフォルトの名無しさん
2021/12/11(土) 11:33:31.35ID:VVJ2blgW 俺ははちみつ餃子じゃないよ
分かってる人は全員そう思うと思う
このスレやばい
分かってる人は全員そう思うと思う
このスレやばい
357デフォルトの名無しさん
2021/12/11(土) 11:40:28.86ID:2RxEeijy358デフォルトの名無しさん
2021/12/11(土) 11:41:55.96ID:2RxEeijy ここをサポセンか何かと勘違いしてね?
359デフォルトの名無しさん
2021/12/11(土) 11:43:35.03ID:2RxEeijy 上司や客に言われたことを自分も誰かに言いたいのかな
360デフォルトの名無しさん
2021/12/11(土) 11:53:10.78ID:VVJ2blgW >>357-359
3連投しないで1つにまとめてね
伝わらない人がいるのでハッキリ言うと、、、
質問したい人はもう少し明確に質問してほしい
回答する人はもう少し正確な回答をしてほしい
現在このスレのレベルはかなり落ちている
3連投しないで1つにまとめてね
伝わらない人がいるのでハッキリ言うと、、、
質問したい人はもう少し明確に質問してほしい
回答する人はもう少し正確な回答をしてほしい
現在このスレのレベルはかなり落ちている
361デフォルトの名無しさん
2021/12/11(土) 12:03:14.48ID:2RxEeijy362デフォルトの名無しさん
2021/12/11(土) 12:04:22.50ID:8GY5wY3L 僕だけは特別!
363デフォルトの名無しさん
2021/12/11(土) 12:08:44.64ID:VVJ2blgW >>361-362
見るに堪えないだけだよ。当たり前のことを要求してるだけだし、ID変えてまで一体何が気に障るのやら・・・
見るに堪えないだけだよ。当たり前のことを要求してるだけだし、ID変えてまで一体何が気に障るのやら・・・
364デフォルトの名無しさん
2021/12/11(土) 12:14:57.20ID:fJKHaMXl 簡単なコードが提示できないんだけどコンセプトで以下のようなエラーがでる
> C7608: アトミック制約は定数式である必要があります 。
アトミック制約ってなに?
> C7608: アトミック制約は定数式である必要があります 。
アトミック制約ってなに?
365デフォルトの名無しさん
2021/12/11(土) 12:19:25.86ID:1jb/pqqq 1つの内容を理由もなく複数のレスに分けて投稿する奴はもれなくバカなのでスルー推奨
366デフォルトの名無しさん
2021/12/11(土) 12:23:49.93ID:VVJ2blgW >>364
C++20はまだやる気ないので知らないけど、仕様は以下みたい。参考まで。
https://timsong-cpp.github.io/cppwp/n4861/temp.constr.constr#temp.constr.atomic
C++20はまだやる気ないので知らないけど、仕様は以下みたい。参考まで。
https://timsong-cpp.github.io/cppwp/n4861/temp.constr.constr#temp.constr.atomic
367デフォルトの名無しさん
2021/12/11(土) 13:18:37.47ID:iDGs+tOs 多分atomic は、OS に割り込まれない、interrupt disable みたいな奴だろ。
割り込み禁止区間
1. 割り込み禁止
2. atomic に処理したいもの
3. 割り込み許可
割り込み禁止区間
1. 割り込み禁止
2. atomic に処理したいもの
3. 割り込み許可
368デフォルトの名無しさん
2021/12/11(土) 13:41:40.82ID:MUPeoDuy369デフォルトの名無しさん
2021/12/11(土) 13:49:58.55ID:VVJ2blgW 無関係でスレ違いかつ「内容まで間違った」ことを垂れ流し続けるのはやめてくれ
370デフォルトの名無しさん
2021/12/11(土) 15:00:10.16ID:U6KjSVaU 一般にアトミックと割り込み禁止は異なる概念、
マルチコアのアーキテクチャーなら割り込みを禁止したからといって
複数回のバスサイクルをアトミックに遂行できるとは限らない
つなみに割り込み禁止という手段でOSに割り込まれないことは実現はできるが
強力すぎるので普通はそれはしない
やったらリアルタイムOSならリアルタイム性の前提が根底から覆るし、
非リアルタイムOSでも割り込み禁止したタスクAとは本来無関係(独立に実行して良い)なタスクまで
プリエンプション停止によって止まってしまう弊害があるから
マルチコアのアーキテクチャーなら割り込みを禁止したからといって
複数回のバスサイクルをアトミックに遂行できるとは限らない
つなみに割り込み禁止という手段でOSに割り込まれないことは実現はできるが
強力すぎるので普通はそれはしない
やったらリアルタイムOSならリアルタイム性の前提が根底から覆るし、
非リアルタイムOSでも割り込み禁止したタスクAとは本来無関係(独立に実行して良い)なタスクまで
プリエンプション停止によって止まってしまう弊害があるから
371デフォルトの名無しさん
2021/12/11(土) 15:12:24.61ID:U6KjSVaU リードモディファイライトぐらいなら今日日のCPUが命令を備えているのでOSにも対応するAPIがあり、
それを実行したらリード、ライト、リードの3バスサイクルがアトミックに実行される
もっと凝った処理をアトミックにしたい場合は
1. クリティカルセクション(セマフォとかでも良い)にENTER
2. atomic に処理したいもの
3. クリティカルセクション(セマフォとかでも良い)からLEAVE
となり、1と3はやはりOSにお世話いただく
それを実行したらリード、ライト、リードの3バスサイクルがアトミックに実行される
もっと凝った処理をアトミックにしたい場合は
1. クリティカルセクション(セマフォとかでも良い)にENTER
2. atomic に処理したいもの
3. クリティカルセクション(セマフォとかでも良い)からLEAVE
となり、1と3はやはりOSにお世話いただく
372デフォルトの名無しさん
2021/12/11(土) 15:16:22.95ID:xxQzv6uY373デフォルトの名無しさん
2021/12/11(土) 15:18:53.32ID:MUPeoDuy >>371
クリティカルセクションとイベントを使って書いていたことがありましたが、スタベーションに悩まされて止めてしまいました…
クリティカルセクションとイベントを使って書いていたことがありましたが、スタベーションに悩まされて止めてしまいました…
374デフォルトの名無しさん
2021/12/11(土) 15:26:46.48ID:U6KjSVaU >>373
なんでatomicに処理するごときでイベントが出てくるのかわからん……
1で待っているタスクBが居るなら、アトミックな処理を終えたタスクAが3を実行した時点で
OSがタスクBに自動的に通知する(ていうか起こす
不必要に凝りまくった(そして間違った)排他制御をしているのではないか、
なんでatomicに処理するごときでイベントが出てくるのかわからん……
1で待っているタスクBが居るなら、アトミックな処理を終えたタスクAが3を実行した時点で
OSがタスクBに自動的に通知する(ていうか起こす
不必要に凝りまくった(そして間違った)排他制御をしているのではないか、
375デフォルトの名無しさん
2021/12/11(土) 16:00:21.52ID:9bOVK1ul セマフォでも大丈夫なん?
376デフォルトの名無しさん
2021/12/11(土) 16:48:16.25ID:VVJ2blgW U6KjSVaUだけまともだけど、CriticalSectionが同期機構として存在するのはWindowsだけ
アトミック制約と無関係でC++固有でもないのでスレ違いなのは同じだけど…その辺の話をするならせめて↓でしてくれ
標準C++で単にatomicな話なら
https://cpprefjp.github.io/reference.html#atomic-operations
標準C++でスレッドを対象とした話なら
https://cpprefjp.github.io/reference.html#thread-support
プロセスまで含むならboostになるけど
https://www.boost.org/doc/libs/1_78_0/doc/html/interprocess.html
アトミック制約と無関係でC++固有でもないのでスレ違いなのは同じだけど…その辺の話をするならせめて↓でしてくれ
標準C++で単にatomicな話なら
https://cpprefjp.github.io/reference.html#atomic-operations
標準C++でスレッドを対象とした話なら
https://cpprefjp.github.io/reference.html#thread-support
プロセスまで含むならboostになるけど
https://www.boost.org/doc/libs/1_78_0/doc/html/interprocess.html
377デフォルトの名無しさん
2021/12/11(土) 17:02:39.01ID:y3N81+jA >>376
迷惑なんでコテハンにしていただけません?
迷惑なんでコテハンにしていただけません?
378デフォルトの名無しさん
2021/12/11(土) 17:06:37.77ID:VVJ2blgW 何が迷惑なのか理由の説明がないが、コテハン付けたいならお前だけ勝手につけとけw
379デフォルトの名無しさん
2021/12/11(土) 17:13:56.24ID:VjmhXzGH template <typename T, typename Allocator = std::allocator<T>>
using vec = std::vector<T, Allocator>;
auto v = vec(0, 0);
ってgccだと動いてclangだとコンパイル通らないけどclangのバグ?
using vec = std::vector<T, Allocator>;
auto v = vec(0, 0);
ってgccだと動いてclangだとコンパイル通らないけどclangのバグ?
380デフォルトの名無しさん
2021/12/11(土) 17:17:46.16ID:9bOVK1ul 勘違いしてた
セマフォでも一人に限定すれば問題ないか
セマフォでも一人に限定すれば問題ないか
381デフォルトの名無しさん
2021/12/11(土) 17:36:33.78ID:gcR9gZtv そもそもそもそも
アトミック制約って原子制約のことでしょう
排他制御のatomicとは全く無関係に
単にconstexprじゃないbool値をrequiresしてませんか?
アトミック制約って原子制約のことでしょう
排他制御のatomicとは全く無関係に
単にconstexprじゃないbool値をrequiresしてませんか?
382はちみつ餃子 ◆8X2XSCHEME
2021/12/11(土) 17:38:45.13ID:kyD4TLbr >>379
バグというか C++20 対応が不十分なんだと思う。
@ 元々は実引数から型引数にあてはまる型を推論するのは関数テンプレート (メンバ関数テンプレートを含む) でしか出来なかった
A C++17 コンストラクタの実引数からクラスの型引数を推論できるようになった
B C++20 からエイリアステンプレートを挟んでも推論できるようになった ← これがまだ出来ない
バグというか C++20 対応が不十分なんだと思う。
@ 元々は実引数から型引数にあてはまる型を推論するのは関数テンプレート (メンバ関数テンプレートを含む) でしか出来なかった
A C++17 コンストラクタの実引数からクラスの型引数を推論できるようになった
B C++20 からエイリアステンプレートを挟んでも推論できるようになった ← これがまだ出来ない
383デフォルトの名無しさん
2021/12/11(土) 18:22:11.20ID:fJKHaMXl >>381
たしかにこれの最初のサンプルのdraw関数みたいな事をrequiresしてる。
https://cpprefjp.github.io/lang/cpp20/concepts.html
ただ上で言うdraw関数はconstexprなんだけどな・・・
たしかにこれの最初のサンプルのdraw関数みたいな事をrequiresしてる。
https://cpprefjp.github.io/lang/cpp20/concepts.html
ただ上で言うdraw関数はconstexprなんだけどな・・・
384デフォルトの名無しさん
2021/12/11(土) 20:57:07.56ID:VjmhXzGH385デフォルトの名無しさん
2021/12/12(日) 02:33:53.10ID:ECuL7aut NFTアートとNFTゲームとGameFiとブロックチェーンゲームに
提供する側・作る側として参入しよう。
(むりなら参加する側でもいい)
DAOとPlay-to-Earn(遊んで稼ぐ)が世界の未来になる
提供する側・作る側として参入しよう。
(むりなら参加する側でもいい)
DAOとPlay-to-Earn(遊んで稼ぐ)が世界の未来になる
386デフォルトの名無しさん
2021/12/12(日) 09:13:16.08ID:2ZUu/eca C#で作成されたDLLってC++で呼び出せないんでしたっけ?
387デフォルトの名無しさん
2021/12/12(日) 10:05:57.23ID:Rei0r571 >>386
やってみれば?何をしてみたの?
やってみれば?何をしてみたの?
388デフォルトの名無しさん
2021/12/12(日) 12:59:03.03ID:kKgLRxlD >>386
c++cliのラッパdllを挟んでc#dllを呼ぶとかc#dllをcom参照可能にするとか.NET DLLExportを使うとかあるよ
c++cliのラッパdllを挟んでc#dllを呼ぶとかc#dllをcom参照可能にするとか.NET DLLExportを使うとかあるよ
389デフォルトの名無しさん
2021/12/12(日) 13:04:02.42ID:Rei0r571390デフォルトの名無しさん
2021/12/12(日) 13:10:20.08ID:tD0M3iYv べつにキーワードくらいいいじゃん
391デフォルトの名無しさん
2021/12/12(日) 13:17:19.51ID:Rei0r571 技術に関しては不正確な情報を垂れ流すことほどの害悪はない
392デフォルトの名無しさん
2021/12/12(日) 14:51:29.97ID:4sEaLykb めんどくさい奴だなw
393デフォルトの名無しさん
2021/12/12(日) 14:55:11.15ID:0XY4m15b 悪意を持って嘘をつくのはいかんが
信じていたことが後に間違っていたことに気付くことはあり
それへの虞を言い訳に何もしないやつと
自らの誤りに気付いたときに潔くないやつは生ゴミだ
信じていたことが後に間違っていたことに気付くことはあり
それへの虞を言い訳に何もしないやつと
自らの誤りに気付いたときに潔くないやつは生ゴミだ
394デフォルトの名無しさん
2021/12/12(日) 15:18:45.20ID:MG1pihlR そもそも>>391の言う不正確な情報ってなんだ?
395デフォルトの名無しさん
2021/12/12(日) 16:31:47.95ID:4sEaLykb >>394
Linux環境ではC#のCOM相互運用できないとか、かなあ?
Linux環境ではC#のCOM相互運用できないとか、かなあ?
396デフォルトの名無しさん
2021/12/12(日) 16:41:36.70ID:2ZUu/eca397デフォルトの名無しさん
2021/12/12(日) 16:45:20.02ID:Rei0r571398デフォルトの名無しさん
2021/12/12(日) 17:00:15.53ID:ooYWiIrJ >>395,397
ありとあらゆる環境で動く回答しか認めないとかアスペ全開やなw
ありとあらゆる環境で動く回答しか認めないとかアスペ全開やなw
399デフォルトの名無しさん
2021/12/12(日) 17:05:43.60ID:Rei0r571 >>398
普通ですよ。環境はおろか困っている状況すら何も書いてないのだから。普通に釣りの気配しかありません。
普通ですよ。環境はおろか困っている状況すら何も書いてないのだから。普通に釣りの気配しかありません。
400デフォルトの名無しさん
2021/12/12(日) 17:16:30.63ID:Rei0r571 あと加えて言うならば、一般に・・・という話なのですが、
runtimeでVMを動かすような言語の場合、あまりnative側からキックするような使い方をしません
組み込みなど、そうせざるを得ない特殊な状況のときくらいですね
runtimeでVMを動かすような言語の場合、あまりnative側からキックするような使い方をしません
組み込みなど、そうせざるを得ない特殊な状況のときくらいですね
401デフォルトの名無しさん
2021/12/12(日) 17:18:23.27ID:tD0M3iYv んで根掘り葉掘り聞くだけ聞いて結局回答しないパターン、ってのはよく見るな。
402デフォルトの名無しさん
2021/12/12(日) 17:26:07.41ID:Rei0r571403デフォルトの名無しさん
2021/12/12(日) 17:29:25.52ID:Rei0r571 もちろん聞いたことに答えがない場合も回答する機会は来ませんけどw
404デフォルトの名無しさん
2021/12/12(日) 21:03:58.85ID:A2l5mzZ3 浮動小数点の0.0以外の真偽値って規定されてるんですか?
2.0 == trueが偽になるのにif(2.0)は真のように振舞うのでよく分からなくなりました
2.0 == trueが偽になるのにif(2.0)は真のように振舞うのでよく分からなくなりました
405デフォルトの名無しさん
2021/12/12(日) 21:11:05.34ID:LDYHaH+j それはtrueが1に変換されて比較してるのでは
406デフォルトの名無しさん
2021/12/12(日) 21:13:32.32ID:2ZUu/eca 0は偽でそれ以外は真
if(5) も if(10) も 0 以外だから真
5も10も真だが 5 == 10 は当然等しくないため偽になる
if(5) も if(10) も 0 以外だから真
5も10も真だが 5 == 10 は当然等しくないため偽になる
407デフォルトの名無しさん
2021/12/12(日) 21:34:12.15ID:Rei0r571 >>404
>>405が正解
暗黙変換には一定のルールがあってそれに従って変換するとそうなる
2.0 == true
-> 2.0 == 1
-> 2.0 == 1.0
-> false
if (2.0)
-> if (2.0 != 0)
-> if (true)
https://en.cppreference.com/w/cpp/language/implicit_conversion
https://en.cppreference.com/w/cpp/language/operator_comparison
>>405が正解
暗黙変換には一定のルールがあってそれに従って変換するとそうなる
2.0 == true
-> 2.0 == 1
-> 2.0 == 1.0
-> false
if (2.0)
-> if (2.0 != 0)
-> if (true)
https://en.cppreference.com/w/cpp/language/implicit_conversion
https://en.cppreference.com/w/cpp/language/operator_comparison
408デフォルトの名無しさん
2021/12/12(日) 21:36:42.12ID:Rei0r571 if (2.0 != 0)はあんまり正確じゃないけどねw
409デフォルトの名無しさん
2021/12/12(日) 21:40:50.69ID:f1HMG1tw 当然ながらbool(2.0) == trueとすれば真になるよ
410デフォルトの名無しさん
2021/12/13(月) 21:50:35.10ID:GurY6adw bool(2.0) == true
2.0 == double(true)
で曖昧にならない
こういうのoperatorとctorでは作れないもんかね
2.0 == double(true)
で曖昧にならない
こういうのoperatorとctorでは作れないもんかね
411デフォルトの名無しさん
2021/12/13(月) 21:58:10.81ID:anT0EydK >2.0 == double(true)
え?
え?
412デフォルトの名無しさん
2021/12/13(月) 22:07:54.75ID:XiOitZFG413デフォルトの名無しさん
2021/12/13(月) 22:47:49.66ID:rx7XzRPV そういうのを求めるなら上級者の相談室でも作ってそこにいればいいじゃない
人のやり取り見て文句いうだけの人なんて居ても邪魔なだけだし
人のやり取り見て文句いうだけの人なんて居ても邪魔なだけだし
414デフォルトの名無しさん
2021/12/13(月) 22:54:20.23ID:XiOitZFG そんな難しい要求してないんだけどw
一応↓なスレッドもありますよ
0からの、超初心者C++相談室
https://mevius.5ch.net/test/read.cgi/tech/1542002113/
一応↓なスレッドもありますよ
0からの、超初心者C++相談室
https://mevius.5ch.net/test/read.cgi/tech/1542002113/
415デフォルトの名無しさん
2021/12/13(月) 23:35:59.51ID:GurY6adw 何も言ってないやつとじゃ話にならん
マウント取ったつもりになってろよアホ
マウント取ったつもりになってろよアホ
416デフォルトの名無しさん
2021/12/14(火) 01:10:13.82ID:4HDQQOQ1 ID:XiOitZFG
またコイツ自分賢いと思ってる例のガイジか
またコイツ自分賢いと思ってる例のガイジか
417デフォルトの名無しさん
2021/12/14(火) 01:43:40.68ID:vFkeyZ3D 天に唾するクンじゃないよね?
418デフォルトの名無しさん
2021/12/14(火) 04:27:52.83ID:l53ksWPX std::array<std::array<int, 2>, 2> a{1, 2, 3, 4};
だとコンパイルできて
std::array<std::array<int, 2>, 2> a{{1, 2}, {3, 4}};
だとコンパイルできないのってなんでですか?
下は内側の初期化子リストの型推論が上手くいかない気はするのですが上がOKな理由が全然分かりません
だとコンパイルできて
std::array<std::array<int, 2>, 2> a{{1, 2}, {3, 4}};
だとコンパイルできないのってなんでですか?
下は内側の初期化子リストの型推論が上手くいかない気はするのですが上がOKな理由が全然分かりません
419デフォルトの名無しさん
2021/12/14(火) 09:36:15.02ID:jz8gmYNu arrayは設計悪いね
string_viewみたいなラッパーのほうがマシ
string_viewみたいなラッパーのほうがマシ
420デフォルトの名無しさん
2021/12/14(火) 13:08:07.96ID:64LuYoGR arrayはそんなに設計の余地ないし別によくね
ラッパークラスは役割が別だし比較する意味がわからん
ラッパークラスは役割が別だし比較する意味がわからん
421デフォルトの名無しさん
2021/12/14(火) 13:45:14.16ID:NTJkXylC422デフォルトの名無しさん
2021/12/14(火) 15:27:55.81ID:W58I2MTh >>418
>>420,421 の見解が適切
構造上は以下と等価
struct S1 { struct S2 { int e[2]; } s[2]; };
なので、中括弧を丁寧に書くと↓が正しい
S1 s{{{{1,2},{{3,4}}}};
質問でエラーになったケースは、上の例でメンバsを{1,2}で初期化しようとしため、{3,4}が余ってエラーになる。
https://en.cppreference.com/w/cpp/language/aggregate_initialization
>>420,421 の見解が適切
構造上は以下と等価
struct S1 { struct S2 { int e[2]; } s[2]; };
なので、中括弧を丁寧に書くと↓が正しい
S1 s{{{{1,2},{{3,4}}}};
質問でエラーになったケースは、上の例でメンバsを{1,2}で初期化しようとしため、{3,4}が余ってエラーになる。
https://en.cppreference.com/w/cpp/language/aggregate_initialization
423デフォルトの名無しさん
2021/12/14(火) 19:16:16.31ID:l53ksWPX424デフォルトの名無しさん
2021/12/14(火) 20:13:02.90ID:kTLKUa7o a{{1, 2}, {3, 4}}で初期化できるようにしようぜっていう提案もあったけど
初期化ルールがますますカオスになるので却下された
初期化ルールがますますカオスになるので却下された
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【インバウンド】中国からの“渡航自粛”…ツアー1000人分の直前キャンセル「キャンセル料は免除してくれ」 ことしいっぱいキャンセルに [1ゲットロボ★]
- 「国民の憤りを引き起こした」中国側“高市首相発言の撤回改めて要求” [どどん★]
- 【芸能】日中関係悪化でエンタメ業界に大ダメージ… JO1の中国でのイベント中止、邦画は公開延期、STARTOアイドルへの影響も [冬月記者★]
- XやChatGPTで広範囲の通信障害 投稿や閲覧できず [蚤の市★]
- 【サッカー】日本代表、ボリビアに3発快勝 森保監督通算100試合目を飾る…鎌田、町野、中村がゴール [久太郎★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★3 [ぐれ★]
- 俺もジョジョみたいな愛称欲しかった…
- 米シンクタンク「アメリカは台湾問題で"あいまい戦略"を取っている。高市早苗はこの方針から逸脱している」 [603416639]
- 【高市早苗】バス会社、中国からのキャンセルで12月で2000万円~3000万円の損失へ [115996789]
- かしこいワンコっていうVtuberの子知ってる?
- 岡田克也「軽々しく存立危機事態とか言うべきじゃない」高市早苗「台湾で武力攻撃が発生したらどう考えても日本の存立危機事態」 [931948549]
- ジャーナリストがテレビで解説「台湾問題は高市総理から言ったのではなく、立憲民主が日本の対応可能能力を暴こうとしたから」 [359572271]
