[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/22 21:10 / Filesize : 275 KB / Number-of Response : 1017
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C++相談室 part158



1 名前:デフォルトの名無しさん mailto:sage [2021/11/15(月) 18:49:18.44 ID:I69rZ/Of.net]
前スレ
C++相談室 part157
https://mevius.5ch.net/test/read.cgi/tech/1628474251/

331 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 22:05:57.88 ID:4aSHek6G.net]
>>326
もとはといえオメェが勘違いしたからだろこのヒトモドキが

332 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 22:09:42.92 ID:G7csYfUf.net]
>>327
再現コードをどこかに貼って。伝わらない。
>>328
煽ってるだけじゃんw だから会話にならないんだよw

333 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 22:20:49.71 ID:Yfltgwdt.net]
>>322
普通事前に弾くとかドヤ顔で言われてもそんなの200も承知の助なんだよ
ああいう不測な組み方で死にかねない爆弾抱えるデメリットに比べたら
unsignedなことによるメリットなんて実質ほぼないカスみたいなもんだからsizeがunsignedなのは設計ミスではって話

334 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 22:23:19.44 ID:caXqow3a.net]
申し訳ございません( ✌︎'ω')✌︎
遅れましたがこれです。
プッシュバックでエラーががが

struct Toge{
int a=0;
};
struct hoge {
std::unique_ptr<toge> toge1;
};

int main ()
{
std::vector<hoge> vHoge;
hoge hoge001;
vHoge.push_back(hoge001);
}

335 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 22:24:50.14 ID:caXqow3a.net]
大文字になってしまった……
struct Toge >>> struct toge
と思っていただければ……

336 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 22:34:31.10 ID:iN+TjAqi.net]
vHoge.push_back(std::move(hoge001));

337 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 22:36:13.76 ID:AEk60g9j.net]
vectorに突っ込んだらもうhoge001は使わないんだったらvHoge.push_back(std::move(hoge001));

コピーさせたいならhogeにこんなコピコンとコピop=を定義しとけばいい
hoge(const hoge& other) : toge1(new toge(*other.toge1)){}
基本はmoveだけど時々コピーもしたいくらいなら特殊関数じゃなくてclone()みたいな関数にしておく
どれがいいかは本当の用途と目的で選んで

338 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 22:37:31.61 ID:G7csYfUf.net]
>>332
コンパイルエラーを直してください
https://ideone.com/RxQYii

>>330
承知してるなら弾け
今回の用件はsize_type使えばいいだけなのでunsignedかどうかは関係ない

339 名前:はちみつ餃子 mailto:sage [2021/12/10(金) 22:52:51.98 ID:ogq0Brkp.net]
>>327
> hogeのコピーコンストラクタにmemcpyを使う等の解

これについてはダメ。
設計上の話ではなく言語仕様での保証がない。
そんなのがまかり通ったらスマートポインタの意味がない。

型が trivially copyable の要件を満たすときだけ memcpy でのコピーが許されている。



340 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 23:02:05.91 ID:4aSHek6G.net]
>>335
オメェが直して差し上げろよ
本人それで困ってんだからよ

341 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 23:18:01.33 ID:G7csYfUf.net]
>>337
なんだか煽ってばかりですね。質問内容は明快にしないといけないので。

342 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 23:22:36.91 ID:4aSHek6G.net]
ああ言えば上裕
オメェそっくり

343 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 23:40:14.88 ID:Yfltgwdt.net]
>>335
いや関係大ありだから
ないって言い張るならsizeがunsignedなメリット挙げてみなよ、ないでしょ

344 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 23:41:07.01 ID:caXqow3a.net]
>>333
>>334
お風呂に入っており返信が遅くなりました。
なんてお礼を言ったらいいか、std::moveで解決しました。
自分の知識不足ではありますが、素早い返信に感謝でございます(〃ω〃)
生成したユニークポインタはベクターに移せれば使い捨てのでムーブで良さそうです。
std::moveについて調べてみます!

>>336
ありがとうございます。
メモコピーで解決するというページがあったのですが、正直機序がわからず不安でした(笑)
シェアードポインタかムーブで対応したいと思います。
有難うございました。

345 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 23:49:32.55 ID:aT/chChl.net]
>>308
普通は範囲forじゃないの?
性能とかで差分あったっけ。

346 名前:デフォルトの名無しさん mailto:sage [2021/12/10(金) 23:57:06.57 ID:G7csYfUf.net]
>>340
関係ないでしょw vectorの要素指定に必要な型はsize_typeだからw

