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


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

C++相談室 part164



1 名前:デフォルトの名無しさん (ワッチョイ 33da-QP0H) mailto:sage [2023/05/09(火) 11:50:52.06 ID:EYc2I7oW0.net]
!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

433 名前:デフォルトの名無しさん (アウアウウー Sabb-hiKC) mailto:sage [2023/07/06(木) 23:37:01.42 ID:YLJUKdW5a.net]
>>422
新装開店と言いつつ中身は実質閉店詐欺sale

434 名前:デフォルトの名無しさん (ワッチョイ 7f28-iz2R) mailto:sage [2023/07/07(金) 00:10:58.87 ID:EP1fLvq90.net]
>>412
ほんそれ
積読のままになってる……

435 名前:デフォルトの名無しさん (ワッチョイ 06f2-2tOT) mailto:sage [2023/07/07(金) 00:21:21.09 ID:AhT1sfN50.net]
C++なんてもう20年くらいまともに使ってないんだけど大きく変わってるの?
普段使いするような部分で変わったのってどんなのあるの?

436 名前:デフォルトの名無しさん (オイコラミネオ MMe7-+Mc8) mailto:sage [2023/07/07(金) 00:32:21.86 ID:7ps2WMbUM.net]
new deleteしない
生のポインタを使わない
moveの意識

437 名前:デフォルトの名無しさん (ワッチョイ df01-Jyjt) mailto:sage [2023/07/07(金) 00:36:54.14 ID:2SE8uAkh0.net]
>>427
moveが一番大きいかな?
生ポインタは20年前でも使わない人は使わなかった

438 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 433e-hRAP) mailto:sage [2023/07/07(金) 01:56:31.07 ID:gGTaLgTI0.net]
俺もムーブ (というかその前提である右辺値参照も) の存在が大きな差だと思う。
今となっては C++03 では右辺値参照なしでやってたってのが信じられんくらいだ。

439 名前:デフォルトの名無しさん (ワッチョイ 434e-+Mc8) mailto:sage [2023/07/07(金) 13:56:40.22 ID:/sgbjnHO0.net]
右辺値参照とmoveでパラメータや戻り値などにclassのインスタンスを直接使いやすくなって、設計の自由度と安全性が格段に向上したとは思うけど、
その代わり、演算子のオーバーロード時のconstやexplicitの有無など、型推論の仕組みをきちんと理解して適切に記述しないとtemplateで訳わかんないエラーが出て、
初心者殺し度も格段に向上したよねw

440 名前:デフォルトの名無しさん (ワッチョイ 0e79-p0MK) mailto:sage [2023/07/07(金) 14:27:35.57 ID:tybFBPle0.net]
まさに今20年前のコードメンテしてるからnew delete使ってるよ
C++のランタイムすらリンクしてないからこれnewした時Win32APIの何が呼ばれてるんだろう?HeapAllocだったかな?

441 名前:デフォルトの名無しさん (スプッッ Sd22-yGZL) [2023/07/07(金) 14:38:08.14 ID:5UFmRPYBd.net]
スタティックライブラリがリンクされてるんでしょ
ランダム使用時と完全に同じとは行かないけどほぼ同等の処理のはずだけど



442 名前:デフォルトの名無しさん (スプッッ Sd22-yGZL) [2023/07/07(金) 14:38:34.18 ID:5UFmRPYBd.net]
ランダムじゃなくてランタイム

443 名前:デフォルトの名無しさん (ワッチョイ ffb9-BMDt) [2023/07/08(土) 09:03:38.78 ID:Iqj4gtss0.net]
g++でVLAを使ってるんですが、宣言時に初期化リスト使うのって未定義ですか?
公式のドキュメントを漁ってるんですが見当たらないので(英語苦手なので見落としてたらすみません)

444 名前:デフォルトの名無しさん (スップ Sd3f-hfg2) mailto:sage [2023/07/08(土) 09:37:22.13 ID:E0cUKLNxd.net]
C++にはそもそもVLAないぞ
非標準で実装されるケースはありうるけどね

445 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f73e-kkOg) mailto:sage [2023/07/08(土) 09:56:47.19 ID:svQTfB7/0.net]
>>435-436
C と同等の VLA を使えるように拡張されている旨はちゃんとドキュメントに書かれてる。
しかし C の VLA では初期化子を書けないことになってる。

446 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f73e-kkOg) mailto:sage [2023/07/08(土) 10:03:16.21 ID:svQTfB7/0.net]
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++.

447 名前:デフォルトの名無しさん (ワッチョイ ffb9-BMDt) [2023/07/08(土) 10:10:11.44 ID:Iqj4gtss0.net]
>>436
はい、処理系依存ということは認識してます
>>437,438
ありがとうございます!

448 名前:デフォルトの名無しさん (ワッチョイ 9701-gR7n) mailto:sage [2023/07/08(土) 11:40:41.01 ID:hU6KuhT00.net]
コンテナ使えばVLAって最早必要ないような...

449 名前:デフォルトの名無しさん (オイコラミネオ MMeb-kkOg) mailto:sage [2023/07/08(土) 12:00:36.50 ID:p+sO9/0DM.net]
数年前にc++でありながらvectorすらない実装はあったけど

450 名前:デフォルトの名無しさん (スップ Sd3f-hfg2) mailto:sage [2023/07/08(土) 13:06:37.75 ID:E0cUKLNxd.net]
>>440
禿同

451 名前:デフォルトの名無しさん (ササクッテロラ Sp0b-/+4S) [2023/07/08(土) 15:36:54.89 ID:lxagCGE0p.net]
CのVLAってスタック使われることもあるんじゃなかったっけか



452 名前:デフォルトの名無しさん (ラクッペペ MM8f-VHD8) mailto:sage [2023/07/08(土) 15:51:02.79 ID:Wmg0D33kM.net]
コンパイラによる

453 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f73e-kkOg) mailto:sage [2023/07/08(土) 18:03:19.11 ID:svQTfB7/0.net]
どうしても VLA が必要だとしたら
そもそもヒープアロケーションのコードを書いてるときとか、
変則的なアーキテクチャで仕方がないとか、
C++ の言語機能が完全には使えない状況かな。

あるいはヒープアロケーションのコストを許容できないほど速度的に厳しいとか。

454 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f73e-kkOg) mailto:sage [2023/07/08(土) 20:31:31.43 ID:svQTfB7/0.net]
話をぶった切る上に去年の話でアレなんだがこの件。
https://mevius.5ch.net/test/read.cgi/tech/1653135809/734
なんの気なしにログを見返してて思い出した。
unexec だ。

455 名前:デフォルトの名無しさん (ワッチョイ ff7c-DxV6) mailto:sage [2023/07/08(土) 20:45:51.68 ID:wtJKE3gc0.net]
もうアセンブラかVerilog使えって感じだな

456 名前:デフォルトの名無しさん (ワッチョイ 9ff0-STDj) mailto:sage [2023/07/08(土) 21:25:24.78 ID:lX93SXsZ0.net]
世の中には動的確保のコスト計算できない人が多すぎるんだ

457 名前:デフォルトの名無しさん (ワッチョイ bf79-CBkq) mailto:sage [2023/07/08(土) 22:15:45.40 ID:gvv7KDv40.net]
>>433
ちゃうちゃう、 new deleteのソースアセンブラに吐かせたの見たらGlobalAlloc GlobalFree使ってるわ
さすがにGMEM_FIXEDだったけど

458 名前:デフォルトの名無しさん (ワッチョイ d7f0-7EMH) mailto:sage [2023/07/09(日) 04:19:53.74 ID:MkrAlSpi0.net]
Windowsのメモリアロケータってクソだよな

459 名前:デフォルトの名無しさん (ラクッペペ MM8f-VHD8) mailto:sage [2023/07/09(日) 05:38:04.63 ID:4tVwl4EYM.net]
せやろか

460 名前:デフォルトの名無しさん (ワッチョイ ff7c-DxV6) mailto:sage [2023/07/09(日) 05:40:32.30 ID:DZU7rHSU0.net]
Win16からの色々を引きずってるってこと?

461 名前:デフォルトの名無しさん (ラクッペペ MM8f-VHD8) mailto:sage [2023/07/09(日) 05:53:12.10 ID:xZgYfcZXM.net]
引きずっているのはLocalAlloc



462 名前:デフォルトの名無しさん (オイコラミネオ MMeb-STDj) mailto:sage [2023/07/09(日) 07:55:31.77 ID:wAJ5czLTM.net]
なんとなくメジャーなものをけなして気持ちがよくなってるんだろ
楽だよなそういうので気持ちよくなれる人は

463 名前:デフォルトの名無しさん (ワッチョイ d7f0-7EMH) mailto:sage [2023/07/09(日) 09:27:34.88 ID:MkrAlSpi0.net]
メジャーだからって完璧に出来ているとは思わない方がいい

464 名前:デフォルトの名無しさん (ワッチョイ ff7c-DxV6) mailto:sage [2023/07/09(日) 09:33:30.46 ID:DZU7rHSU0.net]
反体制派な俺すげーだろって痛すぎる厨二病は昔からいるよね

465 名前:デフォルトの名無しさん (ワッチョイ f74e-STDj) mailto:sage [2023/07/09(日) 09:36:52.25 ID:IdmutbDk0.net]
具体的にどういう場面で問題があるのか、可能ならサンプルコードなどを添えて指摘してくれないと、同意しようがないよね

466 名前:デフォルトの名無しさん (ワッチョイ d7c0-SCup) mailto:sage [2023/07/09(日) 10:14:00.41 ID:+WiQ27SB0.net]
そりゃ様々な用途や優先すべき軸がある中で汎用的にあらゆる用途に高性能であれと言われたら
中庸にするか尖らせて特定用途で使い物にならなくなるかの二択になるよね

467 名前:デフォルトの名無しさん (ワッチョイ 9728-0TTi) mailto:sage [2023/07/09(日) 10:40:38.50 ID:ihdHNtRI0.net]
EXEで確保したしたメモリーブロックをdllで解放するときに(そんなことをするなというのはさておき
むしろmalloc()だとリンクするCRTのバージョン相違でトラブルになりかねないから
OSがmalloc()的なことまでしてくれるのは良い事な希ガス知らんけど

468 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f73e-kkOg) mailto:sage [2023/07/09(日) 10:57:36.03 ID:6ZzBc/+b0.net]
C++ なら operator new のオーバーロードなんかも出来るわけだし
コンテナ類もアロケータを差し込むことが出来るわけで
メモリアロケーションに関して過剰なほどのカスタマイズ性がある。

もちろん提供されるアロケータで性能が足りるならそれに越したことは無いが、
足りないときでもなんとかできる可能性があるってのは C++ のいいところだよ。

469 名前:デフォルトの名無しさん (ワッチョイ 9728-0TTi) mailto:sage [2023/07/09(日) 11:09:45.90 ID:ihdHNtRI0.net]
前なんかstd::vector<T>をdllに渡したら(コピー渡ししたら)クラッシュするトラブルに遭遇して
原因はC++のランタイムのバージョン相違やったorz

470 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ f73e-kkOg) mailto:sage [2023/07/09(日) 11:44:01.32 ID:6ZzBc/+b0.net]
DLL を跨ぐときは生配列が結局は楽かなぁ。
他環境に移植する予定がないなら COM の流儀に従って SAFEARRAY とか。

471 名前:デフォルトの名無しさん (ワッチョイ d701-/+4S) [2023/07/09(日) 21:30:46.83 ID:Y+7J8yUt0.net]
アロケータを指定するときってのは性能どうこうではなく環境や設計上の理由が主だよ
それよりpolymorphic_allocatorはなんでコンテナのコピー時にget_default_resourceを返すんだマジで



472 名前:デフォルトの名無しさん (ワッチョイ 9701-gR7n) mailto:sage [2023/07/09(日) 21:44:31.99 ID:r53YpIy/0.net]
10年くらい前だけど6コア(12スレッド) x 双頭のマシンで
Debianのlibcのmallocをjemallocに置き換えたら
かなり速くなって感動したなぁ
いまのglibcのmallocはどうなんだろ?

473 名前:デフォルトの名無しさん (ワッチョイ 82f0-rqn1) mailto:sage [2023/07/15(土) 10:34:20.34 ID:/MZbR2lO0.net]
最近クラス作るのが面倒な時thread_localのstd::vectorよく使うんだけど
何か問題起きたりする?

474 名前:デフォルトの名無しさん (ワッチョイ e2f0-WYHp) mailto:sage [2023/07/15(土) 11:05:18.52 ID:08dxROCJ0.net]
問題を検証するコードを書いて実験してみれよ
一日で組めるだろ

475 名前:デフォルトの名無しさん (テテンテンテン MM34-Dvnh) mailto:sage [2023/07/15(土) 12:21:20.90 ID:lF+Fe8GnM.net]
>>466
それ悪魔の証明

476 名前:デフォルトの名無しさん (ワッチョイ 5cfb-cHdk) mailto:sage [2023/07/15(土) 14:11:00.47 ID:bqZq+Kwu0.net]
1日で組んだコードも合わせて技術ブログに記事を書くところまでがセット

477 名前:デフォルトの名無しさん (ワッチョイ 3279-EJzg) mailto:sage [2023/07/15(土) 14:24:56.68 ID:V/XrAlYW0.net]
よく使う割に問題が起きてないならそれは問題ないのでは
証明終わり

478 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bd32-2eqx) mailto:sage [2023/07/15(土) 14:38:32.48 ID:e8BGem9r0.net]
>>465
std::vector 型の変数がスレッドローカルとして定義されること自体は問題を引き起こさない。
スレッドローカルな変数はスレッドの生成・解放と同じタイミングで生成・解放される普通の変数。
それで問題が起こるなら単にプログラムのロジックに誤りがあるってだけ。

479 名前:デフォルトの名無しさん (ワッチョイ 915f-9/0y) mailto:sage [2023/07/15(土) 15:24:04.02 ID:8R7I+TSs0.net]
「クラス作るのが面倒な時」と「thread_localのstd::vector」の関連が見えないな。

480 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bd32-2eqx) mailto:sage [2023/07/15(土) 16:45:55.27 ID:e8BGem9r0.net]
>>741
std::thread は関数オブジェクトを受け取ることが出来る。
スレッドに固有、かつそのスレッド全体で使うようなデータは
その関数オブジェクトが所有するのが常道のひとつ。
しかしスレッドローカル変数もスレッドの寿命と一致する形でのデータ置き場になる。
そういう意味で代替品であると見做すことができる。

という話だと私は解釈したが、 std::vector がどこから出てきたかはわからん。

481 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9832-2eqx) [2023/07/15(土) 19:51:59.74 ID:jZQsWptc0.net]
コードで言うなら
https://wandbox.org/permlink/oZ8EAGChqPtobFuY
みたいにするのは面倒だから
https://wandbox.org/permlink/90mvVtrKUca4Iyic
でいいよね?

みたいな話だと思った。



482 名前:デフォルトの名無しさん (オイコラミネオ MM71-9/0y) mailto:sage [2023/07/15(土) 20:03:36.74 ID:UiYhW/dJM.net]
そもそもの知識がないからpythonみたいにリストにぶち込んで
インデックスですべてやろうとかそんな話かとオモタ

python界はすごいぞ
クラスに変数など作らずすべて辞書にぶち込んで使ってたりする

483 名前:デフォルトの名無しさん (オイコラミネオ MM71-9/0y) mailto:sage [2023/07/15(土) 20:19:33.71 ID:UiYhW/dJM.net]
a = {}
a['taro'] = {"name":"太郎","age":25, "sex":"男"}
a['hanako'] = {"name":"花子","age":18 ,six":"六"}

484 名前:デフォルトの名無しさん (ワッチョイ e2f0-WYHp) mailto:sage [2023/07/15(土) 20:24:16.88 ID:08dxROCJ0.net]
変数がすべてバリアントだからなw

485 名前:デフォルトの名無しさん (オイコラミネオ MM71-9/0y) mailto:sage [2023/07/15(土) 20:27:48.20 ID:UiYhW/dJM.net]
if a['taro']["age"] ==a['hanako']["age"]:

これって全然コード補完効かないから脳が死にかける

486 名前:デフォルトの名無しさん (オイコラミネオ MM71-9/0y) mailto:sage [2023/07/15(土) 20:32:21.17 ID:UiYhW/dJM.net]
name="name"
age="age"
sex="sex"
six="six"

とかしたらいいんか
if a['taro'][age] ==a['hanako'][age]:
嫌すぎる

487 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 163e-MI76) mailto:sage [2023/07/15(土) 20:42:45.70 ID:oCSaktaG0.net]
プログラマではない人間もユーザー層として存在するし
Python はそういう人間にもリーチしてしまったから
割合としてワヤなものもできやすいというのは理解できる。

488 名前:デフォルトの名無しさん (オイコラミネオ MM71-9/0y) mailto:sage [2023/07/15(土) 20:45:00.27 ID:UiYhW/dJM.net]
a['taro'] = {"name":"太郎","age":25, "sex":"男"}
だけ見るとjsonなのかとも思える

489 名前:デフォルトの名無しさん (JP 0H8a-PPvg) [2023/07/15(土) 21:13:09.66 ID:2P0YU21lH.net]
あるクラスにあるクラスのコレクションを抱かさせてるなんて良くあると思うけど
その際に外部からそのコレクションを参照したい場合、どうするのが定石なの?
class Datas
{private:std::vector<Data> _datas;};

publicにするとか、std::vector<Data>::iteratorをpublicにするとか
const Data& operator[](int index)をpublicにするとかいろいろあると思うけど

490 名前:デフォルトの名無しさん (オイコラミネオ MM71-9/0y) mailto:sage [2023/07/15(土) 21:18:25.83 ID:UiYhW/dJM.net]
ファーストクラスコレクションの話?

491 名前:デフォルトの名無しさん (ワッチョイ df01-L4gQ) mailto:sage [2023/07/15(土) 21:22:12.84 ID:wfhnDtnz0.net]
単数: datum
複数: data



492 名前:デフォルトの名無しさん (オイコラミネオ MM71-9/0y) mailto:sage [2023/07/15(土) 21:24:39.81 ID:UiYhW/dJM.net]
今日本屋で○○データムと言う本があった
DATAの単数形がdatumと言うことにこだわる大人って理系だけなんだろうなと感じたらこれだよ
即出て来た

493 名前:デフォルトの名無しさん (ワッチョイ df01-L4gQ) mailto:sage [2023/07/15(土) 21:35:08.39 ID:wfhnDtnz0.net]
datumに拘ってるのではなくdatasなんて言葉はない

494 名前:デフォルトの名無しさん (JP 0H8a-PPvg) [2023/07/15(土) 21:43:33.89 ID:2P0YU21lH.net]
そこか、英単語をぐぐったら解決しました。
ありがとうございました

495 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 163e-MI76) mailto:sage [2023/07/15(土) 21:58:55.40 ID:oCSaktaG0.net]
>>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;
}
}

496 名前:デフォルトの名無しさん (ワッチョイ df01-L4gQ) mailto:sage [2023/07/15(土) 22:04:51.15 ID:wfhnDtnz0.net]
>>481
privateメンバなのだから
できるだけ外部からそのコレクションを参照しないように設計するべきだと思うよ
どうしてもってならiteratorではなくconst_iteratorにするとか
あなたが書いてるようにconst Data&を返すaccessorを実装するとか

497 名前:デフォルトの名無しさん (ワッチョイ 847c-zIhc) mailto:sage [2023/07/15(土) 22:07:48.52 ID:BdK15TwX0.net]
"HogehogeData"という名前で定義されたプログラム上の存在があったら
その複数形はHogehogeDatasと呼ぶしかない
気持ち悪くてもしょうがないんだよ

498 名前:デフォルトの名無しさん (オイコラミネオ MM71-9/0y) mailto:sage [2023/07/15(土) 22:15:14.37 ID:UiYhW/dJM.net]
ファーストクラスコレクションにしないならその実装は不要だ
基本的に存在意味がない

499 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 163e-MI76) mailto:sage [2023/07/15(土) 22:20:38.51 ID:oCSaktaG0.net]
ワイはプログラミング言語 Scheme を使ってるんやが Scheme の仕様には datum という語が出てくる。
シリアライズの単位に関する概念なのでリストひとつも datum と (つまり単数形で) 呼ばれるのが
ちょっとモニョッとする。

500 名前:デフォルトの名無しさん (JP 0H8a-PPvg) [2023/07/16(日) 08:28:58.24 ID:PzNRrLhAH.net]
どうでもいいことを突っ込んでる人いますけど
Datas=>aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
Data=>aaaaaaaaaaaaaaaa
と置換してください

501 名前:デフォルトの名無しさん (アウアウウー Sa3a-ZX0e) [2023/07/16(日) 09:51:34.88 ID:Po24/3Vva.net]
hogehogetoyukainanakamatati
で解決



502 名前:デフォルトの名無しさん (ワッチョイ 3279-EJzg) mailto:sage [2023/07/16(日) 16:16:15.89 ID:z7qY/utw0.net]
powershellはJSONやxmlをその構造のまま扱えたりオブジェクト(PSCustomObject)にも変換できてpythonなんかより小奇麗に書けますよっと
>>478だとif ($a.tsaro.age -eq $a.hanako.age) { ... という具合

503 名前:デフォルトの名無しさん (ワッチョイ 3279-EJzg) mailto:sage [2023/07/16(日) 16:20:50.17 ID:z7qY/utw0.net]
powershellはC#とシームレスに連携する手段もあってpowershellで苦手な再帰処理とかをC#コードに逃がしてpowershell機能を使いたい部分はActionやFuncから呼び出す事もできますよっと

504 名前:デフォルトの名無しさん (ワッチョイ 3279-EJzg) mailto:sage [2023/07/16(日) 16:21:58.50 ID:z7qY/utw0.net]
よく見たらここC++スレだね
俺の事は忘れてください

505 名前:デフォルトの名無しさん (ワッチョイ 0928-rP6O) mailto:sage [2023/07/17(月) 18:33:54.32 ID:mG7BHGLy0.net]
質問なのですが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回コピーするという余デフォルト構築よりも遅そうな処理をするから

506 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 163e-MI76) mailto:sage [2023/07/17(月) 20:23:35.30 ID:YifLUjyU0.net]
>>497
resize だって再配置 (に付随するコピー) の可能性はあるんで
どっちでも大差ないんじゃないかな。
楽だと思うほうで書けばいいと思うよ。

