!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
C++相談室 part163
https://mevius.5ch.net/test/read.cgi/tech/1672409791/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C++相談室 part164
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 33da-QP0H)
2023/05/09(火) 11:50:52.06ID:EYc2I7oW0404デフォルトの名無しさん (アウアウウー Sabb-hiKC)
2023/07/02(日) 11:59:53.95ID:BV1CApnra >>399
お舞の方が何言ってるかワカラン
>過去にCreateFile(L"漢字.txt", ...)で作ったファイルを、
>WideCharToMultiByteとMultiByteToWideCharの第一引数に明示的にシフトJISのコードページ932を指定するだけで
>CreateFileA(u8"漢字.txt", ...)で開けるようになったとしたら論理鉄器におかしい希ガス
CreateFile と WideCharToMultiByte/MultiByteToWideChar には何の関係も無いぞ
どちらかといえば setlocale/systemlocale とかの話してるなら判らんでもないが
お舞の方が何言ってるかワカラン
>過去にCreateFile(L"漢字.txt", ...)で作ったファイルを、
>WideCharToMultiByteとMultiByteToWideCharの第一引数に明示的にシフトJISのコードページ932を指定するだけで
>CreateFileA(u8"漢字.txt", ...)で開けるようになったとしたら論理鉄器におかしい希ガス
CreateFile と WideCharToMultiByte/MultiByteToWideChar には何の関係も無いぞ
どちらかといえば setlocale/systemlocale とかの話してるなら判らんでもないが
405デフォルトの名無しさん (ワッチョイ 7f28-iz2R)
2023/07/02(日) 12:09:58.45ID:cqAPSm8d0406デフォルトの名無しさん (ワッチョイ 7f28-iz2R)
2023/07/02(日) 12:12:15.47ID:cqAPSm8d0407デフォルトの名無しさん (ワッチョイ ce9a-EKe4)
2023/07/02(日) 14:25:34.89ID:MfIRncIE0 >>403
>>396はエンコーディングの仕方の話ではないんですよね
疑問の答えはここにあった(と思う)
https://upload.wikimedia.org/wikipedia/commons/b/b3/Bank_of_Japan_silver_convertible_one_yen_banknote_1885.jpg
>>396はエンコーディングの仕方の話ではないんですよね
疑問の答えはここにあった(と思う)
https://upload.wikimedia.org/wikipedia/commons/b/b3/Bank_of_Japan_silver_convertible_one_yen_banknote_1885.jpg
408デフォルトの名無しさん (アウアウウー Sabb-hiKC)
2023/07/02(日) 15:11:19.95ID:BV1CApnra 和氣清麻呂好き
409デフォルトの名無しさん (ササクッテロラ Sp5f-UEHP)
2023/07/03(月) 18:00:48.84ID:+/doOPQlp 組み込みの設計技法を学びたいんだけど、静的構造と動的構造の設計を学べるいい書物あったら教えてください
410デフォルトの名無しさん (テテンテンテン MM8e-CxeC)
2023/07/05(水) 19:37:47.51ID:UfO9dhEIM411デフォルトの名無しさん (ワイーワ2 FFfa-QrII)
2023/07/05(水) 19:46:37.42ID:98uidMYlF >>410
Modern C++ Designとか?
Modern C++ Designとか?
412デフォルトの名無しさん (ワッチョイ 7b7c-9nZq)
2023/07/05(水) 19:52:44.79ID:tRsu2qbd0 あれは魔術書過ぎてちょっと…C++03時代の本だから古いし
413デフォルトの名無しさん (オイコラミネオ MMe7-hRAP)
2023/07/05(水) 20:15:53.22ID:XE8fk1ziM 横からだけど組み込みは手続き型なのかイベントドリブンなのかも知らないので知りたいなw
414デフォルトの名無しさん (ワッチョイ c67c-mdfO)
2023/07/06(木) 03:34:48.12ID:s5S2CoPB0 組み込みだから手続き型とか
組み込みだからイベントドリブンとか
そういうのはないよ
組み込みだからイベントドリブンとか
そういうのはないよ
415デフォルトの名無しさん (ワッチョイ 433e-hRAP)
2023/07/06(木) 09:09:22.20ID:a8qSLwwI0416デフォルトの名無しさん (ワッチョイ 06f2-HE4y)
2023/07/06(木) 09:59:15.82ID:ZkyJU/6U0 手続き型かどうかとイベントドリブンかどうかは関係ない概念
417デフォルトの名無しさん (ワッチョイ d701-kcaK)
2023/07/06(木) 14:16:15.16ID:ALXC3HlV0 >>412
横からだが魔術書とか、アンサイクロペディアの内容真に受けてるのか流行ってるのか知らんけど良くない
凝ったメタプログラミングとかしなくても、わりと実用的な知識が書いてあるよ
オブジェクト指向だけだとユーザーに制約を押し付けてしまいがちな部分を、もう少し自由度高く、直交する概念を組み合わせて小さなパーツに分けるのにテンプレートが便利だよとかいう話が書いてある
横からだが魔術書とか、アンサイクロペディアの内容真に受けてるのか流行ってるのか知らんけど良くない
凝ったメタプログラミングとかしなくても、わりと実用的な知識が書いてあるよ
オブジェクト指向だけだとユーザーに制約を押し付けてしまいがちな部分を、もう少し自由度高く、直交する概念を組み合わせて小さなパーツに分けるのにテンプレートが便利だよとかいう話が書いてある
418デフォルトの名無しさん (ワッチョイ df01-Jyjt)
2023/07/06(木) 14:28:39.97ID:a0X6jP530 出版当時の衝撃は魔術と評されるに値したなぁ
今もって難解の書ではある
正座して読むべし
今もって難解の書ではある
正座して読むべし
419デフォルトの名無しさん (ワッチョイ c67c-mdfO)
2023/07/06(木) 15:07:08.13ID:s5S2CoPB0 足が痺れて集中できない
420デフォルトの名無しさん (ワッチョイ 7b7c-9nZq)
2023/07/06(木) 20:08:43.89ID:3MFY2fBc0421はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 433e-hRAP)
2023/07/06(木) 21:07:53.32ID:a8qSLwwI0 C++03 と C++11 の間で大きな溝があるからなぁ。
言語を詳しく知った上でなら C++03 を前提として書かれた本でも
役に立つところを拾って読むということも出来るけど、
不慣れな内には薦められないというのはわかる。
言語を詳しく知った上でなら C++03 を前提として書かれた本でも
役に立つところを拾って読むということも出来るけど、
不慣れな内には薦められないというのはわかる。
422デフォルトの名無しさん (ワッチョイ c67c-mdfO)
2023/07/06(木) 21:11:56.86ID:s5S2CoPB0 メジャーチェンジの上って何て言うんだろう
グレートチェンジ?
グレートチェンジ?
423デフォルトの名無しさん (ワッチョイ d701-kcaK)
2023/07/06(木) 21:51:28.48ID:ALXC3HlV0424デフォルトの名無しさん (ワッチョイ d701-kcaK)
2023/07/06(木) 21:53:09.37ID:ALXC3HlV0 もちろん組み込み学ぶのに適した本だとは思わんけど
425デフォルトの名無しさん (アウアウウー Sabb-hiKC)
2023/07/06(木) 23:37:01.42ID:YLJUKdW5a >>422
新装開店と言いつつ中身は実質閉店詐欺sale
新装開店と言いつつ中身は実質閉店詐欺sale
426デフォルトの名無しさん (ワッチョイ 7f28-iz2R)
2023/07/07(金) 00:10:58.87ID:EP1fLvq90427デフォルトの名無しさん (ワッチョイ 06f2-2tOT)
2023/07/07(金) 00:21:21.09ID:AhT1sfN50 C++なんてもう20年くらいまともに使ってないんだけど大きく変わってるの?
普段使いするような部分で変わったのってどんなのあるの?
普段使いするような部分で変わったのってどんなのあるの?
428デフォルトの名無しさん (オイコラミネオ MMe7-+Mc8)
2023/07/07(金) 00:32:21.86ID:7ps2WMbUM new deleteしない
生のポインタを使わない
moveの意識
生のポインタを使わない
moveの意識
429デフォルトの名無しさん (ワッチョイ df01-Jyjt)
2023/07/07(金) 00:36:54.14ID:2SE8uAkh0430はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 433e-hRAP)
2023/07/07(金) 01:56:31.07ID:gGTaLgTI0 俺もムーブ (というかその前提である右辺値参照も) の存在が大きな差だと思う。
今となっては C++03 では右辺値参照なしでやってたってのが信じられんくらいだ。
今となっては C++03 では右辺値参照なしでやってたってのが信じられんくらいだ。
431デフォルトの名無しさん (ワッチョイ 434e-+Mc8)
2023/07/07(金) 13:56:40.22ID:/sgbjnHO0 右辺値参照とmoveでパラメータや戻り値などにclassのインスタンスを直接使いやすくなって、設計の自由度と安全性が格段に向上したとは思うけど、
その代わり、演算子のオーバーロード時のconstやexplicitの有無など、型推論の仕組みをきちんと理解して適切に記述しないとtemplateで訳わかんないエラーが出て、
初心者殺し度も格段に向上したよねw
その代わり、演算子のオーバーロード時のconstやexplicitの有無など、型推論の仕組みをきちんと理解して適切に記述しないとtemplateで訳わかんないエラーが出て、
初心者殺し度も格段に向上したよねw
432デフォルトの名無しさん (ワッチョイ 0e79-p0MK)
2023/07/07(金) 14:27:35.57ID:tybFBPle0 まさに今20年前のコードメンテしてるからnew delete使ってるよ
C++のランタイムすらリンクしてないからこれnewした時Win32APIの何が呼ばれてるんだろう?HeapAllocだったかな?
C++のランタイムすらリンクしてないからこれnewした時Win32APIの何が呼ばれてるんだろう?HeapAllocだったかな?
433デフォルトの名無しさん (スプッッ Sd22-yGZL)
2023/07/07(金) 14:38:08.14ID:5UFmRPYBd スタティックライブラリがリンクされてるんでしょ
ランダム使用時と完全に同じとは行かないけどほぼ同等の処理のはずだけど
ランダム使用時と完全に同じとは行かないけどほぼ同等の処理のはずだけど
434デフォルトの名無しさん (スプッッ Sd22-yGZL)
2023/07/07(金) 14:38:34.18ID:5UFmRPYBd ランダムじゃなくてランタイム
435デフォルトの名無しさん (ワッチョイ ffb9-BMDt)
2023/07/08(土) 09:03:38.78ID:Iqj4gtss0 g++でVLAを使ってるんですが、宣言時に初期化リスト使うのって未定義ですか?
公式のドキュメントを漁ってるんですが見当たらないので(英語苦手なので見落としてたらすみません)
公式のドキュメントを漁ってるんですが見当たらないので(英語苦手なので見落としてたらすみません)
436デフォルトの名無しさん (スップ Sd3f-hfg2)
2023/07/08(土) 09:37:22.13ID:E0cUKLNxd C++にはそもそもVLAないぞ
非標準で実装されるケースはありうるけどね
非標準で実装されるケースはありうるけどね
437はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f73e-kkOg)
2023/07/08(土) 09:56:47.19ID:svQTfB7/0438はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f73e-kkOg)
2023/07/08(土) 10:03:16.21ID:svQTfB7/0 GCC の具体的なドキュメントとしてはここ。
https://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html
> Variable-length automatic arrays are allowed in ISO C99, and as an extension GCC accepts them in C90 mode and in C++.
https://gcc.gnu.org/onlinedocs/gcc/Variable-Length.html
> Variable-length automatic arrays are allowed in ISO C99, and as an extension GCC accepts them in C90 mode and in C++.
439デフォルトの名無しさん (ワッチョイ ffb9-BMDt)
2023/07/08(土) 10:10:11.44ID:Iqj4gtss0440デフォルトの名無しさん (ワッチョイ 9701-gR7n)
2023/07/08(土) 11:40:41.01ID:hU6KuhT00 コンテナ使えばVLAって最早必要ないような...
441デフォルトの名無しさん (オイコラミネオ MMeb-kkOg)
2023/07/08(土) 12:00:36.50ID:p+sO9/0DM 数年前にc++でありながらvectorすらない実装はあったけど
442デフォルトの名無しさん (スップ Sd3f-hfg2)
2023/07/08(土) 13:06:37.75ID:E0cUKLNxd >>440
禿同
禿同
443デフォルトの名無しさん (ササクッテロラ Sp0b-/+4S)
2023/07/08(土) 15:36:54.89ID:lxagCGE0p CのVLAってスタック使われることもあるんじゃなかったっけか
444デフォルトの名無しさん (ラクッペペ MM8f-VHD8)
2023/07/08(土) 15:51:02.79ID:Wmg0D33kM コンパイラによる
445はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f73e-kkOg)
2023/07/08(土) 18:03:19.11ID:svQTfB7/0 どうしても VLA が必要だとしたら
そもそもヒープアロケーションのコードを書いてるときとか、
変則的なアーキテクチャで仕方がないとか、
C++ の言語機能が完全には使えない状況かな。
あるいはヒープアロケーションのコストを許容できないほど速度的に厳しいとか。
そもそもヒープアロケーションのコードを書いてるときとか、
変則的なアーキテクチャで仕方がないとか、
C++ の言語機能が完全には使えない状況かな。
あるいはヒープアロケーションのコストを許容できないほど速度的に厳しいとか。
446はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f73e-kkOg)
2023/07/08(土) 20:31:31.43ID:svQTfB7/0 話をぶった切る上に去年の話でアレなんだがこの件。
https://mevius.5ch.net/test/read.cgi/tech/1653135809/734
なんの気なしにログを見返してて思い出した。
unexec だ。
https://mevius.5ch.net/test/read.cgi/tech/1653135809/734
なんの気なしにログを見返してて思い出した。
unexec だ。
447デフォルトの名無しさん (ワッチョイ ff7c-DxV6)
2023/07/08(土) 20:45:51.68ID:wtJKE3gc0 もうアセンブラかVerilog使えって感じだな
448デフォルトの名無しさん (ワッチョイ 9ff0-STDj)
2023/07/08(土) 21:25:24.78ID:lX93SXsZ0 世の中には動的確保のコスト計算できない人が多すぎるんだ
449デフォルトの名無しさん (ワッチョイ bf79-CBkq)
2023/07/08(土) 22:15:45.40ID:gvv7KDv40450デフォルトの名無しさん (ワッチョイ d7f0-7EMH)
2023/07/09(日) 04:19:53.74ID:MkrAlSpi0 Windowsのメモリアロケータってクソだよな
451デフォルトの名無しさん (ラクッペペ MM8f-VHD8)
2023/07/09(日) 05:38:04.63ID:4tVwl4EYM せやろか
452デフォルトの名無しさん (ワッチョイ ff7c-DxV6)
2023/07/09(日) 05:40:32.30ID:DZU7rHSU0 Win16からの色々を引きずってるってこと?
453デフォルトの名無しさん (ラクッペペ MM8f-VHD8)
2023/07/09(日) 05:53:12.10ID:xZgYfcZXM 引きずっているのはLocalAlloc
454デフォルトの名無しさん (オイコラミネオ MMeb-STDj)
2023/07/09(日) 07:55:31.77ID:wAJ5czLTM なんとなくメジャーなものをけなして気持ちがよくなってるんだろ
楽だよなそういうので気持ちよくなれる人は
楽だよなそういうので気持ちよくなれる人は
455デフォルトの名無しさん (ワッチョイ d7f0-7EMH)
2023/07/09(日) 09:27:34.88ID:MkrAlSpi0 メジャーだからって完璧に出来ているとは思わない方がいい
456デフォルトの名無しさん (ワッチョイ ff7c-DxV6)
2023/07/09(日) 09:33:30.46ID:DZU7rHSU0 反体制派な俺すげーだろって痛すぎる厨二病は昔からいるよね
457デフォルトの名無しさん (ワッチョイ f74e-STDj)
2023/07/09(日) 09:36:52.25ID:IdmutbDk0 具体的にどういう場面で問題があるのか、可能ならサンプルコードなどを添えて指摘してくれないと、同意しようがないよね
458デフォルトの名無しさん (ワッチョイ d7c0-SCup)
2023/07/09(日) 10:14:00.41ID:+WiQ27SB0 そりゃ様々な用途や優先すべき軸がある中で汎用的にあらゆる用途に高性能であれと言われたら
中庸にするか尖らせて特定用途で使い物にならなくなるかの二択になるよね
中庸にするか尖らせて特定用途で使い物にならなくなるかの二択になるよね
459デフォルトの名無しさん (ワッチョイ 9728-0TTi)
2023/07/09(日) 10:40:38.50ID:ihdHNtRI0 EXEで確保したしたメモリーブロックをdllで解放するときに(そんなことをするなというのはさておき
むしろmalloc()だとリンクするCRTのバージョン相違でトラブルになりかねないから
OSがmalloc()的なことまでしてくれるのは良い事な希ガス知らんけど
むしろmalloc()だとリンクするCRTのバージョン相違でトラブルになりかねないから
OSがmalloc()的なことまでしてくれるのは良い事な希ガス知らんけど
460はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f73e-kkOg)
2023/07/09(日) 10:57:36.03ID:6ZzBc/+b0 C++ なら operator new のオーバーロードなんかも出来るわけだし
コンテナ類もアロケータを差し込むことが出来るわけで
メモリアロケーションに関して過剰なほどのカスタマイズ性がある。
もちろん提供されるアロケータで性能が足りるならそれに越したことは無いが、
足りないときでもなんとかできる可能性があるってのは C++ のいいところだよ。
コンテナ類もアロケータを差し込むことが出来るわけで
メモリアロケーションに関して過剰なほどのカスタマイズ性がある。
もちろん提供されるアロケータで性能が足りるならそれに越したことは無いが、
足りないときでもなんとかできる可能性があるってのは C++ のいいところだよ。
461デフォルトの名無しさん (ワッチョイ 9728-0TTi)
2023/07/09(日) 11:09:45.90ID:ihdHNtRI0 前なんかstd::vector<T>をdllに渡したら(コピー渡ししたら)クラッシュするトラブルに遭遇して
原因はC++のランタイムのバージョン相違やったorz
原因はC++のランタイムのバージョン相違やったorz
462はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f73e-kkOg)
2023/07/09(日) 11:44:01.32ID:6ZzBc/+b0 DLL を跨ぐときは生配列が結局は楽かなぁ。
他環境に移植する予定がないなら COM の流儀に従って SAFEARRAY とか。
他環境に移植する予定がないなら COM の流儀に従って SAFEARRAY とか。
463デフォルトの名無しさん (ワッチョイ d701-/+4S)
2023/07/09(日) 21:30:46.83ID:Y+7J8yUt0 アロケータを指定するときってのは性能どうこうではなく環境や設計上の理由が主だよ
それよりpolymorphic_allocatorはなんでコンテナのコピー時にget_default_resourceを返すんだマジで
それよりpolymorphic_allocatorはなんでコンテナのコピー時にget_default_resourceを返すんだマジで
464デフォルトの名無しさん (ワッチョイ 9701-gR7n)
2023/07/09(日) 21:44:31.99ID:r53YpIy/0 10年くらい前だけど6コア(12スレッド) x 双頭のマシンで
Debianのlibcのmallocをjemallocに置き換えたら
かなり速くなって感動したなぁ
いまのglibcのmallocはどうなんだろ?
Debianのlibcのmallocをjemallocに置き換えたら
かなり速くなって感動したなぁ
いまのglibcのmallocはどうなんだろ?
465デフォルトの名無しさん (ワッチョイ 82f0-rqn1)
2023/07/15(土) 10:34:20.34ID:/MZbR2lO0 最近クラス作るのが面倒な時thread_localのstd::vectorよく使うんだけど
何か問題起きたりする?
何か問題起きたりする?
466デフォルトの名無しさん (ワッチョイ e2f0-WYHp)
2023/07/15(土) 11:05:18.52ID:08dxROCJ0 問題を検証するコードを書いて実験してみれよ
一日で組めるだろ
一日で組めるだろ
467デフォルトの名無しさん (テテンテンテン MM34-Dvnh)
2023/07/15(土) 12:21:20.90ID:lF+Fe8GnM >>466
それ悪魔の証明
それ悪魔の証明
468デフォルトの名無しさん (ワッチョイ 5cfb-cHdk)
2023/07/15(土) 14:11:00.47ID:bqZq+Kwu0 1日で組んだコードも合わせて技術ブログに記事を書くところまでがセット
469デフォルトの名無しさん (ワッチョイ 3279-EJzg)
2023/07/15(土) 14:24:56.68ID:V/XrAlYW0 よく使う割に問題が起きてないならそれは問題ないのでは
証明終わり
証明終わり
470はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bd32-2eqx)
2023/07/15(土) 14:38:32.48ID:e8BGem9r0 >>465
std::vector 型の変数がスレッドローカルとして定義されること自体は問題を引き起こさない。
スレッドローカルな変数はスレッドの生成・解放と同じタイミングで生成・解放される普通の変数。
それで問題が起こるなら単にプログラムのロジックに誤りがあるってだけ。
std::vector 型の変数がスレッドローカルとして定義されること自体は問題を引き起こさない。
スレッドローカルな変数はスレッドの生成・解放と同じタイミングで生成・解放される普通の変数。
それで問題が起こるなら単にプログラムのロジックに誤りがあるってだけ。
471デフォルトの名無しさん (ワッチョイ 915f-9/0y)
2023/07/15(土) 15:24:04.02ID:8R7I+TSs0 「クラス作るのが面倒な時」と「thread_localのstd::vector」の関連が見えないな。
472はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bd32-2eqx)
2023/07/15(土) 16:45:55.27ID:e8BGem9r0 >>741
std::thread は関数オブジェクトを受け取ることが出来る。
スレッドに固有、かつそのスレッド全体で使うようなデータは
その関数オブジェクトが所有するのが常道のひとつ。
しかしスレッドローカル変数もスレッドの寿命と一致する形でのデータ置き場になる。
そういう意味で代替品であると見做すことができる。
という話だと私は解釈したが、 std::vector がどこから出てきたかはわからん。
std::thread は関数オブジェクトを受け取ることが出来る。
スレッドに固有、かつそのスレッド全体で使うようなデータは
その関数オブジェクトが所有するのが常道のひとつ。
しかしスレッドローカル変数もスレッドの寿命と一致する形でのデータ置き場になる。
そういう意味で代替品であると見做すことができる。
という話だと私は解釈したが、 std::vector がどこから出てきたかはわからん。
473はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9832-2eqx)
2023/07/15(土) 19:51:59.74ID:jZQsWptc0 コードで言うなら
https://wandbox.org/permlink/oZ8EAGChqPtobFuY
みたいにするのは面倒だから
https://wandbox.org/permlink/90mvVtrKUca4Iyic
でいいよね?
みたいな話だと思った。
https://wandbox.org/permlink/oZ8EAGChqPtobFuY
みたいにするのは面倒だから
https://wandbox.org/permlink/90mvVtrKUca4Iyic
でいいよね?
みたいな話だと思った。
474デフォルトの名無しさん (オイコラミネオ MM71-9/0y)
2023/07/15(土) 20:03:36.74ID:UiYhW/dJM そもそもの知識がないからpythonみたいにリストにぶち込んで
インデックスですべてやろうとかそんな話かとオモタ
python界はすごいぞ
クラスに変数など作らずすべて辞書にぶち込んで使ってたりする
インデックスですべてやろうとかそんな話かとオモタ
python界はすごいぞ
クラスに変数など作らずすべて辞書にぶち込んで使ってたりする
475デフォルトの名無しさん (オイコラミネオ MM71-9/0y)
2023/07/15(土) 20:19:33.71ID:UiYhW/dJM a = {}
a['taro'] = {"name":"太郎","age":25, "sex":"男"}
a['hanako'] = {"name":"花子","age":18 ,six":"六"}
a['taro'] = {"name":"太郎","age":25, "sex":"男"}
a['hanako'] = {"name":"花子","age":18 ,six":"六"}
476デフォルトの名無しさん (ワッチョイ e2f0-WYHp)
2023/07/15(土) 20:24:16.88ID:08dxROCJ0 変数がすべてバリアントだからなw
477デフォルトの名無しさん (オイコラミネオ MM71-9/0y)
2023/07/15(土) 20:27:48.20ID:UiYhW/dJM if a['taro']["age"] ==a['hanako']["age"]:
これって全然コード補完効かないから脳が死にかける
これって全然コード補完効かないから脳が死にかける
478デフォルトの名無しさん (オイコラミネオ MM71-9/0y)
2023/07/15(土) 20:32:21.17ID:UiYhW/dJM name="name"
age="age"
sex="sex"
six="six"
とかしたらいいんか
if a['taro'][age] ==a['hanako'][age]:
嫌すぎる
age="age"
sex="sex"
six="six"
とかしたらいいんか
if a['taro'][age] ==a['hanako'][age]:
嫌すぎる
479はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 163e-MI76)
2023/07/15(土) 20:42:45.70ID:oCSaktaG0 プログラマではない人間もユーザー層として存在するし
Python はそういう人間にもリーチしてしまったから
割合としてワヤなものもできやすいというのは理解できる。
Python はそういう人間にもリーチしてしまったから
割合としてワヤなものもできやすいというのは理解できる。
480デフォルトの名無しさん (オイコラミネオ MM71-9/0y)
2023/07/15(土) 20:45:00.27ID:UiYhW/dJM a['taro'] = {"name":"太郎","age":25, "sex":"男"}
だけ見るとjsonなのかとも思える
だけ見るとjsonなのかとも思える
481デフォルトの名無しさん (JP 0H8a-PPvg)
2023/07/15(土) 21:13:09.66ID:2P0YU21lH あるクラスにあるクラスのコレクションを抱かさせてるなんて良くあると思うけど
その際に外部からそのコレクションを参照したい場合、どうするのが定石なの?
class Datas
{private:std::vector<Data> _datas;};
publicにするとか、std::vector<Data>::iteratorをpublicにするとか
const Data& operator[](int index)をpublicにするとかいろいろあると思うけど
その際に外部からそのコレクションを参照したい場合、どうするのが定石なの?
class Datas
{private:std::vector<Data> _datas;};
publicにするとか、std::vector<Data>::iteratorをpublicにするとか
const Data& operator[](int index)をpublicにするとかいろいろあると思うけど
482デフォルトの名無しさん (オイコラミネオ MM71-9/0y)
2023/07/15(土) 21:18:25.83ID:UiYhW/dJM ファーストクラスコレクションの話?
483デフォルトの名無しさん (ワッチョイ df01-L4gQ)
2023/07/15(土) 21:22:12.84ID:wfhnDtnz0 単数: datum
複数: data
複数: data
484デフォルトの名無しさん (オイコラミネオ MM71-9/0y)
2023/07/15(土) 21:24:39.81ID:UiYhW/dJM 今日本屋で○○データムと言う本があった
DATAの単数形がdatumと言うことにこだわる大人って理系だけなんだろうなと感じたらこれだよ
即出て来た
DATAの単数形がdatumと言うことにこだわる大人って理系だけなんだろうなと感じたらこれだよ
即出て来た
485デフォルトの名無しさん (ワッチョイ df01-L4gQ)
2023/07/15(土) 21:35:08.39ID:wfhnDtnz0 datumに拘ってるのではなくdatasなんて言葉はない
486デフォルトの名無しさん (JP 0H8a-PPvg)
2023/07/15(土) 21:43:33.89ID:2P0YU21lH そこか、英単語をぐぐったら解決しました。
ありがとうございました
ありがとうございました
487はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 163e-MI76)
2023/07/15(土) 21:58:55.40ID:oCSaktaG0 >>481
場合による。
見せる相手が最初から限定的であるような場合はフレンドを宣言すればいい。
コンテナ系クラスとかは内部的にはたぶんノードを表すクラスとか
も使ってると思うけどそういう感じで密接に関連がありつつ
他では使う可能性がないような強い関係性がある場合はフレンドにする。
データを保持するためだけの汎用クラスとして定義するならデータメンバは public にしてもかまわない。
std::pair とかはそうなってる。
もうちょっと疎結合にしたいときなら許したい操作だけをpublic なメンバ関数として公開すると思う。
既存のクラスを使いつつ外部に公開するのはサブセットにしたいという場合なら
プライベート継承した上で公開したいメンバだけ using するという方法も取れる。
#include <iostream>
#include <vector>
struct Data : private std::vector<int> {
using std::vector<int>::vector;
using std::vector<int>::operator[];
using std::vector<int>::begin;
using std::vector<int>::end;
};
int main(void) {
Data foo = {1, 2, 3};
for (int x : foo) {
std::cout << x << std::endl;
}
}
場合による。
見せる相手が最初から限定的であるような場合はフレンドを宣言すればいい。
コンテナ系クラスとかは内部的にはたぶんノードを表すクラスとか
も使ってると思うけどそういう感じで密接に関連がありつつ
他では使う可能性がないような強い関係性がある場合はフレンドにする。
データを保持するためだけの汎用クラスとして定義するならデータメンバは public にしてもかまわない。
std::pair とかはそうなってる。
もうちょっと疎結合にしたいときなら許したい操作だけをpublic なメンバ関数として公開すると思う。
既存のクラスを使いつつ外部に公開するのはサブセットにしたいという場合なら
プライベート継承した上で公開したいメンバだけ using するという方法も取れる。
#include <iostream>
#include <vector>
struct Data : private std::vector<int> {
using std::vector<int>::vector;
using std::vector<int>::operator[];
using std::vector<int>::begin;
using std::vector<int>::end;
};
int main(void) {
Data foo = {1, 2, 3};
for (int x : foo) {
std::cout << x << std::endl;
}
}
488デフォルトの名無しさん (ワッチョイ df01-L4gQ)
2023/07/15(土) 22:04:51.15ID:wfhnDtnz0 >>481
privateメンバなのだから
できるだけ外部からそのコレクションを参照しないように設計するべきだと思うよ
どうしてもってならiteratorではなくconst_iteratorにするとか
あなたが書いてるようにconst Data&を返すaccessorを実装するとか
privateメンバなのだから
できるだけ外部からそのコレクションを参照しないように設計するべきだと思うよ
どうしてもってならiteratorではなくconst_iteratorにするとか
あなたが書いてるようにconst Data&を返すaccessorを実装するとか
489デフォルトの名無しさん (ワッチョイ 847c-zIhc)
2023/07/15(土) 22:07:48.52ID:BdK15TwX0 "HogehogeData"という名前で定義されたプログラム上の存在があったら
その複数形はHogehogeDatasと呼ぶしかない
気持ち悪くてもしょうがないんだよ
その複数形はHogehogeDatasと呼ぶしかない
気持ち悪くてもしょうがないんだよ
490デフォルトの名無しさん (オイコラミネオ MM71-9/0y)
2023/07/15(土) 22:15:14.37ID:UiYhW/dJM ファーストクラスコレクションにしないならその実装は不要だ
基本的に存在意味がない
基本的に存在意味がない
491はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 163e-MI76)
2023/07/15(土) 22:20:38.51ID:oCSaktaG0 ワイはプログラミング言語 Scheme を使ってるんやが Scheme の仕様には datum という語が出てくる。
シリアライズの単位に関する概念なのでリストひとつも datum と (つまり単数形で) 呼ばれるのが
ちょっとモニョッとする。
シリアライズの単位に関する概念なのでリストひとつも datum と (つまり単数形で) 呼ばれるのが
ちょっとモニョッとする。
492デフォルトの名無しさん (JP 0H8a-PPvg)
2023/07/16(日) 08:28:58.24ID:PzNRrLhAH どうでもいいことを突っ込んでる人いますけど
Datas=>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Data=>aaaaaaaaaaaaaaaa
と置換してください
Datas=>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Data=>aaaaaaaaaaaaaaaa
と置換してください
493デフォルトの名無しさん (アウアウウー Sa3a-ZX0e)
2023/07/16(日) 09:51:34.88ID:Po24/3Vva hogehogetoyukainanakamatati
で解決
で解決
494デフォルトの名無しさん (ワッチョイ 3279-EJzg)
2023/07/16(日) 16:16:15.89ID:z7qY/utw0 powershellはJSONやxmlをその構造のまま扱えたりオブジェクト(PSCustomObject)にも変換できてpythonなんかより小奇麗に書けますよっと
>>478だとif ($a.tsaro.age -eq $a.hanako.age) { ... という具合
>>478だとif ($a.tsaro.age -eq $a.hanako.age) { ... という具合
495デフォルトの名無しさん (ワッチョイ 3279-EJzg)
2023/07/16(日) 16:20:50.17ID:z7qY/utw0 powershellはC#とシームレスに連携する手段もあってpowershellで苦手な再帰処理とかをC#コードに逃がしてpowershell機能を使いたい部分はActionやFuncから呼び出す事もできますよっと
496デフォルトの名無しさん (ワッチョイ 3279-EJzg)
2023/07/16(日) 16:21:58.50ID:z7qY/utw0 よく見たらここC++スレだね
俺の事は忘れてください
俺の事は忘れてください
497デフォルトの名無しさん (ワッチョイ 0928-rP6O)
2023/07/17(月) 18:33:54.32ID:mG7BHGLy0 質問なのですがclass Datasというクラスがあってstd:::vector<Datas> vec((size_t)100); であるときに
vec[k]の場所にn個の場所を空けたい(値は初期化済Datasオブジェクトなら何でも良い)場合どう書くべき?
やっぱ手動でsz = vec.size(); vec.resize(sz + n);して既存要素vec[k..sz-1]を後ろ(vec[k+n..])にコピーする --- (1)
のが最速?
仮にstd::vector<T>::insertを使うと
Datas x; // (A)
vec.insert(std::next(vec.begin(), k), n, x); // (B)
になると思うのですが、なんか(A)で不必要にオブジェクトを1個構築せねばならないのと
(B)で多分デフォルトコンストラクタではなくコピコンがn回呼ばれるのちょっち嫌
(なぜなら(1)のコピーとn個分の場所の確保に加えて、xをn回コピーするという余デフォルト構築よりも遅そうな処理をするから
vec[k]の場所にn個の場所を空けたい(値は初期化済Datasオブジェクトなら何でも良い)場合どう書くべき?
やっぱ手動でsz = vec.size(); vec.resize(sz + n);して既存要素vec[k..sz-1]を後ろ(vec[k+n..])にコピーする --- (1)
のが最速?
仮にstd::vector<T>::insertを使うと
Datas x; // (A)
vec.insert(std::next(vec.begin(), k), n, x); // (B)
になると思うのですが、なんか(A)で不必要にオブジェクトを1個構築せねばならないのと
(B)で多分デフォルトコンストラクタではなくコピコンがn回呼ばれるのちょっち嫌
(なぜなら(1)のコピーとn個分の場所の確保に加えて、xをn回コピーするという余デフォルト構築よりも遅そうな処理をするから
498はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 163e-MI76)
2023/07/17(月) 20:23:35.30ID:YifLUjyU0499デフォルトの名無しさん (ワッチョイ 915f-9/0y)
2023/07/17(月) 21:47:09.31ID:I9Lq0d6Q0 >>497
無駄なデフォルトコンストラクタやコピーを削って極力ムーブで済ませようと思ったら
sz, k, n の大小関係ごとに場合分けして move_iterator 経由の insert とか使い分ければ
いけそうだけど、面倒なわりに見合うほど効率改善しそうな気はしない。
無駄なデフォルトコンストラクタやコピーを削って極力ムーブで済ませようと思ったら
sz, k, n の大小関係ごとに場合分けして move_iterator 経由の insert とか使い分ければ
いけそうだけど、面倒なわりに見合うほど効率改善しそうな気はしない。
500デフォルトの名無しさん (ワッチョイ 82f0-rqn1)
2023/07/17(月) 22:08:16.87ID:kACYNrgv0 書き込みはそこまで遅くないから労力に見合わないだろうね
501デフォルトの名無しさん (スッップ Sd94-v8RM)
2023/07/17(月) 22:54:28.45ID:vqJJKRdWd 速度を気にするなら実測しないと始まらないよ。
502デフォルトの名無しさん (ワッチョイ ae7a-CYkg)
2023/07/17(月) 23:18:54.88ID:vGotTgNV0 リアルタイムOSのタスクのように無限ループが前提のとき
TASK Task1() {
while(1) {
Obj1 obj = Device::GetObj();
:
:
}
のようにobjを使う場合に、GetObjが内部でnewされていると、この作りではいつかメモリ不足になってしまいます。
そうなると自作でないクラスのメソッドは使う前にnewの有無をすべて調べなければならなくなるように思います。
実際はそんな不条理はないはずで、このような問題はどう対処するのがいいですか。
TASK Task1() {
while(1) {
Obj1 obj = Device::GetObj();
:
:
}
のようにobjを使う場合に、GetObjが内部でnewされていると、この作りではいつかメモリ不足になってしまいます。
そうなると自作でないクラスのメソッドは使う前にnewの有無をすべて調べなければならなくなるように思います。
実際はそんな不条理はないはずで、このような問題はどう対処するのがいいですか。
503デフォルトの名無しさん (ワッチョイ df01-L4gQ)
2023/07/17(月) 23:25:49.78ID:CT+u9aWW0■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 【日本大使館】中国在留邦人は安全確保を ★2 [ぐれ★]
- 【実況】博衣こよりのえちえち朝こよ🧪
- 【高市刺客】 自民党「公明党の斉藤代表と闘う! 衆議院広島3区に公認候補を立てるぞ😤」 [485983549]
- 安倍晋三の遺産、日銀ETF売却終了予定は2138年 [115996789]
- 「これが完成された醜い姿である>>1」←これなに?
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
- 🏡