347 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 00:02:57.69 ID:3H+eghbz.net]
>>343
ふ〜ん、で?
sizeがunsignedなメリット挙げれるの?挙げれないの?

348 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 00:09:02.31 ID:VVJ2blgW.net]
>>344
同じ人かなw 最初から最後まで関係ないとしか言ってないよw 関係ない話をする意味はないw

349 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 00:11:05.65 ID:3H+eghbz.net]
はい逃げたねお疲れさまー
てかまあこんな頭の固いジジイ追い詰めなくても
>>319-320あたりで結論出てるからもういいんだけどね
sizeも漏れなく頭の固いクソジジイが設計ミスしたんだろうなぁ
間違いを認められるだけコイツよりまだマシだけど



350 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 00:13:11.51 ID:3H+eghbz.net]
わいも寝るんで逃げさせてもらうわ、ほな

351 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 00:13:27.97 ID:VVJ2blgW.net]
>>346
煽るだけで根拠も出せてない無関係な話をしてるのはそっちでしょw 話が終わらなくなるなら普通はしないw
頭が硬いのは君だよw

352 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 02:16:25.58 ID:heMahnZy.net]
>>341
もう見てないだろうけど、>>331のケースだと
わざわざstd::move()で右辺値にキャストしなくても
vHoge.push_back(hoge());
で良いと思う。
hoge hoge001;とするから左辺値になってしまってstd::move()が必要になるけど、
引数で直接hoge()とすれば右辺値だからstd::move()しなくても右辺値参照のpush_backが呼ばれるはず。

353 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 03:09:07.14 ID:fJKHaMXl.net]
emplace_backっていつ使うんだっけ?

354 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 03:48:00.02 ID:heMahnZy.net]
>>350
今でしょ・・・
>>349なんてしなくても
vHoge.emplace_back();
で良い話だった。

355 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 08:31:56.16 ID:iPxJ8RPT.net]
>>349
ありがとうございます!
エンプレイスバックでも確認できました。

本当に根本がわかってなかったにでお恥ずかしい話ですが、ユニークポインタはmove出来ることは知っていても、インスタンスごとmoveするという考えに至りませんでした。
右辺値の言葉だけは知っていた状態です……
moveが引数の領域を右辺値に変換するので、インスタンスのメンバ全てが一時的に右辺地に変換され、その結果ユニークポインタの移動も許可されるという考えで良いのですかね?

皆様ありがとうございます

356 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 08:39:15.08 ID:RT/36Bm9.net]
gccのヘッダファイル見るとpush_backがemplace_backに置き換えられてた

357 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 11:16:33.01 ID:VVJ2blgW.net]
質問する方はそもそも何を知りたいのか、どうしたいのかを明確にせず
回答する方はよく分からずに回答してる感じだな(はちみつ餃子以外)

358 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 11:28:49.13 ID:XUdPn4EW.net]
本人じゃないとありえんようなクソレス

359 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 11:33:31.35 ID:VVJ2blgW.net]
俺ははちみつ餃子じゃないよ
分かってる人は全員そう思うと思う
このスレやばい



360 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 11:40:28.86 ID:2RxEeijy.net]
>>354
おまえさんの対話力が、ここの平均以下ってことだな
僅かなエスパーもできないアスペっぽいやつが
取り残されるのは仕方のないことだ

361 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 11:41:55.96 ID:2RxEeijy.net]
ここをサポセンか何かと勘違いしてね?

362 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 11:43:35.03 ID:2RxEeijy.net]
上司や客に言われたことを自分も誰かに言いたいのかな

363 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 11:53:10.78 ID:VVJ2blgW.net]
>>357-359
3連投しないで1つにまとめてね

伝わらない人がいるのでハッキリ言うと、、、
質問したい人はもう少し明確に質問してほしい
回答する人はもう少し正確な回答をしてほしい

現在このスレのレベルはかなり落ちている

364 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 12:03:14.48 ID:2RxEeijy.net]
>>360
あんたに連投がどうのと指図される筋合いはないし
質問者がどうして欲しい
回答者がどうして欲しい
と、やたら依頼心の強いやつだな

頼み事をする態度を知らんのか

365 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 12:04:22.50 ID:8GY5wY3L.net]
僕だけは特別!

366 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 12:08:44.64 ID:VVJ2blgW.net]
>>361-362
見るに堪えないだけだよ。当たり前のことを要求してるだけだし、ID変えてまで一体何が気に障るのやら・・・

367 名前:デフォルトの名無しさん [2021/12/11(土) 12:14:57.20 ID:fJKHaMXl.net]
簡単なコードが提示できないんだけどコンセプトで以下のようなエラーがでる