507 名前:デフォルトの名無しさん (ワッチョイ 915f-9/0y) mailto:sage [2023/07/17(月) 21:47:09.31 ID:I9Lq0d6Q0.net]
>>497
無駄なデフォルトコンストラクタやコピーを削って極力ムーブで済ませようと思ったら
sz, k, n の大小関係ごとに場合分けして move_iterator 経由の insert とか使い分ければ
いけそうだけど、面倒なわりに見合うほど効率改善しそうな気はしない。

508 名前:デフォルトの名無しさん (ワッチョイ 82f0-rqn1) mailto:sage [2023/07/17(月) 22:08:16.87 ID:kACYNrgv0.net]
書き込みはそこまで遅くないから労力に見合わないだろうね

509 名前:デフォルトの名無しさん (スッップ Sd94-v8RM) mailto:sage [2023/07/17(月) 22:54:28.45 ID:vqJJKRdWd.net]
速度を気にするなら実測しないと始まらないよ。

510 名前:デフォルトの名無しさん (ワッチョイ ae7a-CYkg) mailto:sage [2023/07/17(月) 23:18:54.88 ID:vGotTgNV0.net]
リアルタイムOSのタスクのように無限ループが前提のとき

TASK Task1() {
while(1) {
Obj1 obj = Device::GetObj();
:
:
}
のようにobjを使う場合に、GetObjが内部でnewされていると、この作りではいつかメモリ不足になってしまいます。

そうなると自作でないクラスのメソッドは使う前にnewの有無をすべて調べなければならなくなるように思います。
実際はそんな不条理はないはずで、このような問題はどう対処するのがいいですか。

511 名前:デフォルトの名無しさん (ワッチョイ df01-L4gQ) mailto:sage [2023/07/17(月) 23:25:49. ]
[ここ壊れてます]



512 名前:78 ID:CT+u9aWW0.net mailto: >>502
自作でないクラスのメソッドは使う前には
メソッドが消費するメモリを見積もらなければなりません
不条理でも何でも無い
[]
[ここ壊れてます]

513 名前:デフォルトの名無しさん (ワッチョイ 0928-rP6O) mailto:sage [2023/07/17(月) 23:34:05.22 ID:mG7BHGLy0.net]
わかりました

514 名前:デフォルトの名無しさん (ワッチョイ 82f0-rqn1) mailto:sage [2023/07/17(月) 23:42:05.60 ID:kACYNrgv0.net]
自作でないクラスでも使う関数がメモリ動的確保するかどうか普通は確認するぞ

515 名前:デフォルトの名無しさん (ワッチョイ 0928-rP6O) mailto:sage [2023/07/17(月) 23:46:35.71 ID:mG7BHGLy0.net]
>>502
>GetObjが内部でnewされていると、この作りではいつかメモリ不足になってしまいます。
この懸念は普通の作りなら基本的に無用。基本的に問題無い

(1) Obj1という型がポインタやハンドルではなくクラスの場合:
objはwhile(1) { }のブロックの中で構築されるので
ループの終わりでデストラクタが呼ばれる(破棄される)から、
Device::GetObj()が真っ当な作りならnewしたポインタをObj1のインスタンスobjに引き渡し、
Obj1クラスが真っ当な作りならobjが破棄されるときに引き渡されたポインタをdeleteする(ように作る
からダングリングポインタは生じない(ようにできる

(2) Obj1という型がポインタやハンドルの場合
確保したポインタやハンドルはいずれクローズせねばならない。
ループが次の繰り返しに入る前に確実にクローズすればよい

516 名前:デフォルトの名無しさん (ワッチョイ 0928-rP6O) mailto:sage [2023/07/17(月) 23:47:03.13 ID:mG7BHGLy0.net]
基本的に、というのは(2)のケースで例外が生じたときクローズされずに抜けてしまう危険性があるのと、
(1)のケースにおいてもobj1の構築中に例外が生じた場合はきちんとデストラクトされない危険性がある。
Obj1のメンバがnewされるべき生ポインタの場合はこれは対処不能。生ポはやめてスマポにすればおk

詳しい話ははちみつ餃子氏に聞くと良い(マテ

517 名前:デフォルトの名無しさん (ワッチョイ 0928-rP6O) mailto:sage [2023/07/17(月) 23:58:52.90 ID:mG7BHGLy0.net]
訂正orz、
誤: ループの終わりでデストラクタが呼ばれる(破棄される)から、(>>506
正: ループが次の繰り返しに入る前かループを抜ける際にデストラクタが呼ばれる(破棄される)から

518 名前:デフォルトの名無しさん (ワッチョイ 847c-8c0A) mailto:sage [2023/07/18(火) 00:04:09.43 ID:yoLqrsJ/0.net]
>>502
必要ならそのGetObj()とやらのドキュメントにDevice::ReleaseXyz()とかDevice::ReleaseObj(obj1)とかobj1.release()とかを後で呼ぶように指示されてるはず
それを怠ってリークさせたならお前がタコ
そういう指示がないくせに勝手にリークするならそのライブラリがタコ
そんだけの話

519 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 163e-MI76) mailto:sage [2023/07/18(火) 00:16:34.06 ID://OyAtPF0.net]
そして使い方がドキュメント化されてないなら組織として問題がある。
が、そういう話はマ板で。

520 名前:502 (ワッチョイ ae7a-CYkg) mailto:sage [2023/07/18(火) 00:38:24.79 ID:ibbV/iYr0.net]
皆さんありがとう。
>>506
ブロックスコープは知りつつも、ループのブロックの場合はループ中は寿命が継続すると思っていました。
ループ時に毎度後始末されるなら安心です。

521 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 163e-MI76) mailto:sage [2023/07/18(火) 01:05:37.37 ID://OyAtPF0.net]
>>511
根拠。
https://timsong-cpp.github.io/cppwp/n3337/basic.stc.auto



522 名前:デフォルトの名無しさん (ワッチョイ 3279-EJzg) mailto:sage [2023/07/18(火) 02:17:55.25 ID:BpIlHiPB0.net]
組み込み用途のライブラリで毎回ループ終端でデストラクタが呼ばれるように普通は設計しないから大丈夫
疑わしいならベンダーに問い合わせるかライブラリのソースを読めば解決

523 名前:デフォルトの名無しさん (ワッチョイ b632-bpoS) mailto:sage [2023/07/21(金) 16:52:12.91 ID:PleiVI860.net]
ちょいとコイツを見て欲しい。MSVC 14.36.32532でC++17かつセキュリティチェック無効(/GS-)

https://i.imgur.com/XGfeBgH.png

最小コードで再現するために、コマンドライン文字列を変な形式として扱ってるのは置いといて
変数rSizeが、引数argcのスタック領域(ebp+8)に割り当てられるんだけど、こんな最適化ある?
確かにargcは用済みだが、レジスタやローカルスタックではなくcdeclのconst引数にストアする?

524 名前:デフォルトの名無しさん (ワッチョイ 5cfb-MzNP) mailto:sage [2023/07/21(金) 16:56:19.42 ID:LKM5BaGE0.net]
そんなことよりbooost向けの技術書について教えてくれ

525 名前:蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd94-5KMR) mailto:sage [2023/07/21(金) 18:04:39.14 ID:GfD0zzOHd.net]
そんな最適化あるよ。長期に渡って解析やってたらときどき出くわすよ。

526 名前:デフォルトの名無しさん (ワッチョイ 82f0-rqn1) mailto:sage [2023/07/21(金) 18:26:11.73 ID:eD9pKuA20.net]
ADLについて初めて知ったのがboost::mathだった懐かしい

527 名前:デフォルトの名無しさん (ワッチョイ 847c-8c0A) mailto:sage [2023/07/21(金) 20:33:22.11 ID:9+qEAU5C0.net]
観測可能な範囲で規格通りの挙動をする限りは、コンパイラ様はどんなバイナリを吐こうとどんな風にメモリやレジスタを扱おうと自由なのだ

528 名前:デフォルトの名無しさん (ワッチョイ a728-Nt2/) mailto:sage [2023/07/22(土) 11:54:04.91 ID:1sMnnOgP0.net]
if文の条件式のところにがっつり文が書かれてゐる
最後の式の値が結果、とかますますPerl的世界に……
そのうち値を返す関数もreturn書かなくて良くなったりして……

529 名前:デフォルトの名無しさん (ワッチョイ 473e-8suU) mailto:sage [2023/07/22(土) 12:15:40.55 ID:QLIAp4G50.net]
>>519
任意の文を書けるわけではなく単純宣言に限られる。

530 名前:デフォルトの名無しさん (ワッチョイ 0710-XcQ/) mailto:sage [2023/07/22(土) 13:25:58.60 ID:uVFJqD+w0.net]
うん。なんか「見てくれ」とか言うから見たけどサンプルとしてもしょーもないコードだなと思って
一度コメントしかけてやめた
windowsのxx仕様 独自mainとか

531 名前:デフォルトの名無しさん (ワッチョイ 0710-XcQ/) mailto:sage [2023/07/22(土) 13:27:45.64 ID:uVFJqD+w0.net]
自分が本当に答えを知りたいんじゃなくて、フレームというか、言い争いを起こして面白がりたいのかな、とか



532 名前:デフォルトの名無しさん (ワッチョイ a728-Nt2/) mailto:sage [2023/07/22(土) 15:21:09.39 ID:1sMnnOgP0.net]
やっぱ
void foo() {
 for (int i = 0; i < 100; i++) { .... }
 for (int ii = 0; ii < 100; ii++) { ... }
 ...
 for (int iiiiiiiiiiiiiiiiiiii = 0; iiiiiiiiiiiiiiiiiiii < 100; iiiiiiiiiiiiiiiiiiii++) { ... }
}
とかあってどのfor文でもループ変数のアドレスをとるような式が書かれていなかったら
ローカル変数i、ii、...、iiiiiiiiiiiiiiiiiiが違うアドレスでなければならない理由は何も無いから
同じアドレスに割り当てになる可能性は高いと思う
でデータフロー解析するステップではもはやブロックの構造とか渡ってないから
そういう芸当をする同じロジックが>>514のようなことも当然するキモス
※ 個人の感想です

533 名前:デフォルトの名無しさん (ワッチョイ a728-Nt2/) mailto:sage [2023/07/22(土) 15:31:39.00 ID:1sMnnOgP0.net]
ていうか補足、
void bar(int& x);
というのがあって
for (int i = 0; i < 100; i++) { bar(i); }
for (int ii = 0; ii < 100; ii++) { bar(ii); }
for (int iiiiiiiiiiiiiiiiiiii = 0; iiiiiiiiiiiiiiiiiiii < 100; ii++) { bar(iiiiiiiiiiiiiiiiiiii); }
だった場合はこれは明示的にループ変数のアドレスをとっているわけではないが、
アドレスをとっているのと同じことなので
i、ii、...、iiiiiiiiiiiiiiiiii同じアドレスに割り当てになる可能性は無くなると思う
よかったなあ>>514

534 名前:デフォルトの名無しさん (ワッチョイ a728-Nt2/) mailto:sage [2023/07/22(土) 15:33:20.61 ID:1sMnnOgP0.net]
しかしわからんのは
void bar(const int& x); // const !
だった場合は
for (int i = 0; i < 100; i++) { bar(i); }
for (int ii = 0; ii < 100; ii++) { bar(ii); }
for (int iiiiiiiiiiiiiiiiiiii = 0; iiiiiiiiiiiiiiiiiiii < 100; ii++) { bar(iiiiiiiiiiiiiiiiiiii); }
だった場合はi、ii、...、iiiiiiiiiiiiiiiiiiが同じアドレスに割り当てられ得るのかどうかわわからん……

535 名前:デフォルトの名無しさん (ワッチョイ a728-Nt2/) mailto:sage [2023/07/22(土) 15:41:23.03 ID:1sMnnOgP0.net]
ゴメ自己解決しますたorz

536 名前:デフォルトの名無しさん (ワッチョイ 5f32-vVS+) mailto:sage [2023/07/22(土) 17:02:04.17 ID:lBkog51W0.net]
スコープを抜けたローカル変数であれば順当な割り当てに思えるのだけど
>>514が差し支えるのはコードインジェクションで引数を使い回すとかの横着
さりとてトップレベルのconstやvolatileは関数シグネチャに現れない訳で
cdeclであろうと引数の寿命は関数を抜けるまでだろうから極めて妥当なのか?

14.27.29110ではやらず、スタック量は逆に増え…増えたから節約してるのか
rbp+なら…いやそれも引数用スタック。C++20でvolatile非推奨化は有ったが
volatile引数への代入も引数スタックへの書き込みと思っちゃならんのかな

537 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 473e-pcwf) mailto:sage [2023/07/22(土) 18:07:10.54 ID:QLIAp4G50.net]
>>527
言いたいことがあるなら独り言を書くんじゃなくて説明しろ。

538 名前:デフォルトの名無しさん (ワッチョイ bf42-vVS+) mailto:sage [2023/07/22(土) 18:59:44.13 ID:h3Z+iL0O0.net]
>>528
どの部分ですか?rbp+のくだりならx64であればシャドウストアを呼び出し元が確保する事になっているので
引数へ代入以外でもrbp+に書き込まれるが、それにしたって引数の退避以外で行われるかという意味だけど

またこの最適化が適正だとすれば引数へconstを指定しても
それは引数の格納元が書き換わらない事を意味しない訳で
volatileにしても引数スタックと同一視は出来ないのかなと

539 名前:デフォルトの名無しさん (テテンテンテン MM8f-TfYz) mailto:sage [2023/07/22(土) 19:01:30.20 ID:gun3EJ7PM.net]
>>519
resultは欲しいね。

540 名前:デフォルトの名無しさん (ワッチョイ 875f-UuLb) mailto:sage [2023/07/22(土) 19:08:50.81 ID:nQhdUCcc0.net]
とりあえずcallee-savedとcaller-savedあたりでググってこい

541 名前:デフォルトの名無しさん (ワッチョイ 473e-8suU) mailto:sage [2023/07/22(土) 19:21:42.17 ID:QLIAp4G50.net]
>>529
技術的な意味合いじゃなくてね、
それをのべてどうしたいのってことだよ。
疑問なのか?主張



542 名前:なのか?感想なのか? []
[ここ壊れてます]

543 名前:デフォルトの名無しさん (ワッチョイ bf79-mRrB) mailto:sage [2023/07/22(土) 23:38:20.21 ID:a8PwsTyx0.net]
これだけは言っておく
文章が下手糞はプログラミングも下手糞ってことだ

544 名前:デフォルトの名無しさん (ワッチョイ dff0-lmMR) mailto:sage [2023/07/22(土) 23:53:10.56 ID:31w2/Kbx0.net]
久々にヤバい変数名を見た
>>525
このクソみたいな変数名はおまえが考えたのか

545 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 473e-pcwf) mailto:sage [2023/07/23(日) 01:23:57.19 ID:3Ckw8KVE0.net]
>>533
母語で説明できないようならプログラマには向いてないとかいう意味のことをダイクストラが言ってたな。

普通の人は母語が最も得意なはずだからそれで表現できないのに
プログラミング言語でなら表現できるってことはないのは道理というものだ。

546 名前:デフォルトの名無しさん (スップ Sd7f-d+yq) mailto:sage [2023/07/23(日) 07:00:15.87 ID:TPcdF2Bwd.net]
二、三個違えて大域変数切って火に油注ぎたくなるやつ

547 名前:デフォルトの名無しさん (ワッチョイ dff0-FYg4) mailto:sage [2023/07/24(月) 22:04:55.27 ID:7/Qlh6bu0.net]
さんざん言われてるけど質問文きちんと書ける人はChatGPTで自己完結しちゃうんだよな

548 名前:デフォルトの名無しさん (ワッチョイ a728-Nt2/) mailto:sage [2023/07/25(火) 00:09:45.61 ID:ngER/Udx0.net]
ゴメス>>524はリリースビルドしたら全部同じアドレスになったわ;;;
やっぱ握った変数なりオブジェクトなりのアドレスを
その変数なりオブジェクトなりの寿命が尽きた後に
使おうとするのは未定義動作であることだなあ、

549 名前:デフォルトの名無しさん mailto:sage [2023/07/25(火) 03:57:53.89 ID:YH2RVZct0.net]
俺には>>524がなんでそんな結論になるのか分からんのだが
for内で i を宣言してるんだからfor のスコープを持つローカル変数だろ?
int が4バイトの前提で言えば for 突入時に int i をスタック上に確保(スタックポインタを4バイトマイナス)して for 離脱時に int i の領域を解放(スタックポインタを4バイトプラス)する
この繰り返しなんだから int i や int ii のアドレスが同じになることに疑問を挟む余地がないと思うんだけど
何がおかしいのか俺にはさっぱり分からん

550 名前:デフォルトの名無しさん (アウアウウー Sa2b-tGd7) mailto:sage [2023/07/25(火) 09:19:21.66 ID:k8WJtY+Ua.net]
for の i がローカルになったのは最近
グローバルに盛れるコンパイラ環境は巷に溢れていた

551 名前:デフォルトの名無しさん (アウアウウー Sa2b-tGd7) [2023/07/25(火) 09:19:57.50 ID:k8WJtY+Ua.net]
盛れるじゃなかった
漏れる



552 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 473e-pcwf) mailto:sage [2023/07/25(火) 11:10:04.37 ID:akUn9hsS0.net]
>>540
最近っていつ頃のことだ?

553 名前:デフォルトの名無しさん (ワッチョイ dff0-POqA) mailto:sage [2023/07/25(火) 11:32:44.39 ID:YIf2r9Dz0.net]
#define for if(0) else for

554 名前:デフォルトの名無しさん (ワッチョイ dff0-POqA) mailto:sage [2023/07/25(火) 11:34:38.41 ID:YIf2r9Dz0.net]
間違えた
#define for if(0) {} else for
これでゾンビiよく消してた

555 名前:デフォルトの名無しさん (ワッチョイ 0710-PxlL) mailto:sage [2023/07/25(火) 12:01:03.86 ID:RkQ0FrMx0.net]
>>544
ごめん、まじめに教えて
これ何の意図?

これに意味がある具体的なコンパイラって何の何version?

556 名前:デフォルトの名無しさん (ワッチョイ dff0-POqA) mailto:sage [2023/07/25(火) 12:08:13.03 ID:YIf2r9Dz0.net]
VC++6.0という大昔にデファクトスタンダードだったコンパイラだ

557 名前:デフォルトの名無しさん (ワッチョイ 0710-PxlL) mailto:sage [2023/07/25(火) 12:10:00.81 ID:RkQ0FrMx0.net]
>>546
ほんとにごめん、何の意味があるの?

558 名前:デフォルトの名無しさん (ワッチョイ dff0-POqA) mailto:sage [2023/07/25(火) 12:12:51.37 ID:YIf2r9Dz0.net]
例外飛ばすと自動変数の破棄全部ふっ飛ばして戻ってくる酷いポンコツだったな
よくこんなの皆つかってたなというかコレしかなかったからな

559 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 473e-pcwf) mailto:sage [2023/07/25(火) 12:13:49.52 ID:akUn9hsS0.net]
>>545
for の初期化節で変数宣言した場合にその外側のブロックがスコープになるコンパイラが存在し、
その対抗策としてこういうマクロを導入するという方法があったという話だろ。

560 名前:デフォルトの名無しさん (ワッチョイ dff0-POqA) mailto:sage [2023/07/25(火) 12:14:32.19 ID:YIf2r9Dz0.net]
>>547
意味がわからないなら知らなくていい
当時を知らないなら理解しようとするだけ無駄というもの

561 名前:デフォルトの名無しさん (ワッチョイ 0710-PxlL) mailto:sage [2023/07/25(火) 12:24:31.68 ID:RkQ0FrMx0.net]
>>549
ありがとう、そしてありがとう

>>548
VC6がポンコツは同意。
あのころMSはディンカムウェアからstd c,c++ ライブラリを買って導入してたけど、そもそもc++の仕様準拠がメチャクチャだったと認識してます
もうVC使わなくなって長いので気にしなくなった



562 名前:デフォルトの名無しさん (ワッチョイ 0710-PxlL) mailto:sage [2023/07/25(火) 12:39:41.95 ID:RkQ0FrMx0.net]
『for内スコープ』の仕様にvc6は未対応だ、という事実を認識し
責任者がvc6を選択した案件で納品する

なら、その条件に従って書く(つまらないつまづきに繋がる書き方を避ける)のが他者に対して親切な技術者だと思うが

「そういう話はマ板で」か

563 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 473e-pcwf) mailto:sage [2023/07/25(火) 12:56:14.20 ID:akUn9hsS0.net]
>>551
言語仕様が改訂されたんだよ。
C++98 が成立するちょっと前まで for 文の外側のブロックをスコープとするルールで正しかった。
ARM (The Annotated C++ Reference Manual) でも旧ルールで説明されている。

VC の出来が悪かったのは事実だと思うが
スコープルールに関しては互換性を是とするウィンドウズの価値観に合わせて
意図的に変更を遅らせたのだと思う。

564 名前:デフォルトの名無しさん (ワイーワ2 FF9f-fo+T) mailto:sage [2023/07/25(火) 14:00:38.34 ID:uSv6E5akF.net]
いと懐かしき

565 名前:デフォルトの名無しさん (ワッチョイ 8702-Jlgx) mailto:sage [2023/07/25(火) 14:23:07.06 ID:kV+p+cpE0.net]
Visual C++ 6.0がリリースされたのが1998年じゃん
25年前じゃん。全然最近じゃないじゃん
遠い過去のことをつい最近って話すのはやめてほしいね

566 名前:デフォルトの名無しさん (ワッチョイ a701-Fb4F) mailto:sage [2023/07/25(火) 14:31:50.00 ID:MikqYz6X0.net]
>>555
だまれ小僧! 最近じゃよ

567 名前:デフォルトの名無しさん (ワッチョイ df32-8suU) mailto:sage [2023/07/25(火) 14:44:27.15 ID:vokyohz+0.net]
20年くらいまえのソースコードだったら
読む機会がないわけでもないからなぁ。
最近と言えるかどうかはともかくとして
経緯を知っておくに越したことはない