> C7608: アトミック制約は定数式である必要があります 。

アトミック制約ってなに?

368 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 12:19:25.86 ID:1jb/pqqq.net]
1つの内容を理由もなく複数のレスに分けて投稿する奴はもれなくバカなのでスルー推奨

369 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 12:23:49.93 ID:VVJ2blgW.net]
>>364
C++20はまだやる気ないので知らないけど、仕様は以下みたい。参考まで。
https://timsong-cpp.github.io/cppwp/n4861/temp.constr.constr#temp.constr.atomic



370 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 13:18:37.47 ID:iDGs+tOs.net]
多分atomic は、OS に割り込まれない、interrupt disable みたいな奴だろ。
割り込み禁止区間

1. 割り込み禁止
2. atomic に処理したいもの
3. 割り込み許可

371 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 13:41:40.82 ID:MUPeoDuy.net]
>>367
それはリアルモードOSでの話
最近の OS ではユーザーが OS の企みを阻止することは不可能

372 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 13:49:58.55 ID:VVJ2blgW.net]
無関係でスレ違いかつ「内容まで間違った」ことを垂れ流し続けるのはやめてくれ

373 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 15:00:10.16 ID:U6KjSVaU.net]
一般にアトミックと割り込み禁止は異なる概念、
マルチコアのアーキテクチャーなら割り込みを禁止したからといって
複数回のバスサイクルをアトミックに遂行できるとは限らない

つなみに割り込み禁止という手段でOSに割り込まれないことは実現はできるが
強力すぎるので普通はそれはしない
やったらリアルタイムOSならリアルタイム性の前提が根底から覆るし、
非リアルタイムOSでも割り込み禁止したタスクAとは本来無関係(独立に実行して良い)なタスクまで
プリエンプション停止によって止まってしまう弊害があるから

374 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 15:12:24.61 ID:U6KjSVaU.net]
リードモディファイライトぐらいなら今日日のCPUが命令を備えているのでOSにも対応するAPIがあり、
それを実行したらリード、ライト、リードの3バスサイクルがアトミックに実行される
もっと凝った処理をアトミックにしたい場合は

1. クリティカルセクション(セマフォとかでも良い)にENTER
2. atomic に処理したいもの
3. クリティカルセクション(セマフォとかでも良い)からLEAVE

となり、1と3はやはりOSにお世話いただく

375 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 15:16:22.95 ID:xxQzv6uY.net]
>>363
出た、当たり前のことを要求だとよ
自分の要求は通って当たり前と思っている真性のやつw

376 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 15:18:53.32 ID:MUPeoDuy.net]
>>371
クリティカルセクションとイベントを使って書いていたことがありましたが、スタベーションに悩まされて止めてしまいました…

377 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 15:26:46.48 ID:U6KjSVaU.net]
>>373
なんでatomicに処理するごときでイベントが出てくるのかわからん……
1で待っているタスクBが居るなら、アトミックな処理を終えたタスクAが3を実行した時点で
OSがタスクBに自動的に通知する(ていうか起こす
不必要に凝りまくった(そして間違った)排他制御をしているのではないか、

378 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 16:00:21.52 ID:9bOVK1ul.net]
セマフォでも大丈夫なん?

379 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 16:48:16.25 ID:VVJ2blgW.net]
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



380 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 17:02:39.01 ID:y3N81+jA.net]
>>376
迷惑なんでコテハンにしていただけません?

381 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 17:06:37.77 ID:VVJ2blgW.net]
何が迷惑なのか理由の説明がないが、コテハン付けたいならお前だけ勝手につけとけw

382 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 17:13:56.24 ID:VjmhXzGH.net]
template <typename T, typename Allocator = std::allocator<T>>
using vec = std::vector<T, Allocator>;

auto v = vec(0, 0);

ってgccだと動いてclangだとコンパイル通らないけどclangのバグ?

383 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 17:17:46.16 ID:9bOVK1ul.net]
勘違いしてた
セマフォでも一人に限定すれば問題ないか

384 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 17:36:33.78 ID:gcR9gZtv.n ]
[ここ壊れてます]

385 名前:et mailto: そもそもそもそも

アトミック制約って原子制約のことでしょう
排他制御のatomicとは全く無関係に

単にconstexprじゃないbool値をrequiresしてませんか?
[]
[ここ壊れてます]

386 名前:はちみつ餃子 mailto:sage [2021/12/11(土) 17:38:45.13 ID:kyD4TLbr.net]
>>379
バグというか C++20 対応が不十分なんだと思う。