568 名前:デフォルトの名無しさん (アウアウウー Sa2b-QKap) mailto:sage [2023/07/25(火) 14:44:43.95 ID:iTChcdyRa.net]
25年前に30代だった人の多いスレ

569 名前:デフォルトの名無しさん (ラクッペペ MM8f-pwGU) mailto:sage [2023/07/25(火) 14:54:13.97 ID:218oSqZIM.net]
現役世代なら25年前なら20代

570 名前:デフォルトの名無しさん (ワッチョイ a701-Fb4F) mailto:sage [2023/07/25(火) 14:55:29.80 ID:MikqYz6X0.net]
だまれ小僧ども!

571 名前:デフォルトの名無しさん (ワッチョイ dff0-FYg4) mailto:sage [2023/07/25(火) 16:16:06.83 ID:uXZxGhnB0.net]
おじいちゃんかな入力使ってそう



572 名前:デフォルトの名無しさん (ワッチョイ 473e-8suU) mailto:sage [2023/07/25(火) 16:50:53.20 ID:akUn9hsS0.net]
リアルで トントカイモ をやったことある世代だわ……

573 名前:デフォルトの名無しさん (ワッチョイ 0710-PxlL) mailto:sage [2023/07/25(火) 20:33:32.87 ID:RkQ0FrMx0.net]
>>560
そこは
黙れ小僧、お前にSUNが救えるか!
じゃないの?

sunのccって何だっけ

でも個人的にはc++ユーザなら2014年以降の話をして欲しい

574 名前:デフォルトの名無しさん (ワッチョイ bf79-mRrB) mailto:sage [2023/07/25(火) 21:15:39.67 ID:2EbZvvbp0.net]
(昔話うぜー)

575 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 473e-pcwf) mailto:sage [2023/07/25(火) 21:54:33.88 ID:akUn9hsS0.net]
>>563
古い規格に基づいたコードが消滅しているならそれでもいいけどさ。

576 名前:デフォルトの名無しさん (ワッチョイ a728-Nt2/) mailto:sage [2023/07/25(火) 22:52:02.65 ID:ngER/Udx0.net]
>>539
アドレスをとったらメモリエリアシング除けで最適化が抑止される
そう思っていた時期が僕にもありました先週

577 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 473e-pcwf) mailto:sage [2023/07/25(火) 23:10:43.20 ID:akUn9hsS0.net]
アドレスとエイリアスは別枠なんだわ。
ポインタを数値として表示させると同じなのに == で比較すると偽値 (エイリアスではない) ということがあり得る。
pointer provenance の概念について調べてみると面白いかもね。

578 名前:デフォルトの名無しさん (ラクッペペ MM8f-pwGU) mailto:sage [2023/07/26(水) 07:52:30.48 ID:Ymbp6+unM.net]
古いコードに執着しはじめるならもういい加減引退した方がいい

579 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 473e-pcwf) mailto:sage [2023/07/26(水) 13:05:53.40 ID:Z/zSkMd/0.net]
>>568
誰かが書き換えなきゃ新しくはならんのだぞ。

580 名前:デフォルトの名無しさん (ラクッペペ MM8f-pwGU) mailto:sage [2023/07/26(水) 14:04:23.46 ID:nSMXTC2xM.net]
まったく無いとは言わないが20年以上も昔のコードを弄る機会って実際どれくらいあるのか
あまりに不毛な主張だろう

581 名前:デフォルトの名無しさん (ワッチョイ dff0-POqA) mailto:sage [2023/07/26(水) 14:22:14.82 ID:x/JHBN7Z0.net]
>>129
これが実現出来ればそういう心配事も無くなるんだがな



582 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 473e-pcwf) mailto:sage [2023/07/26(水) 14:24:26.98 ID:Z/zSkMd/0.net]
ちなみに俺は少なくとも C++11 以降だろ (C++20 は時期尚早かもしれない) 派だし
趣味でプログラミングしているから実務現場はわからない。
でも確実に 20 年前くらいのコードは生きてるよ。
質問サイトで (古いコードの意味について尋ねる質問に対して) 歴史的な事情を説明したことは何度もあるから。
それが割合としてどんくらいかというと確かに少なくはあると思うが……。

583 名前:デフォルトの名無しさん (ワッチョイ 0710-PxlL) mailto:sage [2023/07/26(水) 17:59:22.96 ID:EGwoK+U90.net]
11は妥当かも。新しいauto は11から一部、で14で増えた訳よね
C++の仕事で、例えばauto使ったらダメって言われたら、工エエェェ(´д`)ェェエエ工 アンタ達何でCじゃなくてC++使ってるん?てならんか

(マ板的な話でごめんね)
仕事で、Cで未だに99がダメとかいう頭おかしい現場もあり、問い詰めると周辺ツール整備の予算の都合と言い訳される。そういうのを切る政治のために喫煙所活動したり、元社の海外部署の圧を使ったりする

まあでも、自衛隊の武器でもC++あったよ…ただ、武器にはちゃんと使用期限があって。5年とか。継続で使いたい場合には再整備事業が起きる。次の期限いっぱいまで修理可能であるように求められるのね

新規は14以上、保守は11以上、は妥当かもね

584 名前:デフォルトの名無しさん (テテンテンテン MM8f-TfYz) mailto:sage [2023/07/26(水) 20:17:04.26 ID:zBy57xkKM.net]
動的に重たい機能(例外とか)を取り除いたembeded c++に再チャレンジしてほしいわ。

c with structure and template くらいの。

585 名前:デフォルトの名無しさん (ワッチョイ 077c-N/av) mailto:sage [2023/07/26(水) 20:27:29.80 ID:qeWM+gpE0.net]
また禿に死ぬべきだって言われるだけだぞ

586 名前:デフォルトの名無しさん (ワッチョイ dff0-FYg4) mailto:sage [2023/07/26(水) 20:36:31.16 ID:J6WrB9lP0.net]
俺も趣味でしか使ってないけど、OSSのメンテやってる外人がCで書かれたコードのこと
クソの山と呼んでるのを見かけてみんなそう思ってると信じちゃった

587 名前:デフォルトの名無しさん (ワッチョイ a701-Fb4F) mailto:sage [2023/07/26(水) 20:45:03.48 ID:T1zuvG990.net]
「クソの山」って英語で何ていうの?

588 名前:デフォルトの名無しさん (ワッチョイ dff0-4APs) [2023/07/26(水) 20:47:33.68 ID:e36yYIxR0.net]
>>577
stacked shit
ソースはフルメタル・ジャケット

589 名前:デフォルトの名無しさん (ワッチョイ a701-Fb4F) mailto:sage [2023/07/26(水) 21:11:20.60 ID:T1zuvG990.net]
My intestine is a kind of FIFO.

590 名前:デフォルトの名無しさん (ワッチョイ 0720-rRCM) [2023/07/26(水) 21:14:18.52 ID:4fMh7lxL0.net]
bullshit

591 名前:デフォルトの名無しさん (ワッチョイ 473e-8suU) mailto:sage [2023/07/26(水) 21:21:43.95 ID:Z/zSkMd/0.net]
>>576
現実がクソなんだよ。
それでもコードにしなきゃならないところ(低レイヤとか速度がいるところとか言語を跨ぐインターフェイスとか)でCが使われるから必然的にクソになる。
他の言語で書いたところでたぶんクソだぞ。



592 名前:デフォルトの名無しさん (オイコラミネオ MM3b-nVDU) mailto:sage [2023/07/26(水) 22:07:29.96 ID:iOxX8HKcM.net]
自分としては古いC++のコードの方がクソの山に見える
Cはまだまし

593 名前:デフォルトの名無しさん (ワッチョイ 6701-I2OL) [2023/07/26(水) 22:16:26.68 ID:jPIzcFjy0.net]
5chからの新しいお知らせは、他の板には出ないんだな

594 名前:デフォルトの名無しさん (ワッチョイ 67c0-CvEJ) mailto:sage [2023/07/27(木) 04:04:24.35 ID:QeVlkja60.net]
古い事自体は悪い訳ではないよね
質が低いけど影響範囲が大きくて修正されずに生き延びてる糞コードが悪いだけで

595 名前:デフォルトの名無しさん (ワッチョイ bf9a-0/k/) mailto:sage [2023/07/27(木) 09:00:04.57 ID:zEDi2bcm0.net]
>>578
stackだけだと積むというだけで高さはわからないような
they stacked shit that highというのが原文

596 名前:デフォルトの名無しさん (アウアウウー Sa2b-QKap) mailto:sage [2023/07/27(木) 09:00:15.65 ID:GoQM94Wca.net]
>>582
ほんそれ
+1

597 名前:デフォルトの名無しさん (ワッチョイ 8702-Jlgx) mailto:sage [2023/07/27(木) 09:39:10.27 ID:4LOg1fU50.net]
>>576
PythonとかJavaScriptだけの世界に生きてる人たちはC++はクソとか言ってそうな気がする

598 名前:デフォルトの名無しさん (アウアウウー Sa2b-QKap) mailto:sage [2023/07/27(木) 09:49:28.34 ID:GoQM94Wca.net]
実際C++は糞だと思う
Cの方がマシ

599 名前:デフォルトの名無しさん (ワッチョイ a701-Fb4F) mailto:sage [2023/07/27(木) 10:16:37.98 ID:+SEMblDr0.net]
VCでビルドしたC++ライブラリって
mingwでビルドしたオブジェクトファイルとリンクできないよね?
Cライブラリだとできるけども

600 名前:デフォルトの名無しさん (ワッチョイ 0710-IJmj) mailto:sage [2023/07/27(木) 10:25:00.16 ID:uqLQvp0Q0.net]
c++だとマングリングの規則がコンパイラごとに違うから無理なはず

601 名前:デフォルトの名無しさん (ワッチョイ a701-JYYx) mailto:sage [2023/07/27(木) 10:37:09.86 ID:+SEMblDr0.net]
>>590
ありがとうございます



602 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 473e-pcwf) mailto:sage [2023/07/27(木) 11:15:58.50 ID:p+3LvAw40.net]
COM の規約で運用するという方法もあるけど割とめんどい

603 名前:デフォルトの名無しさん (ワッチョイ a701-Fb4F) mailto:sage [2023/07/27(木) 12:11:09.64 ID:+SEMblDr0.net]
C++ライブラリとCライブラリの両方があったので
素直にCライブラリの方を使うことにします

604 名前:デフォルトの名無しさん (アウアウウー Sa2b-4APs) [2023/07/27(木) 14:18:54.70 ID:SGfMLUd3a.net]
>>585
その原文の訳が「まるでそびえ立つクソだ!」だからhighly stacked shitあたりだろうけど、あれはハートマン軍曹という異常者の語彙だから、多分pile of shitなんかの方が一般的かもね

605 名前:デフォルトの名無しさん (ワッチョイ 7ffb-p1qB) mailto:sage [2023/07/27(木) 21:44:21.80 ID:alYzqiaL0.net]
msvcからmingwに移行しようと思い、7zを展開したらディフェンダーちゃんが反応したので何かと思ったら

606 名前:デフォルトの名無しさん (ワッチョイ 473e-8suU) mailto:sage [2023/07/27(木) 22:58:54.41 ID:p+3LvAw40.net]
実行ファイルを生成するものは割りとひっかかる

607 名前:デフォルトの名無しさん (アウアウウー Sa2b-QKap) mailto:sage [2023/07/28(金) 10:55:13.63 ID:Zgvcm9f5a.net]
7zを展開する前にファイルをExoplorerから右クリックで開いて
ディフェンダー無効にしてから展開するだけだろ

608 名前:デフォルトの名無しさん (スップ Sd7f-HOej) mailto:sage [2023/07/28(金) 13:11:52.02 ID:6yxKL9JFd.net]
Defenderに無害認定されるまで戦い続けるマ?

609 名前:デフォルトの名無しさん (ワッチョイ dff0-FYg4) mailto:sage [2023/07/28(金) 13:58:16.94 ID:AMhr/ZcZ0.net]
どういう設定でコンパイルしたら有害認定されるかむしろ知りたいわ

610 名前:デフォルトの名無しさん (ワッチョイ 2705-TI2y) mailto:sage [2023/07/28(金) 20:53:22.55 ID:nOGNEf1T0.net]
oss物は使ってくれるなというms様のお達し?

611 名前:デフォルトの名無しさん (ワッチョイ a701-Fb4F) mailto:sage [2023/07/28(金) 21:03:20.13 ID:iCEYdRhP0.net]
wslでLinux飲み込んだのに?



612 名前:デフォルトの名無しさん (ワッチョイ 473e-8suU) mailto:sage [2023/07/28(金) 21:12:30.62 ID:yKS6EUDz0.net]
そういや従量課金回線むけに通信量を制限するソフトを入れたら
通信を阻害するマルウェアとして検出されたことがある。
解釈によってはそりゃそうだと思うし、
セキュリティツールは疑陽性が増えてでも偽陰性を
減らす方向に調整するのはしょうがないんじゃねーの

613 名前:デフォルトの名無しさん (ワッチョイ 8f9c-JfPF) [2023/07/29(土) 01:25:10.10 ID:eLz5SM1d0.net]
マイクロソフトとしてはストアアプリとして配信して欲しいんだろうね
ZIPなどの野良アプリ配布は不遇の時代よ

614 名前:デフォルトの名無しさん (ワッチョイ bec3-B8t3) mailto:sage [2023/07/29(土) 01:41:06.31 ID:mO2Fj1W+0.net]
テレメスパイウェアage

615 名前:デフォルトの名無しさん (アウアウウー Sa1f-6+wX) mailto:sage [2023/07/30(日) 09:49:16.34 ID:azQXcNDBa.net]
>>599
コンパイル後のexeがなぜか毎回消える問題は何かのバージョンで過去にあった

616 名前:デフォルトの名無しさん (ワッチョイ befb-LsOw) mailto:sage [2023/07/30(日) 11:40:03.78 ID:/52qmc2G0.net]
>>605
恥ずかしがり屋め//

617 名前:デフォルトの名無しさん (ワッチョイ 2679-ntsF) mailto:sage [2023/07/30(日) 19:58:32.07 ID:cURCmIiS0.net]
Defender様はOS内蔵のC#で作ったexeも容赦なく消してくるぞ
名前が他と被ってたり変な場所に置いたりしてると割と起こる

618 名前:デフォルトの名無しさん (ワッチョイ 2301-9pon) mailto:sage [2023/07/30(日) 23:32:06.49 ID:Phugis3j0.net]
初期化していないstd::optional <int>をdereferenceすると0として扱われます
boost::optional <int>だとAbortされるのですが
なぜstdではこのようになっているのかどなたかご存知ですか?
$ cat test.cpp
#include <optional>
#include <boost/optional.hpp>
#include <iostream>
using namespace std;
int main () {
std::optional <int> i0;
cout << *i0 << '\n';
if (i0) cout << "Initilized\n";
else cout << "Not initilized\n";
boost::optional <int> i1;
cout << *i1 << '\n';
return 0;
}

$ ./test
0
Not initilized
test: /usr/include/boost/optional/optional.hpp:1212: boost::optional<T>::reference_type boost::optional<T>::get() [with T = int; reference_type = int&]: Assertion `this->is_initialized()' failed.
Aborted (core dumped)

619 名前:デフォルトの名無しさん (ワッチョイ d35f-X/lp) mailto:sage [2023/07/30(日) 23:50:56.20 ID:1/o7VgXA0.net]
>>608
どちらも事前条件違反での未定義動作の結果。
「0として扱う」と定められているわけじゃない。
boost が assert で止めてくれているのは親切。

620 名前:デフォルトの名無しさん (ワッチョイ 2301-9pon) mailto:sage [2023/07/30(日) 23:58:13.09 ID:Phugis3j0.net]
boostの方が親切ですよね
何でstdでなくしたんでしょ?

621 名前:デフォルトの名無しさん (ワッチョイ 2301-9pon) mailto:sage [2023/07/31(月) 00:15:55.53 ID:ulrQSEBD0.net]
stdはパフォーマンスを気にしたんでしょうかね?



622 名前:デフォルトの名無しさん (ワッチョイ 8f7c-xLd3) mailto:sage [2023/07/31(月) 00:17:50.97 ID:kuDsfsru0.net]
未定義動作をどうしようとコンパイラの勝手

623 名前:デフォルトの名無しさん (ワッチョイ 2301-9pon) mailto:sage [2023/07/31(月) 00:42:57.84 ID:ulrQSEBD0.net]
>>612
boostでは初期化済みかどうかを確認していたのを
stdでなぜ確認を外したのか?って問いになります
>>611に書いたようにパフォーマンスってこでしょうかね?

624 名前:デフォルトの名無しさん (ワッチョイ d35f-X/lp) mailto:sage [2023/07/31(月) 01:10:19.51 ID:cE0Z6rmj0.net]
>>613
std::optionalの仕様がboost::optionalを参考にしたのは確かだろうけど、
std::optionalの実装はboost::optionalの実装をもとにしたわけじゃないだろうから、
不要なチェックが無い状態でむしろ自然。
何か意図を持って「なくした」「外した」などという事実がおそらく無い。
仮に意図的だったとして、ここで誰かがその質問にyes/noを答えても本当かどうかはわからない。
どうしても気になるならライブラリ実装者に聞くべき。

625 名前:デフォルトの名無しさん (ワッチョイ 2301-9pon) mailto:sage [2023/07/31(月) 02:06:40.22 ID:ulrQSEBD0.net]
仕様はboostが元になっているのは間違いないので
規格に入れるときになぜこれを変えたのか理由が分かればなと考えました
proposal追ってる人でご存知の方がいればなと思いましたが
自分でも読んでみます

626 名前:デフォルトの名無しさん (ワッチョイ d35f-X/lp) mailto:sage [2023/07/31(月) 03:26:45.40 ID:cE0Z6rmj0.net]
>>615
仕様はどちらも事前条件違反での未定義動作で、変わってない。
なので仕様について調べてもおそらく答えは出ない。
assertの有無は実装の範疇。

627 名前:デフォルトの名無しさん (ワッチョイ a6a4-2Bsr) mailto:sage [2023/08/02(水) 01:27:09.22 ID:UwRg95UI0.net]
プログラミングの面接を受けた。言語は何でもいいというので今使ってるC++で予め申請。
ロジックを問う問題なので言語で差はつかない、という話... だったが実際は文字列処理
の問題が多く、これはスクリプト系とかの方が有利じゃないか

C++にはなんで文字列のsplit系はないんだろ。どうしてます? <- あ、これが雑多な質問w

628 名前:デフォルトの名無しさん (ワッチョイ a6a4-2Bsr) mailto:sage [2023/08/02(水) 01:29:42.76 ID:UwRg95UI0.net]
ちなみに自分は以前Pythonを使っていた時期もJavaを使っていた時期もあるけど
今は頭が「C++脳」になっている気がして、とっさにそれらを使うとなると不安を感じたのだった
やはり常日頃から他の言語も回しておくべきだろうか

629 名前:デフォルトの名無しさん (ワッチョイ a6a4-2Bsr) mailto:sage [2023/08/02(水) 01:31:05.25 ID:UwRg95UI0.net]
マ系の話かもしれないですね、すみません

630 名前:デフォルトの名無しさん (ワッチョイ 4af0-0TAO) mailto:sage [2023/08/02(水) 01:45:10.69 ID:JKibevwe0.net]
次の問題でグラフにプロットしろとか言われそうだなw

631 名前:デフォルトの名無しさん (ワッチョイ b73e-4j5P) mailto:sage [2023/08/02(水) 01:58:11.71 ID:Vhf3uqZN0.net]
>>617
普通は申告した技能に嘘がないことを確かめるのが
面接の主な目的であって
正解率に意味があるような試験ではないよ。



632 名前:デフォルトの名無しさん (ワッチョイ 33d6-cK++) mailto:sage [2023/08/02(水) 06:20:23.71 ID:NkBPLpHI0.net]
>>617
istringstream と getline を使えば、区切られた文字を順番に取り出せる。
空白文字区切りなら、getline の代わりに >> が使える。

https://maku77.github.io/cpp/string/split.html

633 名前:デフォルトの名無しさん (アウアウウー Sa1f-IPSQ) [2023/08/02(水) 09:31:21.06 ID:4pI1Wfnva.net]
>>617
C/C++でそれが出来て初めて「C/C++が使えます」って言えるんだ

634 名前:デフォルトの名無しさん (ワッチョイ befb-LsOw) mailto:sage [2023/08/02(水) 09:36:40.40 ID:y1hozJP20.net]
1つの言語で覚えたあたらしい機能を実現するのに他の言語ではどう書く?って感じで比較しながら書くと記憶が精緻化しやすく忘れにくくなる

635 名前:デフォルトの名無しさん (アウアウウー Sa1f-IPSQ) [2023/08/02(水) 10:22:30.40 ID:4pI1Wfnva.net]
>>618
「C++脳」
良く言えるな
C++も不安だらけじゃないか

636 名前:デフォルトの名無しさん (ワッチョイ befb-LsOw) mailto:sage [2023/08/02(水) 12:38:15.38 ID:y1hozJP20.net]
コーディングテストのはずがメインメソッド作ってって言われたときはこちらからお断り申し上げたことがある

637 名前:デフォルトの名無しさん (ワッチョイ befb-LsOw) mailto:sage [2023/08/02(水) 12:43:22.62 ID:y1hozJP20.net]
チンチンシュッシュシュですわ

638 名前:デフォルトの名無しさん (ワッチョイ 4b9a-2Bsr) mailto:sage [2023/08/03(木) 09:24:52.48 ID:lr2Ednh70.net]
>>625
あ、別にC++が得意という意味でなく、それ以外の言語を使うとき頭がすぐに切り替わらない、
というぐらいの話で

結局そのとき自分は文字をチェックして区切り文字の位置を調べてstring.substr()で切り出し
vector<string>に追加というベタな感じを。でも他の言語でsplit()を呼んで終わりなのと比べると
無駄に焦ったと思われ >>622はすっかり忘れていた

639 名前:デフォルトの名無しさん (ワッチョイ 6af0-PvkJ) mailto:sage [2023/08/03(木) 09:35:40.45 ID:IPuBCl990.net]
自分で作れよw
簡単だろ

640 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ b73e-yh3V) mailto:sage [2023/08/03(木) 09:36:19.80 ID:HBD/4AdY0.net]
>>628
C++20 以降なら std::views::split を使えるよ。

641 名前:デフォルトの名無しさん (ワッチョイ befb-LsOw) mailto:sage [2023/08/03(木) 20:08:30.72 ID:IJZbd6wk0.net]
>>628
c++がマニアックなのはまぁわかる
他の言語に切り替わらないっていうのは鍛錬不足じゃあ無いのかね
c++で書いたものを見ながら別の言語に書き換えるっていう作業の時間が足りてないんじゃない?



642 名前:デフォルトの名無しさん (ワッチョイ 43a5-IPSQ) [2023/08/04(金) 21:09:58.67 ID:5lu3SOws0.net]
プリプロセッサディレクテブでマクロを組む方法はないでしょうか?
#ifndef XX
#define XX 1
#endif

define_default (XX, 1); <-こんな感じにマクロ化したい

643 名前:デフォルトの名無しさん (ワッチョイ 7510-oj1Z) mailto:sage [2023/08/05(土) 01:51:28.51 ID:L/LBNngA0.net]
🤔…(こんな感じとは?)

644 名前:デフォルトの名無しさん (ワッチョイ 7510-oj1Z) mailto:sage [2023/08/05(土) 02:15:04.78 ID:L/LBNngA0.net]
スマン言いたい事分かった

直接の回答は:わからん。
多分、君の実装アイデアでは無理。
C++というかCな気がするが、コンパイラの規格の中に翻訳作業のステージが確か7つ位定義されてて、その一つがプリプロセス。で無限ループしないようになってたような。


本当にやりたいであろう事(定数定義の記述に定形があって煩雑なのをシンプルに書きたい)なら、私なら別の方法でやる、けどそれは聞かれてないよね

645 名前:デフォルトの名無しさん (スッップ Sd2f-YWx9) mailto:sage [2023/08/05(土) 09:38:26.20 ID:wvUeqD5zd.net]
定義をマクロ定義する事はできないよ
都度意味を変えてincludeで読み込ませるとか

646 名前:デフォルトの名無しさん (ワッチョイ 4f7c-HETv) mailto:sage [2023/08/05(土) 10:20:09.70 ID:9rqysa6s0.net]
よく分からんがC++の範疇じゃなくてcamkeとかコンパイラオプションでやる事っぽく見える

647 名前:デフォルトの名無しさん (ワッチョイ 31a5-mBaV) [2023/08/05(土) 22:30:35.02 ID:a9xEz2i50.net]
コンパイルオプションでdefineを省略されていればデフォルト値を使うようなコードの構造にしたいのですが、
なるたけmakeやコンパイル環境に依存しないことが希望です。
プリプロセッサを使うと煩雑で読みづらくなってしまうので、カプセル化したいです。
C++ならもう少し洗練された方法がないものかと思うところですが、
定数定義の記述定形があって煩雑なのをシンプルに書く方法があれば教えて下さい

648 名前:デフォルトの名無しさん (ワッチョイ 4d01-zxRi) mailto:sage [2023/08/05(土) 23:17:58.10 ID:NzC+Rt9F0.net]
現状のサンプルコードを書いた方が答えやすい

649 名前:デフォルトの名無しさん (ワッチョイ 31a5-mBaV) [2023/08/05(土) 23:34:29.13 ID:a9xEz2i50.net]
#ifndef XX1
#define XX1 1
#endif

#ifndef XX2
#define XX2 0
#endif
:

650 名前:デフォルトの名無しさん (ワッチョイ 5b3e-8WNR) mailto:sage [2023/08/06(日) 00:25:50.71 ID:Mgx3ApDu0.net]
C++ はなるべくマクロを使わずに済む方向に進化してはいるが
マクロを使うのであればそれより良い方法はないと思うよ。

651 名前:デフォルトの名無しさん (ワッチョイ e3f0-uQHI) mailto:sage [2023/08/06(日) 01:54:30.05 ID:7ys7hHtb0.net]
俺ならテンプレート引数のデフォルト引数を使うけど、
既存のコードを何とかしたいって事かい?



652 名前:デフォルトの名無しさん (ワッチョイ 7510-WTQk) mailto:sage [2023/08/06(日) 04:00:21.32 ID:VdM0xi000.net]
>>637
君の求めてるエレガントな方法は、知らない。スマンね

私がもし 今すぐ 仕事でやる必要があるなら
XX1 1
XX2 0
というテキストファイルから、君の例示したソースファイルを生成する「ツール」を勝手に作って使い、手で書いたフリをする

数百あるならツールに意味があるし
もし聞かれたらツールで生成したと答えるが、正直どうでもいい
メンテフェーズでの1件2件の追加修正は手で書きゃいい

653 名前:デフォルトの名無しさん (ワッチョイ 7510-7C81) [2023/08/06(日) 04:31:49.92 ID:VdM0xi000.net]
ここって#とかの文字書けるのかな...


#!/bin/bash

put_data_list()
{
cat <<EOF
XX1 1
XX2 0
EOF
}


main()
{
while read NAME VAL
do
cat <<EOF
#ifndef $NAME
#define $NAME VAL
#endif

EOF
done
}

put_data_list | main

654 名前:デフォルトの名無しさん (ワッチョイ 5b3e-8WNR) mailto:sage [2023/08/06(日) 11:54:26.68 ID:Mgx3ApDu0.net]
その手のパラメータをマクロとして大量に定義する
必要があるときというのは
開発・実行環境ごとに切り分けたいという要求なことが多くて、
そうだとしたら環境依存を避けたいという要件設定が
ナンセンスってことになるんよ。

655 名前:デフォルトの名無しさん (ワッチョイ 054e-c/5M) [2023/08/06(日) 12:11:02.29 ID:R5xvWuDw0.net]
その開発・実行環境がコンパイラ含めてまるごと提供される場合だと、C(++)基本機能だけで済ませないと何かと面倒というのは分かる
ゲーム機とかがそれ

656 名前:デフォルトの名無しさん (ワッチョイ c379-IXit) mailto:sage [2023/08/06(日) 12:13:51.56 ID:SuulMMGF0.net]
マイコン用のヘッダなんかはそういうテクニックが駆使されてて環境依存を減らしてるから参考になるよ
arduinoみたいな特定のマイコンに依存してない環境では特に

657 名前:デフォルトの名無しさん (ワッチョイ e3f0-uQHI) mailto:sage [2023/08/10(木) 05:18:21.73 ID:cgZD1dE+0.net]
最近はマイコンでもC++使うんですか?
普通にC使ったほうがいいと思うんですけどどうなってるんですか有識者の方

658 名前:デフォルトの名無しさん (ワッチョイ e3f0-WeFQ) mailto:sage [2023/08/10(木) 08:37:15.11 ID:R9ss+SBt0.net]
C++でもメモリを食わない書き方はあるとだけ言っておく
STLライブラリに恩恵を受けて育った温室育ちには理解出来んかもだがな

659 名前:デフォルトの名無しさん (ワッチョイ 054e-c/5M) [2023/08/10(木) 09:55:47.75 ID:4skaSxsv0.net]
マイコンのことは知らないが、いまさら、
//コメント
スコープ内ローカル変数
関数のオーバーロードや引き数の省略
bool型とture/false識別子
等がないC言語とか無理だなw

660 名前:デフォルトの名無しさん (ワッチョイ 5b3e-oz9p) mailto:sage [2023/08/10(木) 10:54:42.66 ID:5Abh0bq20.net]
>>649
その4つの内の3つはCにある機能だぞ

661 名前:デフォルトの名無しさん (ワッチョイ 054e-c/5M) [2023/08/10(木) 14:04:07.34 ID:4skaSxsv0.net]
組み込み向けでもC99つかえるの?
まぁ、最近はclangとかなのかな…日立コンパイラの恐怖とか思い出すわw



662 名前:デフォルトの名無しさん (ワッチョイ 5b3e-tyL0) mailto:sage [2023/08/10(木) 14:23:33.39 ID:5Abh0bq20.net]
スコープ内ローカル変数ってのが

663 名前:スを意味してるのかよくわからんが、
(関数ブロック以外でも) ブロックの先頭では変数宣言できるぞ。 C89 でも。
[]
[ここ壊れてます]

664 名前:デフォルトの名無しさん (ワッチョイ d105-GNKj) mailto:sage [2023/08/10(木) 16:21:19.73 ID:ygto10X60.net]
>>650
C++から逆輸入されたんだっけ?

665 名前:デフォルトの名無しさん (ワッチョイ d105-GNKj) mailto:sage [2023/08/10(木) 16:23:48.61 ID:ygto10X60.net]
マイコンって言ってももはや幅が広すぎるよな

666 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 5b3e-tyL0) mailto:sage [2023/08/10(木) 16:42:27.27 ID:5Abh0bq20.net]
Z80 だって C99 対応コンパイラは有るくらいだし、現代でも売ってるマイコン
かつ C コンパイラが存在するなら大抵は C99 対応くらいはしてるんじゃね。
完璧に準拠ってほどではないかもしれんけど。

667 名前:デフォルトの名無しさん (ワッチョイ dffb-IrHc) mailto:sage [2023/08/10(木) 19:28:12.15 ID:rVmtE6nS0.net]
今ってマクロ使うよりもモジュールにしてstaticでやる方がオトクなんだって?

668 名前:デフォルトの名無しさん (ワッチョイ 4f7c-HETv) mailto:sage [2023/08/11(金) 07:07:37.61 ID:gKBPOQXo0.net]
マイコンって関数呼び出しなんて重すぎてとんでもないmainに全部ベタ書きしろって世界でしょ?
そんなとこでモジュールなんて許されるのか

669 名前:デフォルトの名無しさん (ワッチョイ 61da-WeFQ) mailto:sage [2023/08/11(金) 07:24:40.95 ID:RJhU8z4K0.net]
とんだ時代錯誤だな
関数作るだけで容量が満杯になるっていつの時代のマイコンだよ
今何世紀だと思ってんだよ
https://youtu.be/-c-SPVlIr7Q

670 名前:デフォルトの名無しさん (ワッチョイ 4f7c-HETv) mailto:sage [2023/08/11(金) 07:59:20.53 ID:gKBPOQXo0.net]
そーなの?
昔受けた講習で「関数は重いので関数ポインタを扱う用途以外では作りません。処理をまとめるにはマクロかgotoを使います」って言ってて衝撃受けた口なんだけど
時代の流れなのかこの講習がタコなのかあなたがタコなのか専門外だから分からないよ

671 名前:デフォルトの名無しさん (ワッチョイ 61da-WeFQ) mailto:sage [2023/08/11(金) 08:08:48.37 ID:RJhU8z4K0.net]
ホントに極小サイズの容量小さい昔のマイコンならアセンブラでハードウェアアドレスにI/Oコールして組み上げんだろうけどいまのマイコンはそのレベルを既に凌駕して逸脱してるから誰でも気軽に組みやすく仕上がってる
micropythonみたいなインタープリタも走るしな



672 名前:デフォルトの名無しさん (オイコラミネオ MMc9-uQHI) mailto:sage [2023/08/11(金) 08:32:55.43 ID:4oMIZBsGM.net]
関数を使わないのはRAMは少なくてスタックがシビアだからです

673 名前:デフォルトの名無しさん (ワッチョイ 61da-WeFQ) mailto:sage [2023/08/11(金) 08:36:34.41 ID:RJhU8z4K0.net]
スタックフレームつくるからだろ
インラインで全部組めばスタック要らんくなるよ
コードの容量は増えるかもしれんけど

674 名前:デフォルトの名無しさん (オイコラミネオ MMc9-uQHI) mailto:sage [2023/08/11(金) 08:40:37.51 ID:4oMIZBsGM.net]
何らかの便利な仕組みがあるとそのせいでメモリが足りなくなることもあった

そのせいかどうかしらないけど過去はforの階層が7階層に制限されてたり今では意味不明
ブロックスコープの仕組みのためか?
ifとgotoにしたら回避できる

675 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4132-oz9p) mailto:sage [2023/08/11(金) 09:58:09.34 ID:vt/fQ4Il0.net]
プログラムを 2KiB 程度しか書き込めない PIC なんかもあるが
そのレベルの機器だとどうせ低レイヤにべったりと
依存せざるをえないだろうし、
C で極端な書き方をするくらいならもっと低級な言語を
使った方が楽かもしれないな。
そういう割り切りが出来ない程度の中途半端なのが一番困る。

676 名前:デフォルトの名無しさん (スフッ Sdd7-A0iR) [2023/08/11(金) 12:49:59.96 ID:oqyg1NI/d.net]
>>659
組み込みなら
関数が重い
じゃなくて
スタックが浅い
の間違いじゃないのか?

677 名前:デフォルトの名無しさん (ワッチョイ 9af0-vKG+) mailto:sage [2023/08/12(土) 01:11:27.44 ID:DKBxYxYv0.net]
最近のは単価数百円で256kbとかメモリ積んでるんだな…

678 名前:デフォルトの名無しさん (ワッチョイ f358-yhDR) [2023/08/16(水) 17:21:20.72 ID:hgmxYG6c0.net]
その昔、使ってたHP-29Cがサブルーチンのネストが3段までで
その後に出荷されたHP-34Cが6段になってるの見て
おおーってなった懐かしい思い出

679 名前:デフォルトの名無しさん (ワッチョイ f358-yhDR) [2023/08/16(水) 17:40:41.84 ID:hgmxYG6c0.net]
今はinlineや関数テンプレートのように開いたサブルーチンが普通に使えるからなあ

680 名前:デフォルトの名無しさん (ワッチョイ 2702-Dztr) [2023/08/16(水) 22:34:48.53 ID:YHO3HAlN0.net]
https://i.imgur.com/2SPcox3.jpg

681 名前:デフォルトの名無しさん (ワッチョイ 5b94-J+rV) [2023/08/17(木) 00:57:31.86 ID:VKXPNJiw0.net]
>>669
Amazonギフトに交換できるんだ



682 名前:デフォルトの名無しさん (JP 0H7f-YOEV) mailto:sage [2023/08/17(木) 15:51:12.83 ID:BJu8USc1H.net]
ちなみにその方法でアマギフ入手するとアマゾンアカウント停止させられるから気をつけてね

683 名前:デフォルトの名無しさん (ワッチョイ b690-g0y9) mailto:sage [2023/08/17(木) 23:57:58.55 ID:4XlHHMDQ0.net]
ショボい詐欺はスルーで

684 名前:デフォルトの名無しさん (スップ Sdba-aAP2) mailto:sage [2023/08/18(金) 07:50:49.06 ID:ibegtSC/d.net]
>>669
グロ

685 名前:デフォルトの名無しさん (ワッチョイ 5901-greZ) [2023/08/21(月) 17:47:44.07 ID:mTvtbn+H0.net]
週3日稼働案件の職種別月収ランキングNo.1は「データサイエンティスト」で月72万円。
上位7職種が月50万円を超える月収。ほぼ全ての案件がリモート可案件。

フリーランス・複業・副業の

686 名前:求人マッチングサービス『SOKUDAN(ソクダン)』を運営する
CAMELORS株式会社、週3日フリーランス・副業案件の時給月収年収・職種別
ランキングについて調査した内容をお知らせいたします
SOKUDANに掲載されているフリーランス・副業案件のうち、週3日案件に限定して
時給・月収・年収を職種別のランキング記事としています。
■調査サマリー
週3日稼働案件の月収ランキング1位は「72万円」でデータサイエンティスト
週3日稼働案件の平均月収「460,487円」、年収換算「553万円」
週3日稼働のフリーランス・副業案件の99.4%は「リモート可」
上位12職種が時給3,000円、週3日稼働で月収30万円を超える
上位7職種が時給5,000円、週3日稼働で月収50万円を超える
[]
[ここ壊れてます]

687 名前:デフォルトの名無しさん (ワッチョイ 3136-wdUj) [2023/08/21(月) 22:24:31.55 ID:qha1IMDa0.net]
>>669
貰うだけ貰うか

688 名前:デフォルトの名無しさん (ワッチョイ 2b10-OsaT) mailto:sage [2023/08/22(火) 18:52:00.21 ID:vz2M4TZw0.net]
c++でGUI作る時のフレームワークって今は何が主流なんでしょうか。
昔は、MFCとか有名でしたが。
それとも、c#で簡単にui作って内部的にc++で処理するとかですかね。

689 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 893e-glFA) mailto:sage [2023/08/22(火) 20:03:04.11 ID:+W4fml+10.net]
Windows での話なら WinUI を活用する方法が現代的なやり方だけど主流と言える感じでもないかな……。
WebView コントロールで全部をやってしまえばウェブ技術がかなり使えるので
プログラマの知識バックグラウンドによっては楽ということもあるかも。

690 名前:デフォルトの名無しさん (ワッチョイ 597c-JHPd) mailto:sage [2023/08/22(火) 20:29:01.97 ID:lpVGvukl0.net]
なんかもう最近はPCでGUIプログラムなんぞ作ること自体が時代遅れみたいな風潮で息苦しいよ

691 名前:デフォルトの名無しさん (ワッチョイ 2bfb-KmyD) mailto:sage [2023/08/22(火) 22:37:29.50 ID:0uc0qR5i0.net]
基本はGUi作るのはひ



692 名前:デフォルトの名無しさん (ワッチョイ 599c-HTZh) [2023/08/23(水) 00:17:14.58 ID:+DZCM0il0.net]
WindowsとLinuxで同じアプリ動かさないといけない案件でgtkmm使ったことある
UIをCSSで装飾できるのがモダンな感じでよかった!

693 名前:デフォルトの名無しさん (ワッチョイ 2bf2-N2rt) mailto:sage [2023/08/23(水) 00:39:14.30 ID:Ev7RzN030.net]
wxWidgetsおすすめ

694 名前:デフォルトの名無しさん (ワッチョイ 1990-PVU2) mailto:sage [2023/08/23(水) 05:35:54.64 ID:syViBZyk0.net]
JAVAを使うとこじゃないのか?

695 名前:デフォルトの名無しさん (ワッチョイ 93f0-YAjS) mailto:sage [2023/08/23(水) 05:41:53.03 ID:yb1p7Ca/0.net]
お前はスレタイも質問文の前提も読めないのか

696 名前:デフォルトの名無しさん (ラクッペペ MM4b-pGo3) mailto:sage [2023/08/23(水) 06:02:39.20 ID:DtllJKP1M.net]
VC++なら実体はC++/CLIの実装なのでちょっとした手間でWinUI 3が利用出来るんじゃないの?
知らんけど

697 名前:デフォルトの名無しさん (ワッチョイ d9da-IilA) mailto:sage [2023/08/23(水) 07:20:34.95 ID:5hD/FFHF0.net]
また知ったかが
VC++とC++/CLIは全くの別もんだろ

698 名前:デフォルトの名無しさん (ラクッペペ MM4b-pGo3) mailto:sage [2023/08/23(水) 07:45:27.28 ID:jTxxfogGM.net]
C++/CLI
https://ja.wikipedia.org/wiki/C%2B%2B/CLI

699 名前:デフォルトの名無しさん (ワッチョイ a158-0WDc) [2023/08/23(水) 10:20:14.35 ID:tOgZZX+q0.net]
>>680
WineかWSL2あたりじゃね
今やるなら

700 名前:デフォルトの名無しさん (スフッ Sdb3-G+yN) [2023/08/23(水) 11:25:24.82 ID:WaZBmlqUd.net]
>>676
wxWidgets とか tcl/tk (C++じゃないが敢えて) とか

>>678
ほんそれ
ロストワールドになりそうな勢い
昔のコボちゃんもこんな感じで引退して逝ったんだろうか

>>680
gtkmm は糞

701 名前:デフォルトの名無しさん (テテンテンテン MM4b-RKQT) mailto:sage [2023/08/23(水) 12:28:03.69 ID:SELcDCTxM.net]
Electronどうかね。
使ったこと無いけど。



702 名前:デフォルトの名無しさん (ワッチョイ 5105-D2YO) mailto:sage [2023/08/23(水) 12:39:22. ]
[ここ壊れてます]

703 名前:05 ID:WZJfreeh0.net mailto: 要件によって変わるから一概にコレってのが無いな []
[ここ壊れてます]

704 名前:デフォルトの名無しさん (ワッチョイ 93f0-WivN) [2023/08/23(水) 22:44:49.61 ID:slwUpp650.net]
C++でGUI作るときはQt使ってる。Designerが便利

705 名前:デフォルトの名無しさん (ワッチョイ 93f0-YAjS) mailto:sage [2023/08/24(木) 03:00:05.96 ID:KjKP5fLp0.net]
何故C++のGUIフレームワークのライセンスはLGPLばかりなのか

706 名前:デフォルトの名無しさん (ワッチョイ 599c-RKQT) mailto:sage [2023/08/24(木) 08:48:33.25 ID:TNcuPvYX0.net]
>>692
qtはqtライセンスあるだろ。
electron はMITだし、wxWidgetsも例外条項付きLGPL。

707 名前:デフォルトの名無しさん (アウアウウー Sa45-WivN) [2023/08/24(木) 19:48:24.59 ID:IxxAot5ma.net]
ImGuiってどうよ?

708 名前:デフォルトの名無しさん (ワッチョイ db79-wKkg) mailto:sage [2023/08/24(木) 22:02:03.62 ID:W+JHQ2GG0.net]
>C++でGUI
出てくるモノが昔と代わり映えしてなくて草
C#でええやろ

709 名前:デフォルトの名無しさん (ワッチョイ 3128-gjgG) mailto:sage [2023/08/25(金) 07:08:59.02 ID:rQn+0/0C0.net]
C++よりC#やJavaの方がGUIを書きやすいという言語の違いに起因する理由って何かあるっけ
リフレクションやガベージコレクションが別段必須でない気もするし
async/awaitが付く前からなんかJava/C#でGUI、という流れになっていた気がするし、
実はインテリセンスが効きやすい、とかアプレット的なやつがActiveXより書きやすかったから、とかそんなのが理由だったりして……
つなみにX window systemは良く知りま栓