@ 元々は実引数から型引数にあてはまる型を推論するのは関数テンプレート (メンバ関数テンプレートを含む) でしか出来なかった
A C++17 コンストラクタの実引数からクラスの型引数を推論できるようになった
B C++20 からエイリアステンプレートを挟んでも推論できるようになった ← これがまだ出来ない

387 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 18:22:11.20 ID:fJKHaMXl.net]
>>381
たしかにこれの最初のサンプルのdraw関数みたいな事をrequiresしてる。
https://cpprefjp.github.io/lang/cpp20/concepts.html
ただ上で言うdraw関数はconstexprなんだけどな・・・

388 名前:デフォルトの名無しさん mailto:sage [2021/12/11(土) 20:57:07.56 ID:VjmhXzGH.net]
>>382
わかりやすかったありがとう
まだmake_hogeみたいな不格好なヘルパ関数が役に立つこともあるのね

389 名前:デフォルトの名無しさん [2021/12/12(日) 02:33:53.10 ID:ECuL7aut.net]
NFTアートとNFTゲームとGameFiとブロックチェーンゲームに
提供する側・作る側として参入しよう。
(むりなら参加する側でもいい)
DAOとPlay-to-Earn(遊んで稼ぐ)が世界の未来になる



390 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 09:13:16.08 ID:2ZUu/eca.net]
C#で作成されたDLLってC++で呼び出せないんでしたっけ?

391 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 10:05:57.23 ID:Rei0r571.net]
>>386
やってみれば?何をしてみたの?

392 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 12:59:03.03 ID:kKgLRxlD.net]
>>386
c++cliのラッパdllを挟んでc#dllを呼ぶとかc#dllをcom参照可能にするとか.NET DLLExportを使うとかあるよ

393 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 13:04:02.42 ID:Rei0r571.net]
>>388
そういうのはできるかどうかを含め、どういう環境で何を対象に何をしたいのかによる。
そんなことすら書いてない人にいきなりキーワードをあげる必要はないよ。

394 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 13:10:20.08 ID:tD0M3iYv.net]
べつにキーワードくらいいいじゃん

395 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 13:17:19.51 ID:Rei0r571.net]
技術に関しては不正確な情報を垂れ流すことほどの害悪はない

396 名前:デフォルトの名無しさん [2021/12/12(日) 14:51:29.97 ID:4sEaLykb.net]
めんどくさい奴だなw

397 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 14:55:11.15 ID:0XY4m15b.net]
悪意を持って嘘をつくのはいかんが
信じていたことが後に間違っていたことに気付くことはあり
それへの虞を言い訳に何もしないやつと
自らの誤りに気付いたときに潔くないやつは生ゴミだ

398 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 15:18:45.20 ID:MG1pihlR.net]
そもそも>>391の言う不正確な情報ってなんだ?

399 名前:デフォルトの名無しさん [2021/12/12(日) 16:31:47.95 ID:4sEaLykb.net]
>>394
Linux環境ではC#のCOM相互運用できないとか、かなあ?



400 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 16:41:36.70 ID:2ZUu/eca.net]
>>387
君は役に立たんなw

>>388
ありがとう
やっぱそういう方法になるんだね

401 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 16:45:20.02 ID:Rei0r571.net]
>>394
今回の話で言えば条件によっては動かないのにさも動くかのようにミスリードする情報
相手の勘違いを指摘する機会がないことにより、結果的に回答にならない情報

402 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 17:00:15.53 ID:ooYWiIrJ.net]
>>395,397
ありとあらゆる環境で動く回答しか認めないとかアスペ全開やなw

403 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 17:05:43.60 ID:Rei0r571.net]
>>398
普通ですよ。環境はおろか困っている状況すら何も書いてないのだから。普通に釣りの気配しかありません。

404 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 17:16:30.63 ID:Rei0r571.net]
あと加えて言うならば、一般に・・・という話なのですが、
runtimeでVMを動かすような言語の場合、あまりnative側からキックするような使い方をしません
組み込みなど、そうせざるを得ない特殊な状況のときくらいですね

405 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 17:18:23.27 ID:tD0M3iYv.net]
んで根掘り葉掘り聞くだけ聞いて結局回答しないパターン、ってのはよく見るな。

406 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 17:26:07.41 ID:Rei0r571.net]
>>401
それは分かりもしないのに回答しようとしたケースですね
全条件想定しないで回答しようとするとそうなります

407 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 17:29:25.52 ID:Rei0r571.net]
もちろん聞いたことに答えがない場合も回答する機会は来ませんけどw