710 名前:デフォルトの名無しさん (ワッチョイ 599c-HTZh) [2023/08/25(金) 07:59:22.15 ID:w6iB83KR0.net]
GUIツールキットの設計・開発は難しい
JavaはAWT→Swing→JavaFX
.NETはWinForms→WPF→UWP→WinUI3
何度も作り直してるんだよね

C++には標準GUIツールキットなんて要らないよ(どうせ何度も作り直すことになる)

711 名前:デフォルトの名無しさん (ワッチョイ 3128-gjgG) mailto:sage [2023/08/25(金) 08:10:08.12 ID:rQn+0/0C0.net]
ゴメリよく考えたらフレクションがあると強いわ;;;
フォームエディタみたいなやつを提供する立場にたてば
ウィジェットクラスを作ったらそれだけでリフレクションを使ってそいつのプロパティーを即エディターのプロパティーに並べられるて
利用者に提供できうる



712 名前:デフォルトの名無しさん (ワッチョイ 93f0-WivN) [2023/08/25(金) 08:33:12.71 ID:8nfgHtXd0.net]
>>698
それくらいならC++でもヘッダ見ればリフレクション無しでできるんじゃね?

713 名前:デフォルトの名無しさん (アウアウウー Sa45-greZ) [2023/08/25(金) 09:11:51.64 ID:5+gJach+a.net]
>>696
X の頃は x 用の toolkit があったけど
tcl/tk が便利過ぎてそっちに行った人多し

714 名前:デフォルトの名無しさん (ブーイモ MMb3-HTZh) [2023/08/25(金) 09:51:27.88 ID:5ARzKA7QM.net]
フォームエディターっていつの時代よ
それってホームページビルダーでホームページ作るようなもので柔軟性がないんだよね
ウィンドウサイズ固定ならともかく、可変サイズのレイアウト作るならGUIデザイナ使うよりコード書いたほうが管理しやすい
ホームページビルダーよりHTML/CSS手書きを選ぶのと一緒

715 名前:デフォルトの名無しさん (ワッチョイ 9990-JowH) mailto:sage [2023/08/26(土) 21:45:39.47 ID:uP0Ej+dj0.net]
>>698
たしかにそうだよな
スレッド周りなんて他で試行錯誤して枯れて辺りで
正式採用されたもんな

716 名前:デフォルトの名無しさん (オイコラミネオ MM65-u1T+) mailto:sage [2023/08/28(月) 00:05:48.18 ID:HI9+dVvpM.net]
>>695
嫌だ。

717 名前:デフォルトの名無しさん (ワッチョイ 8610-4o0D) mailto:sage [2023/08/29(火) 00:12:25.55 ID:VlZlfeK60.net]
c++builderってネットに殆ど情報ないですね。
書籍もないし。
あまり使われてないからだと思うけど、これ使って開発すると躓いたら解決策見つからず苦労しますかね、、。

718 名前:デフォルトの名無しさん mailto:sage [2023/08/29(火) 03:59:08.18 ID:7e4Tklec0.net]
Builderの情報はほとんどないけどC++の情報はいっぱいある
VCLの情報はDelphiと同じだからなんとか探せばある
自分はBuilderだけ買ったけど同時にDelphiも買っておけばよかったとちょっと後悔はしているね
その程度には中途半端な存在と思う

719 名前:デフォルトの名無しさん (ワッチョイ 6dda-PUhn) mailto:sage [2023/08/29(火) 11:29:24.11 ID:r8rvdmrM0.net]
VCLのソースがないと中でなにやってるかワカランからな

720 名前:デフォルトの名無しさん (ワッチョイ caad-VnR5) mailto:sage [2023/08/29(火) 16:30:54.10 ID:2MvLEdvj0.net]
ヘッダにインターフェースだけ書いてcppにインプリメントクラスを定義して隠蔽するのって
ライブラリとかフレームワークだと意味あるけどアプリケーションレベルの実装でやる意味って無いですよね?

721 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a13e-aWw4) mailto:sage [2023/08/29(火) 16:40:14.71 ID:s7G+g/ai0.net]
>>707
インターフェースって何?



722 名前:デフォルトの名無しさん (ワッチョイ d95f-1fgM) mailto:sage [2023/08/29(火) 16:40:33.32 ID:Gj9jSZac0.net]
インターフェースが何を指すか次第だけど、たぶんPimplイディオムのことかな?
ライブラリみたいに境界がかっちりしてないならそうかもね

723 名前:蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdea-fyEs) mailto:sage [2023/08/29(火) 16:40:58.05 ID:A1BJ1LVxd.net]
>>707
ビルド時間を短縮する目的での隠蔽に使われることはある。隠蔽っていろいろ便利だから。

724 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a13e-aWw4) mailto:sage [2023/08/29(火) 17:08:55.74 ID:s7G+g/ai0.net]
pimpl は疎結合にできる分だけ
差分ビルドでコンパイルする範囲が
小さくなるから特に巨大なプログラムの開発では
ビルド時間を短縮する意味はあるはずだが
余計な構造を挟む煩わしさと比べて
割にあうのはよっぽど極端な場合に限ると思われている。
(意味はあるが意味のある状況は限定的)

725 名前:デフォルトの名無しさん (ワッチョイ a910-/+sI) mailto:sage [2023/08/29(火) 22:48:32.90 ID:fHM5F2qI0.net]
>>707
大きなアプリを、元請け社の元で複数の下請けが作っている場合、
お金の流れが全然違う他社のコードとリンクする事はあるよね。

で、紳士協定で「設計書で使っていいと言ってる機能だけ外部から使って」としても
約束を破るバカモノがいる場合もある。
信頼できない他社から自社の身を守る(徹夜で他社のバグ解析に付き合わされる事を防ぐ)など
レイヤー化する事には、もしかしたら意味があるかも知れないね

悲しい&バカらしいかも知れないけど

あとは逆に、自社の実装バグを見つけてアッー!ってなった時に、インタフェースを守ってる他社に、自社の実装変更&リリースによる「再ビルド要」の迷惑をかけてしまう事を防ぐ、意味はあるかも知れない

726 名前:デフォルトの名無しさん (ワッチョイ a910-/+sI) mailto:sage [2023/08/29(火) 22:49:56.05 ID:fHM5F2qI0.net]
いや、分からんな、ゴメン

727 名前:デフォルトの名無しさん (ワッチョイ 2501-xDGp) mailto:sage [2023/08/29(火) 22:55:37.38 ID:82ATxlW40.net]
デフォルトでpimplの俺は少数派か...

728 名前:デフォルトの名無しさん (ワッチョイ 2501-xDGp) mailto:sage [2023/08/29(火) 23:23:11.79 ID:82ATxlW40.net]
C++はCの構造体をクラスに流用したからメンバー変数が見えてるけど
pimplのように隠れて然るべきが俺の持論
最適化の段階でinline化したい関数で触っている変数のみ
pimplの隠れた構造体から表の構造体に移動させているな
面倒くさくないかって? テンプレート用意してるから全然

729 名前:デフォルトの名無しさん (ワッチョイ 15b3-NdIe) mailto:sage [2023/08/30(水) 00:04:31.34 ID:mW2zyf/K0.net]
C++には不思議な魅力がある
C#

730 名前:デフォルトの名無しさん (ワッチョイ 15b3-NdIe) mailto:sage [2023/08/30(水) 00:05:23.32 ID:mW2zyf/K0.net]
なんか途中で書き込みに行きやがった
JDimバグってないか???

731 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ a13e-e+8E) mailto:sage [2023/08/30(水) 00:13:16.01 ID:9akroxuQ0.net]
>>715
隠すべきものが隠せていないのはそうだけど構造体を流用したことというよりも、
各翻訳単位でコンパイルしてからリンクするという C の手順を踏襲した都合だと思う。
他の翻訳単位の情報を見ずにコンパイルできる状況にするということを曲げないなら
オブジェクトの大きさを確定するのに必要な情報をクラス定義内に書く仕組みにせざるを得ない。



732 名前:デフォルトの名無しさん (ワッチョイ 355f-vHpx) mailto:sage [2023/08/30(水) 12:34:02.83 ID:biy0pv8/0.net]
>707 が言ってるのはたぶん pimpl じゃなくて抽象クラス(=インターフェースクラス)を使った隠蔽じゃないかな?
pimpl より楽なので新規クラスではこっちしか使わなくなった。

733 名前:デフォルトの名無しさん (ブーイモ MMea-C1Tt) mailto:sage [2023/08/30(水) 15:13:40.69 ID:STopcx5aM.net]
>>719
メンバー関数の宣言が重複するのが
こちらは嫌なところかなぁ

734 名前:デフォルトの名無しさん (ワッチョイ 3e79-FVin) mailto:sage [2023/08/30(水) 16:07:23.97 ID:bGhOLdki0.net]
pimplなんてCでは普通のテクニックだったのにC++はいちいち大げさだなあ

735 名前:デフォルトの名無しさん (ワッチョイ 86fb-1XyZ) mailto:sage [2023/08/30(水) 19:39:24.36 ID:rrx0kAlJ0.net]
オタク界隈やと呼吸レベルで使いこなすよな

736 名前:デフォルトの名無しさん (スップ Sdea-0Z8Z) mailto:sage [2023/08/31(木) 07:08:06.02 ID:wYoApzHMd.net]
>>717
手元がバグってるだけじゃないかな(名推理)

737 名前:デフォルトの名無しさん (ワッチョイ c328-9M69) mailto:sage [2023/09/03(日) 20:40:30.70 ID:uJA/UdoJ0.net]
pimplのクラスか構造体の宣言だけ行うところでC++Testに文句言われる……

738 名前:デフォルトの名無しさん (アウアウウー Sae7-fXI3) [2023/09/04(月) 10:15:14.85 ID:/ASAZOX6a.net]
Rust使い過ぎてC/C++でclassとstructに;付け忘れはあるある

739 名前:デフォルトの名無しさん (ワッチョイ 3378-+GqY) [2023/09/05(火) 01:10:33.18 ID:6M2Epndy0.net]
templateを使わなきゃpimplなんか必要ないだろ。

740 名前:デフォルトの名無しさん (ワッチョイ 4301-bHR5) mailto:sage [2023/09/05(火) 01:16:38.13 ID:c+OS/OAh0.net]
>>726
やっぱデフォルトでpimplの俺は少数派かなぁ

741 名前:デフォルトの名無しさん (ワッチョイ 4301-bHR5) mailto:sage [2023/09/05(火) 01:18:44.98 ID:c+OS/OAh0.net]
>>726
というよく読んだら気付いたが
templateこそpimplと相性悪いのでは?



742 名前:デフォルトの名無しさん (ワッチョイ 3378-+GqY) [2023/09/05(火) 01:36:59.02 ID:6M2Epndy0.net]
あー、誰かが言ってるようにpimpl使わないと、ヘッダファイルだかCPPファイルだか1行修正しただけで全部再コンパイルされてしまうというのあったな。

743 名前:デフォルトの名無しさん (ワッチョイ b67a-6I4L) mailto:sage [2023/09/09(土) 00:14:54.72 ID:N+hvybCm0.net]
自分に合うC++の本を探しています。
独習c++(高橋)を候補にしてます。
以下の程度の人に向いているでしょうか。

Cはポインタを含めてほぼすべて分かります。

C++は昔、クラス周辺の文法を林本で理解したものの、ほとんど書いてないので設計ノウハウがなく、ここは強化したい点です。

C++11より前なので11以降が分かりません。テンプレートやベクターもまったく分かりません。

744 名前:デフォルトの名無しさん (オイコラミネオ MM63-SjEv) mailto:sage [2023/09/09(土) 00:39:25.00 ID:uw9REbuTM.net]
なんで一冊だけ決めて勉強するのか意味不明なんだな
とりあえず読め
沢山読んだら死ぬのか?

745 名前:デフォルトの名無しさん (ワッチョイ 2328-E2FL) mailto:sage [2023/09/09(土) 00:40:08.83 ID:JvG/rAdc0.net]
>>728
むしろ発想が逆で、templateを使い倒して書いたモジュールをの公開インターフェースからtemplateの痕跡を消してしまうのに使う

746 名前:デフォルトの名無しさん (オイコラミネオ MM63-SjEv) mailto:sage [2023/09/09(土) 00:42:57.07 ID:uw9REbuTM.net]
ここにいる連中は太古の昔に入門して入門書なんて無縁なんだ
良書などなく分厚くて誤訳満載の本を読んで勉強して血を流しながら進んだ
何冊も読んだ

タイパなんてくそくらえ
到達したいところがあるなら時間を掛けろ

747 名前:デフォルトの名無しさん (ワッチョイ 2328-E2FL) mailto:sage [2023/09/09(土) 00:44:19.17 ID:JvG/rAdc0.net]
今日聞いたのですだがオンライン辞書サービス Dictionary.com にアルゴリズムの短縮形 algo が追加されたらしい
すっかり定着したコンストラやデストラといった略語もそのうち辞書に載るかも……

748 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-1kEh) mailto:sage [2023/09/09(土) 01:21:30.56 ID:Ig5iuvnc0.net]
C++ は一般原則で示せない変則的なルールも多いのでそういうのはまるごと知っておくしか仕方がない。
そういったルールの分量が単純に多いから学習するにはたくさん読まないといけないのも仕方がない。

僅かだが互換性を損なう仕様改定もあるし、作法が変わった部分もあるので混乱しないように古すぎる資料は避けた方がよさそうという程度の助言は出来るけど具体的に現代的な入門書というと手堅いものは挙がらんのよな……

749 名前:デフォルトの名無しさん (ワッチョイ 177c-h0AF) mailto:sage [2023/09/09(土) 01:29:10.69 ID:444GCDJV0.net]
Cしか知らんならC++より先に一般的なオブジェクト指向の勉強した方が良さそう
Cの延長で文法と機能だけつまみ食いしてたらstaticおじさんが生まれてしまう

750 名前:デフォルトの名無しさん (ワッチョイ 1710-Z579) mailto:sage [2023/09/09(土) 06:43:09.16 ID:Ej2BTroL0.net]
C++は余りに途方もないというか、難しいですよね

「ポインタを分かってます」とか言ってしまう時点で想像がつくというか、遠いなというか

751 名前:デフォルトの名無しさん (ワッチョイ 23f0-JHZ4) [2023/09/09(土) 09:16:01.68 ID:46L/9V3B0.net]
とりあえず
Effective C++と
Effective Modern C++
あたりがいいんじゃない



752 名前:デフォルトの名無しさん (ワッチョイ 4efb-DZDQ) mailto:sage [2023/09/09(土) 09:40:35.80 ID:4/gA6xPM0.net]
>>730
色々読むのもありなんだけど
自分にあった本の探し方も学習の一つ
ネットの情報は鮮度もあるし、なんらかの意図が含まれている可能性があるので
本当に自分に合う本を探すつもりなら本屋に行ってみるのもありだよ
それと何を作りたいかによって、選ぶジャンルが違ってくると思うんだ
網羅的に読みたいのであれば、c++の開発者が書いた本もあるし、最近なら苦しんで覚えるシリーズも売れているだろうし
目的を強くイメージできて、この本からその目的の学習ができ、スキルアップ可能なのかどうかをしっかりと自問自答すると…

753 名前:デフォルトの名無しさん (ワッチョイ e301-aVri) [2023/09/09(土) 12:03:26.84 ID:ipyM0SHG0.net]
Scott Mayers信者うざい

754 名前:デフォルトの名無しさん (ワッチョイ 0b01-HtNW) mailto:sage [2023/09/09(土) 12:41:12.24 ID:MLVcfiFl0.net]
Mayersはtips集だから>>730の段階では早い
Mayersは良いこと書いてるよ
ただしMore Effective C++は訳が酷かった

755 名前:デフォルトの名無しさん (オイコラミネオ MM63-SjEv) mailto:sage [2023/09/09(土) 13:48:08.63 ID:uw9REbuTM.net]
昔々は技術書系はもう訳がめちゃくちゃだった

なんの本か忘れたけど技術者じゃないただの翻訳家みたいのが訳したのがあって
ずっと「所与の」の言うワードがページにちりばめられていて読みづらいのなんの

所与の値、所与の条件、所与の…
日常生活で所与のって使わんだろ
どんな爺さんが訳したんだか

756 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-1kEh) mailto:sage [2023/09/09(土) 14:37:56.58 ID:Ig5iuvnc0.net]
他にどう表現すればよかったと思う?

757 名前:デフォルトの名無しさん (スッププ Sdba-1UeE) mailto:sage [2023/09/09(土) 15:44:12.23 ID:npM3Z9YAd.net]
そんな部分よりも
専門用語がめちゃくちゃで意味が通じない方が問題だと思うよ

758 名前:デフォルトの名無しさん (ワッチョイ b65f-MmH2) mailto:sage [2023/09/09(土) 15:47:03.01 ID:IggX53ET0.net]
スレッドを「糸」と翻訳したり、ポートをマジで「港」と翻訳してる本なら持ってる

759 名前:デフォルトの名無しさん (スッププ Sdba-1UeE) mailto:sage [2023/09/09(土) 15:49:24.11 ID:ntGEHGTWd.net]
ファイバーとかマスタースレーブとか

今だと海外通販の日本語訳が面白い
勝利11
男性女性ケーブル

760 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-1kEh) mailto:sage [2023/09/09(土) 16:02:33.33 ID:Ig5iuvnc0.net]
専門用語は多少は不自然でもいいが(その分野では)皆が一貫して同じ用語を同じ意味で使ってくれんと困るな。
でも慣例が確立していない時代のものなら今の時代から見て不自然なことがあってもそれは仕方がない。

761 名前:デフォルトの名無しさん (ワッチョイ 7af0-SjEv) mailto:sage [2023/09/09(土) 16:24:17.70 ID:GTFNmrLV0.net]
JISが更新されないから新しい日本語訳はもう生まれてこないんだ
新たな誤訳に悩まされる事が無くなってよかったな?



762 名前:デフォルトの名無しさん (オイコラミネオ MM63-SjEv) mailto:sage [2023/09/09(土) 16:32:21.11 ID:uw9REbuTM.net]
given 与えられた
assigned 割り当てられた
allocate 配置された

覚えてる感じだと大体このあたりが全部所与のになってた
ありえない

763 名前:デフォルトの名無しさん (ワッチョイ 2328-E2FL) mailto:sage [2023/09/09(土) 17:09:59.01 ID:JvG/rAdc0.net]
行き先:女性との別れ

764 名前:デフォルトの名無しさん (ワッチョイ 2328-E2FL) mailto:sage [2023/09/09(土) 17:35:14.02 ID:JvG/rAdc0.net]
・算譜
・算体
・算帖
・算程
・作譜
・作譜用言語
・譜構
・模塊
・偏位
・際どい部分
・行き詰まり

765 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-1kEh) mailto:sage [2023/09/09(土) 17:40:33.10 ID:Ig5iuvnc0.net]
バグ取りを蟲繕い(むしつくろい)って書いてたのもどこかで見たことがあるな

766 名前:デフォルトの名無しさん (ワッチョイ 838e-7VGn) [2023/09/09(土) 17:49:07.83 ID:tJCpX1LH0.net]
ストライクをよし!とか言い出しそう

767 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 1732-1kEh) mailto:sage [2023/09/09(土) 18:57:14.21 ID:k09IENG+0.net]
カタカナ語よりは短く表現できるからもしも訳語として定着していたならそれはそれでアリだと思う。
でも定着しなかったという現実を前にしたら仕方がないね。

768 名前:デフォルトの名無しさん (ワッチョイ 0b01-NP+X) [2023/09/09(土) 19:12:51.10 ID:4bE7KSLp0.net]
>>748
カタカナ語も誤読が蔓延しているので良くない。

garbage ○ガーベジ ×ガベージ
iterator ◎イタレイタ ○イタレータ ×イテレータ
operand ○オパランド ×オペランド
operator ◎オパレイタ ○オパレータ ×オペレータ
reference ◎レフランス ○レファレンス ×リファレンス
storage ○ストーレジ ×ストレージ

769 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-1kEh) mailto:sage [2023/09/09(土) 19:18:35.71 ID:Ig5iuvnc0.net]
それは日本方言

770 名前:デフォルトの名無しさん (ワッチョイ ff39-bdWa) [2023/09/09(土) 19:20:01.31 ID:1xGTpgW80.net]
>>755
文系くさいマウントだなw

カタカナで書いてる時点で正しい英語でも何でもねえんだよ
文系でも底辺カーストだろ、おまえw

771 名前:デフォルトの名無しさん (ワッチョイ dbcf-SjEv) mailto:sage [2023/09/09(土) 20:12:08.56 ID:Vd67mKNx0.net]
少なくとも長音の位置はどっちが正解と言い切れるものではない



772 名前:デフォルトの名無しさん (ワッチョイ 0b01-NP+X) [2023/09/09(土) 20:33:28.51 ID:4bE7KSLp0.net]
>>758
gar·bage /ˈɡɑːbɪdʒ/
stor·age /ˈstᴐːrɪdʒ/

第1音節が長母音でアクセントもあり、第2音節が短母音でアクセントもないのに、後の方を長くするのは明らかに間違い。

773 名前:デフォルトの名無しさん (ワッチョイ 1710-y1iQ) mailto:sage [2023/09/09(土) 20:45:53.06 ID:Ej2BTroL0.net]
便乗w。警告ウォーニングをワーニングって言うの、やめよう。ね。

774 名前:デフォルトの名無しさん (ワッチョイ 23f0-JHZ4) [2023/09/09(土) 20:56:01.80 ID:46L/9V3B0.net]
autoはアウトと呼ばれない謎

775 名前:デフォルトの名無しさん (ワッチョイ e3da-bfD5) mailto:sage [2023/09/09(土) 21:03:24.19 ID:4yGgnkB40.net]
automaticの略だから発音は謎
intをなんと発音すべきか問うているようなものよ

776 名前:デフォルトの名無しさん (ワッチョイ 9a6a-MmH2) [2023/09/09(土) 21:08:43.40 ID:yhgo4C8h0.net]
routineをルーティーンって書く最近の風潮に違和感

777 名前:デフォルトの名無しさん (ワッチョイ 179c-C+22) [2023/09/09(土) 21:12:22.45 ID:ed8VSodZ0.net]
ワーニングは和製英語なんだからワーニングでいいでしょ
服のシワをとる機械のことアイアンって呼んでるの?アイロンでしょ?
スキー板を固定する器具をバインディングって呼んでるの?ビンディングでしょ?

カタカナ語として定着しているものの発音がーとか言ってもしょうがないよ

778 名前:デフォルトの名無しさん (スッププ Sdba-1UeE) mailto:sage [2023/09/09(土) 22:58:47.81 ID:2svzew1vd.net]
charをチャーって言うのは気に食わない

779 名前:デフォルトの名無しさん (ワッチョイ 1710-y1iQ) mailto:sage [2023/09/09(土) 23:09:32.43 ID:Ej2BTroL0.net]
>>764
服のシワを取るシステムやスキー用品のシステムを作ってるなら顧客に合わせるけど、ドメイン名解決のソフトはバインドと呼ぶしソケットにアドレスを紐づけるのもバインドと呼んでるよ
まあ君はそれで行きなされ。私も私の道を行くよ

780 名前:デフォルトの名無しさん (ワッチョイ a702-8VQg) mailto:sage [2023/09/09(土) 23:19:04.00 ID:K25duMZT0.net]
>>753
いいね
野球も〝ひとよし〟〝ふたよし〟でいこうよ

781 名前:デフォルトの名無しさん (ワッチョイ a702-8VQg) mailto:sage [2023/09/09(土) 23:21:08.37 ID:K25duMZT0.net]
>>765
いや、それは〝ちゃー〟です



782 名前:デフォルトの名無しさん (ワッチョイ 179c-C+22) [2023/09/09(土) 23:28:03.12 ID:ed8VSodZ0.net]
>>766
顧客に合わせるってのは慣習に合わせるってことでしょ? それでいいと思うよ
ワーニングもアイロンもビンディングも慣習的にカタカナでそう綴られてきて定着してる
いまさらネイティブの発音とギャップがあるとか言われてもねえ

783 名前:デフォルトの名無しさん (ワッチョイ 179c-C+22) [2023/09/09(土) 23:33:22.85 ID:ed8VSodZ0.net]
アイロンのことを正しい発音はアイアンだよって訂正されたら「この人、日本語のアイロン知らんのかな?」って思うでしょ
ワーニングも同じ
ワーニングを正しい発音はウォーニングだよって訂正する人たまにいるけど「この人、日本語のワーニング知らんのかな?」っ思う

784 名前:デフォルトの名無しさん (ワッチョイ 0b01-HtNW) mailto:sage [2023/09/09(土) 23:38:57.43 ID:MLVcfiFl0.net]
channelはチャンネルからチャネルになったな

785 名前:デフォルトの名無しさん (ワッチョイ 7af0-SjEv) mailto:sage [2023/09/09(土) 23:41:50.50 ID:GTFNmrLV0.net]
>>771
これおじさん的に衝撃的だったよね
「テレビ8チャンに変えて」を"8チャネ"に変えてに変えないといけなくなる

786 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-1kEh) mailto:sage [2023/09/10(日) 00:17:52.94 ID:ucqWE+/B0.net]
英語の発音なんか雑なもんやぞ。
ワイが知っとる例だと particularly をパティキュリと言ってる人がかなり多いとか言う話やな。
音が入れ替わったり脱落したりなんてよくあることで、正しい発音はない。
表音文字なのに音を表すのを諦めとるから雑さが加速しとる気がする。

787 名前:デフォルトの名無しさん (ワッチョイ a702-8VQg) mailto:sage [2023/09/10(日) 00:39:41.79 ID:y88PGdZC0.net]
>>771
通信業界にいた身としては〝Dチャネル〟や〝Bチャネル〟って言ってたけど、テレビは〝チャンネル〟でしょ
そしてここは〝5ちゃんねる〟

788 名前:デフォルトの名無しさん (ワッチョイ 0b01-HtNW) mailto:sage [2023/09/10(日) 01:06:53.71 ID:uILl1E7m0.net]
>>774
>そしてここは5ちゃんねる
ああ!そうだね

789 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 03:55:17.68 ID:mjW4Nz4DM.net]
VC++ って名前に反して 実は VC++ Runtime ありきの中間言語ですか、Borland C++ は Native なんでつか??

折角C++で書いても Win32API 使ったら、 Runtime ないと怒られるのは悲しい><

790 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 03:58:45.21 ID:mjW4Nz4DM.net]
>>770 情報関係だと基本、カタカナ語使わず英語をそのまま記載するのでゎ。同音異義語が多くて紛らわしいという事もありますし。
人名と用語は英語で記載。

Runtime、Native ぐらいならカタカナでも良いかなと思うが、いちいちそこで切り分けるのも面倒だから、もう英語で。

791 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 04:06:35.32 ID:mjW4Nz4DM.net]
>>755 誤読はまだしも、誤訳で有名なのは イマジナリショート。

漏れも持ってて勉強した トランジスタ技術 OPアンプ回路の設計という本で、 イマジナリショートと紹介してあった。
しかもご丁寧に imaginary short と。

CQ誌は今でも意固地(わかってて)に、 imaginary short という用語を website に公開してある。

いまでこそソフトウエアの分野では 仮想化技術が浸透したので、仮想といえば virtual だが、
当時は文学が好きな人がイマジナリーと訳しちゃったんのかな、と。

ただそれの恐ろしいことは CQ 誌で紹介された用語が、 Ohm社などの電子回路の教科書にも、えいえんとその誤訳が
使われ続け、半世紀たったいまでも改善がない・・



792 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 04:09:52.26 ID:mjW4Nz4DM.net]
ソフトウエアもそうだが、ソリッドステート(トランジスタ)回路も、学術より企業の方が進んでいて、

1970年代、企業技術者がまっさきに技術書を書いて、学術家(教員)がそれを天下り的に学生に教えていた経緯から、
おそろしいことに誤訳が広まったのだろう。

幸い、ソフトウエアの用語では誤訳が広まった例を聞いたことがないが、何かあるのだろうか?

793 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 04:15:15.20 ID:mjW4Nz4DM.net]
Visual C++ ってのも製品名(商標)ではあるが、何が Visual なのか全くわからんな・・・

Runtime 言語だから、 Virtual C++でもよかったのに。。

794 名前:デフォルトの名無しさん (ワントンキン MM8a-HSys) mailto:sage [2023/09/10(日) 04:18:48.48 ID:S3Exn9iLM.net]
X えいえんと
O えんえんと 延々と

795 名前:デフォルトの名無しさん (ワントンキン MM8a-HSys) mailto:sage [2023/09/10(日) 04:20:33.14 ID:S3Exn9iLM.net]
>>780
GUIか作れたからVisualなんだよ…
virtual関係ない

796 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 04:21:53.21 ID:mjW4Nz4DM.net]
トランジスタってのもそうですな。これは三本足を意味するので、半導体であることを強調する場合は 古めかしい用語、ソリッドステート
がいまだに用語として使われている。SSD、SSRとかも。

あとはダイオードもそうだ。ダイオードといえば今日では半導体ダイオードをほぼ指すが、真空管時代にもダイオードがある。
制御端子のついた素子の場合は、真空管の場合は3つ足ではなく、4つ足だから、これはトランジスタに関しては混同することはないけれども。


カタカナ語なんてのはどうせ和製英語なんだし、そもそもが間違いだから、そのツヅリが多少違ってようが、はっきりいってどうでもいいが、
それよりは用語そのものが重要な気がする。

797 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 04:23:22.67 ID:mjW4Nz4DM.net]
>>782 GUIだから Visual って、なんかザパニーズ的な発想だな、て思ってさぁ。。

798 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 04:24:45.09 ID:mjW4Nz4DM.net]
GUIといえば、いまだにツヅリがまともに出てこないのが、 WYSIWYG だな・・・

これなんだよって思う・・覚えにくいわ。

799 名前:デフォルトの名無しさん (ワンミングク MM8a-HSys) mailto:sage [2023/09/10(日) 04:26:02.38 ID:CBa8BQ/hM.net]
>>784
runtimeもCRTなだけであって中間言語ではない
設定すればリンクしておけた

800 名前:デフォルトの名無しさん (ワンミングク MM8a-HSys) mailto:sage [2023/09/10(日) 04:28:34.59 ID:sGHB2qn6M.net]
>>785
wysiwygは画面と印刷の話であってボタンなどのGUIは関係ない

801 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 04:28:45.86 ID:mjW4Nz4DM.net]
ググったら真空管って色々あるんだな。学校で習ったときは4端子だから、それしか知らんかった・・



802 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) mailto:sage [2023/09/10(日) 04:32:12.32 ID:mjW4Nz4DM.net]
>>786 そうだね。でも CLR を含めた DLL は、.NET で動かすことはできないぢゃない。共存できないとかで。

803 名前:デフォルトの名無しさん (ワンミングク MM8a-HSys) mailto:sage [2023/09/10(日) 04:32:25.91 ID:Cs1N+L1lM.net]
むしろ4端子の真空管知らんわw

804 名前:デフォルトの名無しさん (ワンミングク MM8a-HSys) mailto:sage [2023/09/10(日) 04:33:43.35 ID:Cs1N+L1lM.net]
>>789
あまりに物を知らなすぎ
もう少しググってからにしろ

805 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) mailto:sage [2023/09/10(日) 04:34:01.51 ID:mjW4Nz4DM.net]
>>786 もどかしいんだよな。 CLI て .NET へ展開ありきなのに、.NET で動かそうと思うと、VC++, .NET それぞれの Runtime
をインスコしないといけないなんて・・

806 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 04:36:01.83 ID:mjW4Nz4DM.net]
>>791 中間言語は暴論だった。バイトコードとか、そういうのは知ってるよぅ。

でもVC++が Native というと、微妙だよね?

807 名前:デフォルトの名無しさん (ワンミングク MMdf-HSys) mailto:sage [2023/09/10(日) 04:37:18.31 ID:2P1NQmHAM.net]
>>793
完全にnativeだバカ

808 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 04:44:45.18 ID:mjW4Nz4DM.net]
>>794 そう。そういうものだと思って諦めよう。

VC++ Runtime , .NET Runtime 両方をインストールなんて・・・・・

809 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 04:45:41.78 ID:mjW4Nz4DM.net]
CLR と CLI ってのも 1字違いで紛らわしいよね。作ってるから混同することないが、ネットには嘘ばっかり書いてある。

810 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 04:46:55.11 ID:mjW4Nz4DM.net]
私が嘘をつくように、Google ったものもやっぱり半信半疑だな。読みづらいけど、MSDN が頼りか。

811 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 04:52:52.27 ID:mjW4Nz4DM.net]
VC++ の絵本って巷に沢山あるのに、 P/Invoke の込み入った話なると絶滅するのは何でだろう。パンチラ的に紹介してる本は
持ってるが、暗黙で処理される範囲の、marshal_as しか書いてない。

別にあれだけでも、どんな型だろうと、力技で .NET へ展開はできるが、そういうヴァカげたことをしなくてもいいように
メソッドがあるらしいが・・ MSDN には網羅的に書いてない気がするんだよな・・

だれかプログラマの人、だれが知ってますか?



812 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 05:08:17.06 ID:mjW4Nz4DM.net]
https://www.pinvoke.net/

こんな面白いサイトがあった。

813 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 05:09:01.19 ID:mjW4Nz4DM.net]
でもこれ marshal じゃなく、 winAPI のサイトだった。騙された。

814 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 05:15:58.88 ID:mjW4Nz4DM.net]
今気づいたが、イマジナリショートの話題を出すこと自体が、名誉棄損になるんだな。

悪意はなかった。

815 名前:デフォルトの名無しさん (ワッチョイ 1710-y1iQ) mailto:sage [2023/09/10(日) 06:28:06.21 ID:FLd+43pK0.net]
なんか、ゴメンなみんな
変なの来て

816 名前:デフォルトの名無しさん (ワッチョイ 23c0-GCG0) mailto:sage [2023/09/10(日) 06:55:00.05 ID:Ribu4gV00.net]
こういう時は素数でも生成させて心を落ち着けよう

817 名前:デフォルトの名無しさん (スフッ Sdba-DsdQ) [2023/09/10(日) 10:31:59.53 ID:Ze6l4C7Cd.net]
>>784
OS に Windows って名前付ける

818 名前:Zンスがもうね

新聞ではウインドウズとかウインドーズとかもう読むのも恥ずかしい
[]
[ここ壊れてます]

819 名前:デフォルトの名無しさん (ワッチョイ 7679-767B) mailto:sage [2023/09/10(日) 10:35:29.16 ID:+iIUaIW20.net]
>P/Invoke
>pinvoke
前から思ってたけど
どう見ても日本語ではピンボケって発音になるんだけど合ってるよね?
プラットフォームうんちゃらとは言わないよね?

820 名前:デフォルトの名無しさん (ワッチョイ a702-8VQg) mailto:sage [2023/09/10(日) 11:26:23.32 ID:y88PGdZC0.net]
無駄に長いレスで危険に気づいて触らなかったぜ

821 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-1kEh) mailto:sage [2023/09/10(日) 12:35:27.08 ID:ucqWE+/B0.net]
>>804
新聞は縦書きが基本やからラテンアルファベットは収まりが悪いんや。



822 名前:デフォルトの名無しさん (ワッチョイ 5fa7-fyxg) mailto:sage [2023/09/10(日) 12:47:45.53 ID:RAKj8ghM0.net]
VSがC++を広めたという功績をいい加減認識しよう

823 名前:デフォルトの名無しさん (オイコラミネオ MM63-SjEv) mailto:sage [2023/09/10(日) 13:00:33.33 ID:YVmQiRtOM.net]
>>778
それは本人が広めた俗説で武勇伝のように語ってる人がいるだけなんだけどなあ
その人の前にすでに使ってる人がいるらしい

824 名前:デフォルトの名無しさん (ワッチョイ 7679-767B) mailto:sage [2023/09/10(日) 13:04:43.55 ID:+iIUaIW20.net]
イマジナリーフレンドとか日本ではもう負のイメージしかない

825 名前:デフォルトの名無しさん (オイコラミネオ MM63-SjEv) mailto:sage [2023/09/10(日) 13:14:50.06 ID:YVmQiRtOM.net]
今はネットがあるけど本しかなかった時代はこうだと言いきったらそれがすべてのように語り継がれる
よくあった話

考えても無駄で声の大きな人が叫び続けたらそれが真実になった時代

826 名前:デフォルトの名無しさん (ワッチョイ 23c0-GCG0) mailto:sage [2023/09/10(日) 13:33:32.78 ID:Ribu4gV00.net]
>>808
昔はTurbo C/C++あたりも貢献してた気がする

827 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) mailto:sage [2023/09/10(日) 17:22:43.47 ID:mjW4Nz4DM.net]
>>811 void(main) もそうだな。火勃の処理系での話を、一般のCの本で示したり。今は見かけないが。

828 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) mailto:sage [2023/09/10(日) 17:24:08.39 ID:mjW4Nz4DM.net]
昔の Cの本では「オマジナイ」と書いてあったのもあったな。今思えばちゃんと書けばいいのになぜ端折るのか。

829 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) mailto:sage [2023/09/10(日) 17:28:16.55 ID:mjW4Nz4DM.net]
>>812 漏れウトリ世代やが、ガッコの頃は未だ課題とかでは Borland C++ 試食版を使えて云はれてたな。
Express は有ったと思うが、まだ無料で使える認識はなかった。

IDEがお高いなら如何しようもないし。

830 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) [2023/09/10(日) 17:30:50.00 ID:mjW4Nz4DM.net]
無料云々よりも MS 毛嫌いしてた教官が多かったな。逆に漏れは UNIX のシステムコールに嫌悪して、パソコンは向いてないなと絶望したクチだが。

831 名前:デフォルトの名無しさん (ブーイモ MMb6-6jLp) mailto:sage [2023/09/10(日) 17:33:23.68 ID:mjW4Nz4DM.net]
>>813 main(void) だったw 恥w 過去のゆがんだ知識だけで喋るとろくなことねぇな・・ググって喋るか・・



832 名前:デフォルトの名無しさん (ワッチョイ 7af0-SjEv) mailto:sage [2023/09/10(日) 19:09:04.52 ID:Pd/KsKZr0.net]
ID真っ赤の人居てこえよ

833 名前:デフォルトの名無しさん (スッップ Sdba-GCG0) mailto:sage [2023/09/10(日) 20:01:28.68 ID:neTrtRBid.net]
大丈夫
そいつの人生が燃え尽きる前の最後の連投だろうからじきに居なくなるはず

834 名前:デフォルトの名無しさん (ワッチョイ 5702-lR3i) mailto:sage [2023/09/10(日) 20:08:30.15 ID:xFvkuA0z0.net]
どんなスレでも、開いたら真っ先に赤い ID を連鎖で消せばエエんやで。読む必要なんて全くない。

835 名前:デフォルトの名無しさん (ワッチョイ 1ac8-Du02) mailto:sage [2023/09/10(日) 20:57:47.15 ID:aESfk8YH0.net]
Borland がまだ試用版出してることに気づいてビビったぬ

836 名前:デフォルトの名無しさん (ワッチョイ 1710-y1iQ) mailto:sage [2023/09/10(日) 21:03:42.16 ID:FLd+43pK0.net]
ボーランド買収されたんじゃなかった?

837 名前:デフォルトの名無しさん (ワッチョイ 0eda-JsEB) mailto:sage [2023/09/10(日) 22:03:12.34 ID:2Yw/GuxT0.net]
普通 MIWA C++

838 名前:デフォルトの名無しさん (ワッチョイ 9a6a-MmH2) [2023/09/10(日) 22:11:12.61 ID:LbmwjQXL0.net]
経緯はよう知らんけどBorland --> Embarcaderoやね
C++Builder(Delphiだったか?)の円盤に入ってたWin32APIヘルプファイルには大変お世話になりました

839 名前:デフォルトの名無しさん (ワッチョイ 2328-E2FL) mailto:sage [2023/09/10(日) 22:17:07.52 ID:Pndu+c7V0.net]
>>780
統合開発環境Visual Studioで動かせるC++なのだ
からでは……

840 名前:デフォルトの名無しさん (ワッチョイ 7679-767B) mailto:sage [2023/09/10(日) 22:20:12.44 ID:+iIUaIW20.net]
Delphiが始めからC/C++だったら天下取ってた
しかし当時のC++仕様は微妙すぎた
Delphiである程度成功はしたがBorlandにとっては運命の割れ目だった

841 名前:デフォルトの名無しさん (スッップ Sdba-Du02) mailto:sage [2023/09/10(日) 22:58:01.53 ID:I57c0J7vd.net]
標準無視して勝手に仕様拡張するワケにもいかんしぬ



842 名前:デフォルトの名無しさん (ワッチョイ 4efb-DZDQ) mailto:sage [2023/09/10(日) 23:08:31.10 ID:r4gDBnSC0.net]
運命とケツの割れ目はご愛嬌

843 名前:デフォルトの名無しさん (ラクッペペ MMb6-5CWk) mailto:sage [2023/09/10(日) 23:16:25.54 ID:qGoahSWhM.net]
独自拡張というならVC++は上位互換ではあるけどほぼ別言語といえるレベルにまで拡張してる(>>686)
C++

C++マネージ拡張

C++/CLI ← いまここ

844 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-1kEh) mailto:sage [2023/09/10(日) 23:29:23.31 ID:ucqWE+/B0.net]
>>825
Visual Studio のほうがだいぶんあとから登場したんだよ。
Visual C++ は C++ の統合開発環境であって、後に Visual Basic などの 他言語と統合された開発環境 Visual Studio のパッケージのひとつという扱いになった。 (それまでは Visual という名前を冠した一連の製品ではあっても個別のものだった。)
処理系をコマンドラインから起動すると Microsoft(R) C/C++ Optimizing Comiler と表示されるので処理系の名前としてはこれが正式(?)なのかもしれない。

845 名前:デフォルトの名無しさん (ブーイモ MM26-6jLp) [2023/09/10(日) 23:57:08.12 ID:UW2UL+DpM.net]
へぇ、ためになった。AI君も僕にかまってくれてありが 10。

846 名前:デフォルトの名無しさん (ブーイモ MM26-6jLp) mailto:sage [2023/09/10(日) 23:59:45.33 ID:UW2UL+DpM.net]
しかし AI script ってあんまり進化してないよな。技術的な質問に答えて呉れる AI を見たことがなひw

847 名前:デフォルトの名無しさん (ブーイモ MM26-6jLp) mailto:sage [2023/09/11(月) 00:00:58.12 ID:XhEpfHVoM.net]
AI君って何時から御活躍してんでせうか。もやし、したらば時代から居たとか?だから牽制のために ROM ってろ文化があった?

848 名前:デフォルトの名無しさん (ブーイモ MM26-6jLp) mailto:sage [2023/09/11(月) 00:04:51.51 ID:XhEpfHVoM.net]
自然言語処理の次は圏論か。これもクリアしたら人間っていったいなんだろうなみたいな存在になるな。

849 名前:デフォルトの名無しさん (ブーイモ MM26-6jLp) mailto:sage [2023/09/11(月) 00:06:56.39 ID:XhEpfHVoM.net]
頭で考えたら、美しい組版の帳票がアウトプットされる世の中はまだかい?

AIって人間虐待のための技術かょぅ

850 名前:デフォルトの名無しさん (ブーイモ MM26-6jLp) mailto:sage [2023/09/11(月) 00:08:08.65 ID:XhEpfHVoM.net]
この国の AI って下品なんだよなぁ。。上流階級のためのAIなのに、当の AI はとにかく下品。。。

851 名前:デフォルトの名無しさん (ブーイモ MM26-6jLp) mailto:sage [2023/09/11(月) 00:10:27.09 ID:XhEpfHVoM.net]
LaTeX のあの組版の美しさに感動するやうな感性を持った、 AI の登場が望まれる。

鮮人臭ただよう AI では夢がない。



852 名前:デフォルトの名無しさん (ドコグロ MM92-ZC1a) mailto:sage [2023/09/11(月) 00:21:07.18 ID:VkTMNm5cM.net]
躁は夜更かしすると悪化するから早く寝なさい
あと病院行きなさい

853 名前:デフォルトの名無しさん (オッペケ Sr3b-nVfW) mailto:sage [2023/09/11(月) 08:57:15.49 ID:lFLbI9far.net]
>>827
勝手に仕様拡張しても、皆が受け入れたら仕様の方が合わせてくるでそ

854 名前:デフォルトの名無しさん (スッップ Sdba-Du02) mailto:sage [2023/09/11(月) 09:22:30.05 ID:5hY6loBvd.net]
>>839
ソコマデ傲慢にわなれなかったんじゃネエかと思いますケドぬ

855 名前:デフォルトの名無しさん (アウアウウー Sa47-bpS4) [2023/09/11(月) 09:37:37.78 ID:lXcI/Ajda.net]
>>826
BorlandはDOS用のCUI上のC++GUIフレームワークのOWLっていうものを持ってたんだがな
MFCみたいな糞に負けるとは情けない

856 名前:デフォルトの名無しさん (アウアウウー Sa47-bpS4) mailto:sage [2023/09/11(月) 09:44:12.90 ID:lXcI/Ajda.net]
>>826
>>841 自己レスだが久々に調べてみたら
OWLNext っていうのが継承しているらしい
使って観れば良い

857 名前:デフォルトの名無しさん (スップ Sd5a-8evO) mailto:sage [2023/09/11(月) 11:53:35.40 ID:L8vrhH0Dd.net]
あれ見てきてるとエックスも結局匕に戻すんじゃねと懐疑

858 名前:デフォルトの名無しさん (ワッチョイ 2390-71cs) mailto:sage [2023/09/11(月) 20:12:39.40 ID:OIxQu93L0.net]
いつの日かVB6案件があるかもと思って
まだ押入れにVisualStudio6Enterがある

しかし受注するのはJavaやC/C++ばかり

859 名前:デフォルトの名無しさん (オッペケ Sr3b-fSdR) mailto:sage [2023/09/12(火) 13:44:31.46 ID:T1psuRaDr.net]
>>837
やうな→ような
訂正しておいてあげる

860 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ ff3e-1kEh) mailto:sage [2023/09/12(火) 15:52:50.87 ID:kNHas3Ho0.net]
歴史的仮名遣いなんだろ。
知らんけど。

861 名前:デフォルトの名無しさん (ワッチョイ 76e7-erq7) mailto:sage [2023/09/13(水) 11:02:56.50 ID:ubIK60Ld0.net]
>>846
フリック入力の誤字だよ
知らんのか



862 名前:デフォルトの名無しさん (スップ Sdba-8evO) mailto:sage [2023/09/13(水) 12:00:14.07 ID:w6WRlTikd.net]
>>847
へぇ勉強になったは

863 名前:デフォルトの名無しさん (ワッチョイ 2d2c-Gac/) mailto:sage [2023/10/02(月) 22:29:06.35 ID:ek48UNaT0.net]
ポトペタってなんの略?

864 名前:デフォルトの名無しさん (ワッチョイ 5514-yTnr) mailto:sage [2023/10/02(月) 22:32:41.04 ID:auss+27Z0.net]
ポト&ペタ

865 名前:デフォルトの名無しさん (ワッチョイ 9b84-AvD6) [2023/10/02(月) 23:54:06.18 ID:tTKA7bSS0.net]
略じゃなくてオノマトペ
drag&dropのdropを「ポト」、pasteを「ペタ」と言ってる
知らんけど

866 名前:デフォルトの名無しさん (ワッチョイ 2379-Fe8P) mailto:sage [2023/10/03(火) 07:04:56.55 ID:LgyCzmM/0.net]
ペタは分かるがポトは違うと思う

867 名前:デフォルトの名無しさん (ワッチョイ 234c-eCpa) mailto:sage [2023/10/03(火) 10:21:18.73 ID:s4jzp+7b0.net]
>>851
違う英語になってるw

868 名前:デフォルトの名無しさん (アウアウウー Sa89-5C2y) [2023/10/03(火) 11:32:53.29 ID:QaeBAOHSa.net]
drag&dropのdropを「ぽと」と言ってる
cut&pasteのpasteを「ぺた」と言ってる
ってことだろ

869 名前:デフォルトの名無しさん (スップ Sd43-zsnM) mailto:sage [2023/10/03(火) 11:50:45.36 ID:2CB+MFyFd.net]
そこまで行くと季語もほしい

870 名前:デフォルトの名無しさん (ワッチョイ 4b43-Gac/) mailto:sage [2023/10/03(火) 12:22:27.65 ID:DlHyTFki0.net]
パタヘネと何か関係ある?

871 名前:デフォルトの名無しさん (ラクッペペ MMcb-0bz8) mailto:sage [2023/10/03(火) 12:25:21.52 ID:2EpQUZ8oM.net]
構成と設計



872 名前:デフォルトの名無しさん (ワッチョイ 3df5-2+lQ) mailto:sage [2023/10/03(火) 16:24:05.27 ID:RJuubvLT0.net]
ヘネシーパターソンだっけ

873 名前:デフォルトの名無しさん [2023/10/05(木) 17:13:25.04 ID:WXXGTjkDa.net]
IDEやポトペタはキーボード打つのが遅い人用

874 名前:デフォルトの名無しさん (オイコラミネオ MMad-GYY9) mailto:sage [2023/10/07(土) 20:32:52.90 ID:Dbx341NqM.net]
youtubeで見たけどFC版のドラクエの作ってた人は何十年ぶりかのDQのデバッグで直接バイナリ書き換えてたな
ジャンプ先も数えてた

俺はIDEとポトペタ使わせてもらうわ

875 名前:デフォルトの名無しさん (アウアウクー MM35-wavJ) [2023/10/08(日) 00:23:41.50 ID:LRxf1Mc5M.net]
結局バグらなければいいから好きな方使えばいい
ただキーボード打つの速いからIDEいらないとかは
逆立ちでピアノ引けます自慢みたいなもの
ピアノ引くことが目的なのに逆立ち部分いらないだろっていう

876 名前:デフォルトの名無しさん [2023/10/08(日) 09:50:31.76 ID:CrdCteTPa.net]
土日祝になると元気出るんだなおまいら

877 名前:デフォルトの名無しさん (ワッチョイ da79-4iaA) mailto:sage [2023/10/08(日) 11:34:25.75 ID:SlOLtELZ0.net]
涼しくなったのもあるね
むしろ寒い

878 名前:デフォルトの名無しさん mailto:sage [2023/10/13(金) 08:47:13.22 ID:QvVhB9u10.net]
江添さんが頭を剃りあげているのはストラウストラップ氏に対するリスペクトを表しているのですか?

879 名前:デフォルトの名無しさん mailto:sage [2023/10/13(金) 09:54:31.02 ID:GeJhkqxf0.net]
名前出すのは止めろ

880 名前:デフォルトの名無しさん mailto:sage [2023/10/13(金) 16:02:09.02 ID:csQt26bs0.net]
本出版しているので上げても構わんやろ?

881 名前:デフォルトの名無しさん (ワッチョイ da79-4iaA) mailto:sage [2023/10/13(金) 19:26:34.74 ID:79LHTXDX0.net]
本出版してるとハゲ呼ばわりして良いルールでもあんの?



882 名前:デフォルトの名無しさん (ワッチョイ 6905-YfmG) mailto:sage [2023/10/13(金) 19:31:14.43 ID:GeJhkqxf0.net]
今の時代、名指し発言はヤバいからな

883 名前:デフォルトの名無しさん (ワッチョイ 8d14-h3vX) mailto:sage [2023/10/13(金) 20:22:45.60 ID:sLa7CNti0.net]
ハゲることが男のたった一つの勲章だって
この胸に信じて生きてきた

884 名前:デフォルトの名無しさん (ワッチョイ 55f0-IgUm) [2023/10/13(金) 20:47:42.10 ID:KYH72u1u0.net]
マ板でやれ

885 名前:デフォルトの名無しさん (ワッチョイ 9501-NGE0) [2023/10/13(金) 21:08:09.45 ID:csQt26bs0.net]
>>867
ハゲ呼ばわりではなくて名前を上げること
本を公に刊行するということは批判の対象になるということ
名前を上げても構わない

886 名前:デフォルトの名無しさん (ワッチョイ c105-v2ln) mailto:sage [2023/10/14(土) 00:02:39.12 ID:ma8uiWBB0.net]
>>871
批判と侮蔑って全然違うけど、お前、本気でそれ言ってんの?

887 名前:デフォルトの名無しさん (ワッチョイ 5901-Vk26) [2023/10/14(土) 00:30:31.78 ID:up3P3K8x0.net]
>>872
俺がいつ侮辱した? どのスレや?

888 名前:デフォルトの名無しさん [2023/10/14(土) 06:54:24.53 ID:FQQzLMjC0.net]
出版物の内容についての言及なら著者名を出したっていいよ
リスペクトで髪剃ってるのか?とか出版物関係ないだろ そういうのはやめろって話だ

889 名前:デフォルトの名無しさん (ワッチョイ 5901-Vk26) [2023/10/14(土) 10:57:26.58 ID:up3P3K8x0.net]
>>874
>リスペクトで髪剃ってるのか?とか出版物関係ないだろ そういうのはやめろって話だ
それは俺じゃない

890 名前:デフォルトの名無しさん mailto:sage [2023/10/14(土) 12:06:47.14 ID:91QwaM6H0.net]
俺じゃないならなんでこの流れでわざわざ出版があーだこーだ言い出したの?
そういった行為は横紙破りって言うんだよ口語ではあんま使わない言葉だけど
社会でうまくやっていけてなさそう

891 名前:デフォルトの名無しさん mailto:sage [2023/10/14(土) 12:10:00.69 ID:JB0xgUuV0.net]
また紙の話してる



892 名前:デフォルトの名無しさん [2023/10/14(土) 12:14:09.72 ID:x03gZ5vca.net]
自分で剃ってるのかと思ったが
本人が反論したことで
本人の望まない形で禿ていることがバレるという悪循環

893 名前:デフォルトの名無しさん (ワッチョイ 5901-Vk26) mailto:sage [2023/10/14(土) 12:42:26.40 ID:up3P3K8x0.net]
>>876
彼は出版しているので
名前を出されても構わない立場の人間であるということ
モブとは違うんだよ

894 名前:デフォルトの名無しさん (ワッチョイ 53cb-k/Ti) mailto:sage [2023/10/14(土) 13:20:35.60 ID:ULvJZdiM0.net]
Twitterにいつもいるから直接聞けよコミュ障

895 名前:デフォルトの名無しさん mailto:sage [2023/10/14(土) 18:20:44.57 ID:ma8uiWBB0.net]
>>880
正論

>>879
書いてないと主張するお前が、名前が書かれた文章前半の一部のみ勝手に正当主張をしてるのはわかってるんだけど、後半の文章についてはどう考えてるの?

896 名前:デフォルトの名無しさん (ワッチョイ 5901-Vk26) [2023/10/14(土) 19:26:26.32 ID:up3P3K8x0.net]
>>881
>書いてないと主張するお前が、名前が書かれた文章前半の
>一部のみ勝手に正当主張をしてるのはわかってるんだけど、
>後半の文章についてはどう考えてるの?
どれか分からんからきちんと書け

897 名前:デフォルトの名無しさん (ワッチョイ c105-v2ln) mailto:sage [2023/10/14(土) 21:50:40.28 ID:ma8uiWBB0.net]
横から入ってきた割に、話が通じないやつって初めて見た

898 名前:デフォルトの名無しさん (ワッチョイ 5901-Vk26) mailto:sage [2023/10/14(土) 21:57:24.93 ID:up3P3K8x0.net]
>>883
プログラム書いてるだろうに文章が下手過ぎるから話が通じない
俺は侮辱するようなことは一言も書いていない
別人が書いたのを読み違えてるんだよ

899 名前:デフォルトの名無しさん (ワッチョイ b990-lUy8) mailto:sage [2023/10/15(日) 06:50:14.19 ID:DwcyuqQy0.net]
基地外のスレチ荒らしはスルーしようぜ

900 名前:デフォルトの名無しさん (ワッチョイ c105-v2ln) mailto:sage [2023/10/15(日) 07:30:07.34 ID:T2NVqJIH0.net]
>>864は覚えておくわ

901 名前:デフォルトの名無しさん (ワッチョイ 5901-Vk26) [2023/10/15(日) 11:44:46.43 ID:S1qRngxA0.net]
>>>886
ちゃんと覚えとけよ
それは俺じゃないからね



902 名前:デフォルトの名無しさん mailto:sage [2023/10/15(日) 17:41:10.31 ID:9kWoH1jw0.net]
ハゲはナニやってもハゲるらしいからな
理由なんて無いだろう

903 名前:デフォルトの名無しさん mailto:sage [2023/10/15(日) 17:43:05.48 ID:9kWoH1jw0.net]
ハゲるヤツはナニやってもハゲるらしいからな
そもそも理由なんて無いのだろう

904 名前:デフォルトの名無しさん (ワッチョイ 1302-os2T) mailto:sage [2023/10/15(日) 21:12:08.28 ID:ehVuw9SG0.net]
いつまでもお傍にいます、最後まで…

905 名前:デフォルトの名無しさん mailto:sage [2023/10/16(月) 08:48:43.37 ID:yu+2eKsI0.net]
Stroustrupのことはハゲハゲ言うくせに江添に対しては厳しいんだなw

906 名前:デフォルトの名無しさん (スッップ Sd33-boBM) mailto:sage [2023/10/17(火) 17:04:23.91 ID:zRs2E77Cd.net]
言う程ハゲてない
まだ大丈夫

907 名前:デフォルトの名無しさん (スッップ Sd33-boBM) mailto:sage [2023/10/17(火) 17:04:42.90 ID:zRs2E77Cd.net]
言う程ハゲてない
まだ大丈夫

908 名前:デフォルトの名無しさん (アウアウウー Sadd-wvjH) mailto:sage [2023/10/17(火) 17:55:21.31 ID:it1TRy+pa.net]
ひさしぶりにこのスレにきてわかったことがひとつある

C++はハゲと相性が良い

909 名前:デフォルトの名無しさん (ワッチョイ 1379-3b5p) mailto:sage [2023/10/17(火) 19:10:02.16 ID:LcuTSSJS0.net]
C++使うとハゲるって当初噂になったぐらいだが
知らんのか

910 名前:デフォルトの名無しさん (ワッチョイ 59da-jdKV) mailto:sage [2023/10/17(火) 20:35:53.51 ID:B/3DhPmO0.net]
空いたプランクを埋めるためにC++言語仕様を高速に無理矢理理解しようとすると却ってストレスがたまってハゲることになる恐ろしい言語

911 名前:デフォルトの名無しさん mailto:sage [2023/10/17(火) 21:21:23.39 ID:WuBQOYXz0.net]
>>895
MJD?

Miwa C++ のエピスメーテーさんもHAGEなの?



912 名前:デフォルトの名無しさん (ワッチョイ 01a7-QDHO) mailto:sage [2023/10/18(水) 21:04:49.19 ID:UzfqKL8d0.net]
禿げるというより若白髪は明らかに増えたわ

913 名前:デフォルトの名無しさん (ワッチョイ c914-cthS) mailto:sage [2023/10/18(水) 21:21:08.16 ID:ELvl69q70.net]
いや、お前はもう若くはない

914 名前:デフォルトの名無しさん (ワッチョイ c914-cthS) mailto:sage [2023/10/18(水) 21:22:58.52 ID:ELvl69q70.net]
いや、お前はもう若くはない

915 名前:デフォルトの名無しさん (ワッチョイ c914-cthS) mailto:sage [2023/10/18(水) 21:25:02.33 ID:ELvl69q70.net]
もう若くはないのだ

916 名前:デフォルトの名無しさん (ワッチョイ c901-Vk26) mailto:sage [2023/10/18(水) 21:59:07.00 ID:eoT4PoLM0.net]
時期を逸するというのはなんとも悲しいものだ
取り返しはつかない

917 名前:デフォルトの名無しさん (ワッチョイ 1379-3b5p) mailto:sage [2023/10/18(水) 22:40:09.97 ID:tODhST9E0.net]
C++とMFCのコンボで世の中の何本の毛根が失われたのだろう

918 名前:デフォルトの名無しさん (ワッチョイ c901-Vk26) mailto:sage [2023/10/18(水) 22:52:13.26 ID:eoT4PoLM0.net]
取り返しはつかない

919 名前:デフォルトの名無しさん mailto:sage [2023/10/19(木) 22:15:33.96 ID:PH9oNQB60.net]
質問なのですがサイズnのstd::vector<T> vecに対してi番目(i=0, 1, 2, ..., n)の要素の直前に要素elemを1個挿入する(ただしi=nは末尾に追加と解釈する
の書き方はどうすればいいですの?
とりま2種類考えた、
1) size_t sz = vec.size();
  auto ins_it = (i < sz) ? std::next(vec.begin(), i) : vec.end();
  vec.insert(ins_it, elem);
2) size_t sz = vec.size();
  if (i < sz) { vec.insert(std::next(vec.begin(), i), elem); }
  else { vec.resize(i + 1, elem); }

920 名前:デフォルトの名無しさん (ワッチョイ 797f-/4nw) [2023/10/19(木) 23:37:01.14 ID:49m1KrYl0.net]
vec.insert(vec.begin() + i, elem);

921 名前:デフォルトの名無しさん (ワッチョイ fbda-jdKV) mailto:sage [2023/10/20(金) 09:00:04.92 ID:Z7DUQLh+0.net]
simple is best よ
何事も



922 名前:デフォルトの名無しさん (スフッ Sd33-Kt/B) [2023/10/20(金) 09:44:04.99 ID:JTOR6W7Wd.net]
だから I hate C++ の Matz はまだフサフサなのか

923 名前:デフォルトの名無しさん (ワッチョイ b990-lUy8) mailto:sage [2023/10/20(金) 15:53:09.23 ID:IDnubi5y0.net]
コードの内容なんか忘れた半年後に
再びコード見てその瞬間、分かるように書くのが一番
その為のSimple is bestに同意

924 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7b3e-RnKc) mailto:sage [2023/10/20(金) 16:04:48.20 ID:+Ixb2Hv20.net]
読み取りやすいように書くのは大事だけど、少し汚くても
わかりやすい名前を付けておけば割となんとかなる。

925 名前:デフォルトの名無しさん mailto:sage [2023/10/20(金) 20:55:51.96 ID:jh4JxiwB0.net]
おっと、名前付けの話?オッチャン持論語っちゃう

関数に長い名前つけるのはありと思うが、変数名は宣言箇所にコメント書いて2文字とか短い変数名が好き

ワシは元々BASICから始まってSmalltalkを学んだクチだけど、一時期のjavaみたいななんでも長い名前にするやつ大っきらい。Cの母音ラクダ方式大好き

926 名前:デフォルトの名無しさん (ワッチョイ dd14-PKJr) mailto:sage [2023/10/21(土) 00:04:43.68 ID:JSr5Bd510.net]
お前の好き嫌いでは議論にならん
優劣を語れよ、ジジイ

927 名前:デフォルトの名無しさん (ワッチョイ 1934-egvn) mailto:sage [2023/10/21(土) 01:04:06.34 ID:m23W7dra0.net]
>>912
が優劣について数字を出して語ってくれるそうです
どうぞw

928 名前:はちみつ餃子 mailto:sage [2023/10/21(土) 02:43:39.26 ID:WDz67hDs0.net]
C++ はある程度は汚いものだろう。
隅々まで綺麗にしようと腐心するよりは
少なくとも部品のインターフェイスくらいはまともにして
外側に対しては綺麗なふりをするくらいが手頃な妥協点だと思う。
逆にミクロ的にスマートに書けていても
抽象化が駄目だと使いにくいよ。

内も外も綺麗ならそれに越したことはないけど
そうもいかないのが現実だからね。

929 名前:デフォルトの名無しさん (ワッチョイ d563-KkNu) mailto:sage [2023/10/21(土) 08:17:46.79 ID:pQG7G9ym0.net]
>>906
天才か!
なんかこの前動かしたら駄目だった気がしたけど
今やったら動いたわサーセン;;;

930 名前:デフォルトの名無しさん (オイコラミネオ MMbd-JD/u) mailto:sage [2023/10/21(土) 12:13:35.82 ID:3FTa9ZLeM.net]
vectorなのかvecなのかは言語開発者がそうと決めたからそうなってるだけ
昔はコード補間もなくx-windowのアホみたいな長い呪文APIぶち込んでたけど今もそれだったらぶち切れてる

意外なことに開発環境が変わればいろいろ変わる

931 名前:デフォルトの名無しさん (オイコラミネオ MMbd-JD/u) mailto:sage [2023/10/21(土) 12:24:11.96 ID:3FTa9ZLeM.net]
今windowの更にクソ長い基地外じみたAPI打ってるのもコード補完があるから



932 名前:デフォルトの名無しさん (アウアウウー Sa09-mHTC) mailto:sage [2023/10/21(土) 13:25:34.47 ID:oEOsfkqwa.net]
名前の長い短かいについては上述のとおり技術の進歩、開発環境の変化で落しどころがかわってくるが
俺的にはむしろネーミングのセンスのほうが気になる
俺がまだフサフサだったころはイキって一般によく使われる単語とちょっと違う単語をわざわざ探すようなことをしていたが
頭髪が薄くなるに従ってそういうことはくだらない事と思うようになり
今はできるだけベタな誰が見ても即座に意味がつかめる、あえてダッサいネーミングをするよう心がけてる
例:データを吸いあげて収納するメソッド名
フサフサ俺がつけがちな名前 → .BeamMeUp()
ハゲ俺がつける名前 → .LoadData()

933 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8e3e-exru) mailto:sage [2023/10/21(土) 13:28:07.89 ID:lPxmC+mr0.net]
>>915
std::vector のイテレータの場合に限らず
ランダムアクセスイテレータは difference_type との加算が出来ることになってる。
https://timsong-cpp.github.io/cppwp/n3337/iterator.requirements#tab:iterator.random.access.requirements

934 名前:デフォルトの名無しさん (ワッチョイ 19f2-awtI) mailto:sage [2023/10/21(土) 13:55:07.32 ID:QfWCszfk0.net]
>>918
仕事でやってたら初日で怒られるレベル

935 名前:デフォルトの名無しさん (ワッチョイ 7a79-Idv/) mailto:sage [2023/10/21(土) 14:25:15.02 ID:ifbOBJO10.net]
>データを吸いあげて収納する
ハゲなのに5W1Hすら知らないと見える

936 名前:デフォルトの名無しさん [2023/10/21(土) 19:03:13.06 ID:l7vz3TvG0.net]
恥ずかしながら学生の頃はドイツ語で命名してましてねフフフ

937 名前:デフォルトの名無しさん mailto:sage [2023/10/21(土) 19:20:36.30 ID:5c+gSFSX0.net]
korewahennsuudesu

938 名前:デフォルトの名無しさん mailto:sage [2023/10/21(土) 20:59:24.58 ID:pQG7G9ym0.net]
>>919
レス引用が分かりにくくてスマンカッタorz
そこではなくて挿入位置にsize()まで指定してたら末尾に要素が追加にできるところ
std::vector<int> vec = { 1, 2, 3 };
vec.insesrt(vec.begin() + vec.size(), 4);
cout << vec << endl; // ( 1 2 3 4 )

939 名前:デフォルトの名無しさん [2023/10/21(土) 21:41:14.77 ID:BercqiEL0.net]
ラズパイレートでいうと
民主党政権の頃は1ドル80円だったけど
いまは1ドル200円

940 名前:デフォルトの名無しさん [2023/10/21(土) 21:41:30.90 ID:BercqiEL0.net]
ラズパイレートでいうと
民主党政権の頃は1ドル80円だったけど
いまは1ドル200円

941 名前:デフォルトの名無しさん (ワッチョイ 6501-6i8i) [2023/10/21(土) 22:50:32.79 ID:BercqiEL0.net]
>>921
5W1HはMITが提唱したんじゃなかったっけ



942 名前:デフォルトの名無しさん (ワッチョイ 1590-wvhw) mailto:sage [2023/10/22(日) 12:33:14.88 ID:x1FYC/BU0.net]
変数でも関数でも
初見もしくは内容忘れた自分が
読んだとき何をやってるか分かるような名前付けが大事だと思う
よって長さは常識の範囲内なら長い方が良いかな

どうでもいいループ変数にindex2SearchArgumentHaystackとか
書いてたら殺意を覚えるけどさ

943 名前:デフォルトの名無しさん (オイコラミネオ MMbd-JD/u) mailto:sage [2023/10/22(日) 17:33:51.66 ID:Ih9eQULqM.net]
GetSelectedPersonDataFromLiveDBIfNotExistsReadDefaultValueFromSettingFileType2022Ex

944 名前:デフォルトの名無しさん (ワッチョイ 0105-SFbe) mailto:sage [2023/10/22(日) 17:36:33.94 ID:+fVR99EM0.net]
= 1 ;

945 名前:デフォルトの名無しさん [2023/10/22(日) 19:20:31.79 ID:/8xzlJDV0.net]
モジュールはまだ使えんのか?

946 名前:デフォルトの名無しさん [2023/10/22(日) 20:40:59.32 ID:XK8cC57k0.net]
リテラルで簡潔に書けるのでみんな初期化子リストばんばん使ってると思うけど
initializer_listって必ずコピーが発生するのな
non copyableなクラスが使えなくて不便なんだが、回避策ない?

947 名前:デフォルトの名無しさん mailto:sage [2023/10/22(日) 20:47:43.40 ID:tZaS4o4u0.net]
>>932
>non copyableなクラスが使えなくて不便なんだが、回避策ない?
moveすれば?

948 名前:デフォルトの名無しさん (ワッチョイ 8e01-tEca) mailto:sage [2023/10/22(日) 23:26:18.52 ID:XK8cC57k0.net]
>>933
できないんだよ

949 名前:デフォルトの名無しさん (ワッチョイ 5d01-46Vy) mailto:sage [2023/10/22(日) 23:33:55.26 ID:tZaS4o4u0.net]
>>934
???
どんなコードで問題出てるの?

950 名前:デフォルトの名無しさん (ワッチョイ 8e3b-xUKY) [2023/10/23(月) 01:32:53.76 ID:sueaiNV30.net]
>>935
https://wandbox.org/permlink/n0KXbXrmLzHDl6KU

次のコードがコンパイルできない

struct A {
 A(int) {}
 A(const A&) = delete;
};

int main()
{
 std::vector<A> v = { 1, 2, 3 };
}

951 名前:デフォルトの名無しさん mailto:sage [2023/10/23(月) 05:17:34.59 ID:RG/DfB7W0.net]
>933, >>935
https://www.google.com/search?q=initializer_list+move
クソ回答する前にググれよ



952 名前:デフォルトの名無しさん (ワッチョイ 5d01-46Vy) mailto:sage [2023/10/23(月) 09:29:50.40 ID:9KLj8HWs0.net]
>>936,937
あれ?
$ cat test.cpp
#include <iostream>
using namespace std;
struct A {
A () {cout << "construct" << endl;}
A (const A &p) = delete;
A (A &&p) {cout << "move" << endl;}
};
void func (initializer_list <A> p) {
cout << "func" << endl;
}
int main () {
A a0;
A a1;
func ({move (a0), move (a1)});
return 0;
}
$ g++ test.cpp
$ ./a.out
construct
construct
move
move
func

953 名前:デフォルトの名無しさん (ワッチョイ 5d01-46Vy) mailto:sage [2023/10/23(月) 10:27:22.01 ID:9KLj8HWs0.net]
だめかなぁ...
#include <vector>
struct A {
A(int) {}
A(const A&) = delete;
A(A&&) = default;
};
std::vector <A> construct (std::initializer_list <A> p) {
std::vector <A> result;
for (auto itr {p.begin ()}, end {p.end ()}; itr != end; ++ itr)
result.push_back (std::move (const_cast <A &> (*itr)));
return result;
}
int main()
{
std::vector<A> v = construct ({ 1, 2, 3 });
}

954 名前:デフォルトの名無しさん mailto:sage [2023/10/23(月) 11:36:11.62 ID:OKLUF2xV0.net]
>>936
コピコン消したいなら代入オペレータ用意してやらんとダメだろ

955 名前:デフォルトの名無しさん mailto:sage [2023/10/23(月) 13:23:41.68 ID:1EMVV/4H0.net]
initializer_list<A&&>が作れないから波括弧初期化できないって話か
なるほどね

956 名前:デフォルトの名無しさん mailto:sage [2023/10/23(月) 19:21:53.26 ID:RG/DfB7W0.net]
initializer_list作るとこまでは出来てもムーブで取り出せないのよ
だからvectorのコンストラクタにinitializer_listで渡すとエラー出るし、>>939のように
const外して一つずつ突っ込むとかしなきゃいけなくなる
ムーブ可能にする提案は出てるらしいけど
https://cpplover.blogspot.com/2014/11/2014-10-pre-urbana-mailings-n4160-n4169.html?m=1

957 名前:デフォルトの名無しさん (ワッチョイ 1909-awtI) mailto:sage [2023/10/24(火) 05:35:10.47 ID:RZM2X1OT0.net]
https://wandbox.org/permlink/h9ZXqkhA56d7EOYP
std::vectorだからどうしようもないけど、自作クラスならinitializer_listよりも可変長テンプレートをオススメしたい
これならコピー不可(ムーブのみ)なクラスでも集成体初期化出来る
(ただしコンセプトかenable_ifでAまたはAに暗黙変換可能な型に限定すべき、enable_ifでもメタプログラミングで条件式作れる)

958 名前:デフォルトの名無しさん (ワッチョイ 1909-awtI) mailto:sage [2023/10/24(火) 05:38:03.34 ID:RZM2X1OT0.net]
あ、すまんコメントのとこだけどis_convertible_vの引数は逆だった

959 名前:デフォルトの名無しさん (ワッチョイ 1909-awtI) mailto:sage [2023/10/24(火) 05:42:10.71 ID:RZM2X1OT0.net]
もう一つ訂正すまん、集成体初期化じゃないな一様初期化かリスト初期化かorz

960 名前:デフォルトの名無しさん (スッップ Sd9a-SL8W) mailto:sage [2023/10/24(火) 08:43:43.05 ID:NeqpGeoJd.net]
教訓
std::vectorは使い物にならない

961 名前:デフォルトの名無しさん (ワッチョイ 5d01-46Vy) [2023/10/24(火) 11:05:08.48 ID:B30+3CR30. ]
[ここ壊れてます]



962 名前:net mailto: >>946
何で?
[]
[ここ壊れてます]

963 名前:デフォルトの名無しさん (ワッチョイ 999f-dytz) mailto:sage [2023/10/24(火) 11:09:20.45 ID:AiEp9cgJ0.net]
もうC++の仕様拡張はもう限界なんだよ
あっちを立てればこっちが立たずが毎回問題になる

964 名前:デフォルトの名無しさん (ワッチョイ 5558-8kgw) [2023/10/24(火) 11:19:38.47 ID:1IilAibW0.net]
std2 作ってゼロからやり直さないと C++はどうにもならんね

965 名前:デフォルトの名無しさん (ワッチョイ 4eda-CTkJ) mailto:sage [2023/10/24(火) 11:40:18.75 ID:nK1YbT6/0.net]
iostreamの二の足を踏みそうだ

966 名前:デフォルトの名無しさん mailto:sage [2023/10/24(火) 12:18:26.26 ID:B30+3CR30.net]
>>946,948-950
具体的に議論しようぜ

967 名前:デフォルトの名無しさん (ワイーワ2 FF62-6i8i) mailto:sage [2023/10/24(火) 12:59:19.46 ID:2UheMrybF.net]
>>946
deque の方が常に良いことが多いと思う

initializer_list でうまくいかんときは
make_tuple か tie でごまかしたことがある気がするけど
あれも move じゃなくて copy だったかな

最近は Rust の方がその辺は楽な気がするな

968 名前:デフォルトの名無しさん (ワッチョイ 5d01-46Vy) mailto:sage [2023/10/24(火) 13:10:28.54 ID:B30+3CR30.net]
>>952
initializer_listでmoveできない問題なら>>939で良いのでは?
template化して関数名短くすれば使い心地は{}と
そう変わらんと思うが?

969 名前:デフォルトの名無しさん (ワッチョイ 8eca-ANn9) [2023/10/24(火) 22:26:14.45 ID:0fDOryx60.net]
文字コード周りだけは決着つけてくれ!

970 名前:デフォルトの名無しさん (ワッチョイ ba48-g88S) mailto:sage [2023/10/26(木) 08:51:51.55 ID:+j1jszqL0.net]
chatGPTが今ダウンしているので質問します
以下のC++コードでfirst->secondとなっている部分がよくわかりません
vector<pair<int, int>> A(N);
for(auto& [x, y] : A) cin >> x >> y;
unordered_map<int, int> X, Y;
for(auto& [x, y] : A){
x = X.try_emplace(x, X.size()).first->second;
y = Y.try_emplace(y, Y.size()).first->second;
}
try_emplaceはPair<iterator,bool>を返すオーバーロードがあるので
firstまではわかるもののそこからさらにsecondとすると何がおきるのでしょうか

971 名前:はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 8e3e-exru) mailto:sage [2023/10/26(木) 09:25:01.17 ID:oN20rU1J0.net]
>>955
格納しているのがペアなんだからペアの second 側が得られるってだけ。
イテレータは operator* や operator-> をオーバーロードしていて
要素へのポインタであるかのように扱えると考えていい。



972 名前:デフォルトの名無しさん [2023/10/26(木) 22:18:49.00 ID:eAGx217zd.net]
単に入れ子になってるだけ
ポインタの先の要素がまたポインタで指してるだけ

973 名前:デフォルトの名無しさん (ワッチョイ ba48-g88S) mailto:sage [2023/10/27(金) 08:11:42.47 ID:IlYWK5hg0.net]
>>956-957
ありがとうございました。
iteratorを返したらそのiteratorに対してさらにsecondを呼び出しているのですね

974 名前:デフォルトの名無しさん (ワッチョイ 5101-CP9B) [2023/10/29(日) 23:41:12.89 ID:JPy8qBbk0.net]
C++モジュールについて
・CMakeが3.26で実験的対応、3.28で正式対応
・g++は対応状況が良くないが、2024年第二4半期に対応できるとKitwareは考えている
・VS2022最新版内臓のCMakeバージョンは3.26
・Clangとclはモジュールに対応している

975 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 13:05:26.07 ID:bW5EQkS/0.net]
Cスレで話題になっててちょっと疑問を質問
自分はgotoって全く使わないで書いているんだけど実際のところどうなんだろう

https://learn.microsoft.com/ja-jp/cpp/cpp/goto-statement-cpp?view=msvc-170
「可能な限り、goto ステートメントより break、continue、および return ステートメントを使用することをお勧めします。
ただし、break ステートメントはループの 1 つのレベルのみを終了するため、深い入れ子のループを終了するには goto ステートメントを使用する必要がある場合もあります。」

俺も深い入れ子のループを抜ける方法として
・ループ部分を関数化してreturn
・breakで抜けて if(/* 抜けた理由を再度評価 */) break; を繰り返す  (※後述)
ということをしている

けどgotoで抜けるほうが楽だろうなと思うんだけど、まあ単純なバグ(プログラマーの見落とし)を除いてどういう問題があるんだろうか

for ( i = 0; i < 10; i++ )
{
 printf_s( "Outer loop executing. i = %d\n", i );
 for ( j = 0; j < 2; j++ )
 {
  printf_s( " Inner loop executing. j = %d\n", j );
  if ( i == 3 ) break; // 内側のループ抜け
 }
 if ( i == 3 ) break; // 外側のループ抜け
}

976 名前:デフォルトの名無しさん [2023/10/30(月) 13:37:46.82 ID:xnp7PI6ya.net]
>深い入れ子のループを終了するには goto ステートメントを使用する必要がある場合もあります
って描いてあるしそれが問題とは言ってないんじゃないか

977 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 14:24:40.02 ID:eEth4IuV0.net]
とりあえずダイクストラ大先生の例の論文読もうぜ

978 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 15:01:52.03 ID:bW5EQkS/0.net]
まあ問題あるならそもそも導入されるはずがないわけで問題ないのは分かるんだけど
「可能な限り〜お勧めします。」と言うように使用を推奨しない理由は何なのかなと
例えば特定の処理が飛ばされて動作しなくなる場合があるとかなんかな?と

979 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 15:54:27.55 ID:A0jdf3Dt0.net]
それはrustのラベルbreakのような
安全なループの抜け方しか考えてないから安全で当たり前
c/c++のgotoはもっと凶悪なことができる

980 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 16:23:23.04 ID:eEth4IuV0.net]
C++のgotoはちゃんとデストラクタを呼んでくれるから、意外とそんなに破滅的なことにはならんのだよね
だからって多重ループ脱出以外で使おうとは思わんけど

981 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 16:30:54.25 ID:hnsSyQft0.net]
俺は例外投げて脱出する



982 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 16:35:01.03 ID:A0jdf3Dt0.net]
>>966
気軽に例外投げるとデバッガが使いづらくなるからやめときな
少なくとも仕事では

983 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 16:40:27.98 ID:bW5EQkS/0.net]
多重ループ脱出で使っている人って多いんかな?
他にこういう使い方しているとかってない?

984 名前:はちみつ餃子 mailto:sage [2023/10/30(月) 16:45:14.84 ID:I7fISnX+0.net]
>>963
一般論としてはそのほうが分かりやすくなるからというだけのことだと思うよ。

ただ、それで分かりやすくならないとき、
チマチマした条件チェックであっちこっち行くよりは
流れをぶった切って goto したほうがいっそわかりやすいこともあるってのが
goto が必要な場面ってことなんだわ。

985 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 17:14:03.48 ID:hnsSyQft0.net]
>>967
と言いますと?

986 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 17:24:30.69 ID:9eqG7NVC0.net]
ラムダ式にする

987 名前:デフォルトの名無しさん (ワッチョイ 297c-tLJy) mailto:sage [2023/10/30(月) 17:57:47.45 ID:eEth4IuV0.net]
>>968
自分としては多重ループ脱出がC++でのgotoの唯一の実用的な用途だと思ってる(とはいえめったに使わない)
Cなら疑似finally的な後処理に使うこともあるけど、それはC++ならRAIIにすべきだしな
それ以外の戻ったり余所のスコープに侵入したりはもちろんCでもC++でも論外

988 名前:デフォルトの名無しさん (ワッチョイ 8114-Qq8E) mailto:sage [2023/10/30(月) 18:39:22.51 ID:VfsLhOLn0.net]
何度も繰り返すgotoの話になると人が湧くな

989 名前:デフォルトの名無しさん (ワッチョイ 9b91-lnbO) mailto:sage [2023/10/30(月) 18:54:25.65 ID:A0jdf3Dt0.net]
>>970
VSのデバッガは例外投げられるとメッセージでる(設定変えればオフにはできる)
また設定によってはブレイクする
正常処理のくせに頻繁に例外投げられると非常にうざいし、本当の異常を見過ごす

990 名前:デフォルトの名無しさん (ワッチョイ 5101-CP9B) [2023/10/30(月) 19:04:07.11 ID:qWSrxYwr0.net]
switchとgoto組み合わせて状態機械作ってる

991 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 19:54:14.15 ID:A0jdf3Dt0.net]
gcc拡張のlabelのアドレスとれるやつとかな
昔はイキって使ってたわ



992 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 20:16:27.75 ID:hnsSyQft0.net]
>>974
そりゃうざいデフォルト設定だな
ループの脱出に限らず例外くらい普通に使うやろ?
ちゃんと切っとけ

993 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 20:43:41.27 ID:A0jdf3Dt0.net]
>>977
例外が起こったときは何かおかしいことが起こっている予兆と考える防御的なVSをおれは支持する
だいたい例外安全って何それ?ってレベルのやつも多いだろ
例外で遊ぶのは趣味のときだけにしとけ

994 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 20:48:14.67 ID:JbGfWzUOM.net]
ループ脱出レベルで例外を使うのは変だと感じる
関数抜けないのに例外なんて…

995 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 20:54:46.61 ID:JbGfWzUOM.net]
んで大昔に例外に似た機能のFound文Match文とか妄想してたんだな

実質タダのgoto文

996 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 20:54:46.86 ID:hnsSyQft0.net]
>>978
ループに限らず孫関数ひ孫関数からエラーで脱出するときどうしてんの?
例外使わんか?

997 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 20:57:56.27 ID:JbGfWzUOM.net]
例外は通常動作として起こらないような動作で起こすもので
何か探すループなんかで実際に対象が見つかったとしてそれは「例外」なのか?
ちがうだろー

998 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 20:58:12.43 ID:hnsSyQft0.net]
>>979
俺はgotoは全く書かないな
パフォーマンス的にはgotoの方が良いかな?

999 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 20:59:51.11 ID:hnsSyQft0.net]
>>982
実にくだらない理由だと思う

1000 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 21:01:36.17 ID:JbGfWzUOM.net]
>>984
それが一般的な解釈でおかしな使い方をしてる人間は影で笑われている

1001 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 21:06:32.49 ID:hnsSyQft0.net]
>>985
人格を攻撃するような書き込みはやめようね



1002 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 21:07:29.46 ID:JbGfWzUOM.net]
例外はパフォーマンス的に重いしそれ以前に
正常系の出力を異常系で投げるのはおかしい

まったくもって異常

1003 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 21:08:57.30 ID:eEth4IuV0.net]
よその言語ではイテレータの終了通知に例外使ってたりするから人格否定するほどの話ではない
C++の慣用としてやられてないし向いてないってだけ

1004 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 21:09:03.25 ID:JbGfWzUOM.net]
>>986
人格自体は攻撃してないだろ
事実

1005 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 21:12:55.48 ID:hnsSyQft0.net]
>>987
>正常系の出力を異常系で投げるのはおかしい
これを書いたのはあなたで私ではないよ

1006 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 21:14:51.99 ID:hnsSyQft0.net]
>>989
>>987の「例外はパフォーマンス的に重いし」のような議論は分かるが
>>985は人格を攻撃している書き込み
気をつけ給え

1007 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 21:19:13.29 ID:A0jdf3Dt0.net]
>>981
エラーならありだがtry catch書かされるのもだるいだろ
現実的に例外投げる場合はそのまま終了か、フルリブートするしかないときって考えたほうがいい

1008 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 21:19:21.17 ID:JbGfWzUOM.net]
非常に大切で根本的な理由と例を挙げたのに「実にくだらない理由」としか取られないのが残念
例外はただの制御構文ではない

1009 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 21:20:50.60 ID:JbGfWzUOM.net]
>>991
実にくだらない理由か本当に?
理解不足だと思うけど

1010 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 21:22:28.46 ID:J+/7yoK80.net]
凶悪といえばAnsiCのsetjmp()とlongjmp()
あれらを規格に入れてるのはキチガイとしか

1011 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 21:25:34.77 ID:hnsSyQft0.net]
>>993,994
そう思う

>>982
>例外は通常動作として起こらないような動作で起こすもので
これは今行っている議論の対象である

>何か探すループなんかで実際に対象が見つかったとしてそれは「例外」なのか?
何に使うかの理由に名称を持ち出すのは
私はくだらないと考えている



1012 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 21:28:39.53 ID:JbGfWzUOM.net]
>>996
概念だろ
それが一番大切で実装の基本だろ

C++自体の仕様が変わるとしても例外と言う概念に沿って変わることになるはずだ
今適当にマッチを投げていて仕様がより例外側に代わってその時その使い方は生き残れるのだろうか?

1013 名前:デフォルトの名無しさん mailto:sage [2023/10/30(月) 21:31:50.44 ID:hnsSyQft0.net]
>>997
templateメタプログラミングとか許せない人ですか?

1014 名前:デフォルトの名無しさん (ワッチョイ d1ad-AT6i) mailto:sage [2023/10/31(火) 06:57:27.99 ID:BIE3G76Q0.net]
Core Guideline にも例外はエラー処理だけに使えとある.
多重ループからの脱出が本当にエラー処理なの?

1015 名前:デフォルトの名無しさん (ワッチョイ 1379-JwVi) mailto:sage [2023/10/31(火) 07:21:48.58 ID:1/1CCAX60.net]
質問いいっすか?

1016 名前:1001 [Over 1000 Thread ID:Thread.net]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 174日 19時間 30分 57秒

1017 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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