408 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 21:03:58.85 ID:A2l5mzZ3.net]
浮動小数点の0.0以外の真偽値って規定されてるんですか?
2.0 == trueが偽になるのにif(2.0)は真のように振舞うのでよく分からなくなりました

409 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 21:11:05.34 ID:LDYHaH+j.net]
それはtrueが1に変換されて比較してるのでは



410 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 21:13:32.32 ID:2ZUu/eca.net]
0は偽でそれ以外は真
if(5) も if(10) も 0 以外だから真
5も10も真だが 5 == 10 は当然等しくないため偽になる

411 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 21:34:12.15 ID:Rei0r571.net]
>>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

412 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 21:36:42.12 ID:Rei0r571.net]
if (2.0 != 0)はあんまり正確じゃないけどねw

413 名前:デフォルトの名無しさん mailto:sage [2021/12/12(日) 21:40:50.69 ID:f1HMG1tw.net]
当然ながらbool(2.0) == trueとすれば真になるよ

414 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 21:50:35.10 ID:GurY6adw.net]
bool(2.0) == true
2.0 == double(true)
で曖昧にならない
こういうのoperatorとctorでは作れないもんかね

415 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 21:58:10.81 ID:anT0EydK.net]
>2.0 == double(true)

え?

416 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 22:07:54.75 ID:XiOitZFG.net]
最近本当に質問者も回答者も酷いな・・・日本語からやばい
>>410
何が曖昧だと言っていて、こういうのってどういうのなんでしょ?
>>411
え?じゃ何も伝わらない

417 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 22:47:49.66 ID:rx7XzRPV.net]
そういうのを求めるなら上級者の相談室でも作ってそこにいればいいじゃない
人のやり取り見て文句いうだけの人なんて居ても邪魔なだけだし

418 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 22:54:20.23 ID:XiOitZFG.net]
そんな難しい要求してないんだけどw
一応↓なスレッドもありますよ

0からの、超初心者C++相談室
https://mevius.5ch.net/test/read.cgi/tech/1542002113/

419 名前:デフォルトの名無しさん mailto:sage [2021/12/13(月) 23:35:59.51 ID:GurY6adw.net]
何も言ってないやつとじゃ話にならん
マウント取ったつもりになってろよアホ



420 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 01:10:13.82 ID:4HDQQOQ1.net]
ID:XiOitZFG
またコイツ自分賢いと思ってる例のガイジか

421 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 01:43:40.68 ID:vFkeyZ3D.net]
天に唾するクンじゃないよね?

422 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 04:27:52.83 ID:l53ksWPX.net]
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な理由が全然分かりません

423 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 09:36:15.02 ID:jz8gmYNu.net]
arrayは設計悪いね
string_viewみたいなラッパーのほうがマシ

424 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 13:08:07.96 ID:64LuYoGR.net]
arrayはそんなに設計の余地ないし別によくね
ラッパークラスは役割が別だし比較する意味がわからん

425 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 13:45:14.16 ID:NTJkXylC.net]
>>418
こうすればいけるね
波括弧が一つ余計に必要なのがなあ

std::array<std::array<int, 2>, 2> a{{{1, 2}, {3, 4}}};

426 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 15:27:55.81 ID:W58I2MTh.net]
>>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

427 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 19:16:16.31 ID:l53ksWPX.net]
>>421
>>422
ありがとうございます
配列をメンバに持ってるので本来は波括弧が二重に必要になるんですね
今までは1次元でなんとなく配列と同様で動いていたので省略しているという認識がありませんでした

428 名前:デフォルトの名無しさん mailto:sage [2021/12/14(火) 20:13:02.90 ID:kTLKUa7o.net]
a{{1, 2}, {3, 4}}で初期化できるようにしようぜっていう提案もあったけど
初期化ルールがますますカオスになるので却下された

429 名前:デフォルトの名無しさん [2021/12/16(木) 18:55:44.40 ID:Q3qUbeDH.net]
テンプレートで関数の引数を書く方法がわからないんですが

sort(V.begin(), V.end(), ラムダ式)

を自作するにはどうやればいいんでしょうか



430 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 18:59:42.63 ID:oxWy3zzs.net]
まず日本語から勉強してください
「テンプレートで関数の引数を書く方法」と「sort(V.begin(), V.end(), ラムダ式)を自作」には何の関連もありません

431 名前:デフォルトの名無しさん mailto:sage [2021/12/16(木) 18:59:43.14 ID:oxWy3zzs.net]
まず日本語から勉強してください
「テンプレートで関数の引数を書く方法」と「sort(V.begin(), V.end(), ラムダ式)を自作」には何の関連もありません






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<275KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef