[過去ログ] C++相談室 part165 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
544: (ブーイモ MM43-QLv+) 2024/11/10(日)16:10 ID:ck6aMoNGM(1) AAS
>>536
この場合は別々に標準ライブラリがリンクされる、つまり2つ動くのかな?
545(1): (ワッチョイ 1b79-b0Xs) 2024/11/10(日)17:48 ID:cLh8//6O0(1) AAS
単にリンクするだけではどっちかのライブラリのスタートアップしか呼ばれないから
呼ばれてない方のライブラリの初期化がされなくてまともに動作しない問題が残ると思う
546: はちみつ餃子◆8X2XSCHEME (ワッチョイ 95cf-bar5) 2024/11/10(日)18:18 ID:R/A45v0+0(1) AAS
仮にどうにか辻褄合わせが出来てちゃんと動いたとしても将来の開発環境・実行環境でどうなるか予想しづらいというのもある。
547(1): (ワッチョイ 9bad-6tcr) 2024/11/10(日)18:55 ID:g8WH2rn90(1/2) AAS
こういう感じの実装を見かけたんだけど、ptrって解放済みの領域を指してないよね?
int *ptr = NULL;
std::map<char, int> m;
m.insert(std::make_pair('a', 30));
{
std::map<char, int>::iterator itr = m.find('a');
if (itr != m.end()) ptr = &(itr->second);
省3
548(1): はちみつ餃子◆8X2XSCHEME (ワッチョイ cd32-bar5) 2024/11/10(日)19:59 ID:a6nPaG4v0(1) AAS
>>547
itr が指してる先は m の一部なのでまだ生きてる。
問題ない。
549: (ワッチョイ 9bad-6tcr) 2024/11/10(日)20:31 ID:g8WH2rn90(2/2) AAS
>>548
あざっす!なるほど、よかった〜
550: (ワッチョイ 1563-EHNx) 2024/11/11(月)00:36 ID:6qsu0cnY0(1/2) AAS
>>545
ヤヴァイやん>>539しても全然OKじゃないやん……
551: (ワッチョイ 1563-EHNx) 2024/11/11(月)00:38 ID:6qsu0cnY0(2/2) AAS
ただしウィンドーズのDLLの呼び出し場合は>>539に従っていれば問題無いはず……
ランタイムの初期化エントリはDLL毎に_DllMainCRTStartup が用意されてDLL初期化時に呼ばれる
552: (ワッチョイ 759b-NX7e) 2024/11/11(月)16:46 ID:XlNa4SSE0(1) AAS
外部リンク[php]:www.openwork.jp
553(2): 青木康善 (アウアウウー Saa9-gsEs) 2024/11/12(火)22:22 ID:svwbS+Oga(1) AAS
独習C++を図書館で借りました。よく、こんな、難しく、エグい言語が出来ますねみなさん。
554(2): (ワッチョイ 1d1f-hYHe) 2024/11/12(火)22:26 ID:r67kfyB40(1) AAS
他に選択肢がなかったんや😭
あと最近はobjective-cとかいう悪魔合体に比べたらなんでもマシな言語に思えてきてる
555(1): (ワッチョイ 0b9a-V0hi) 2024/11/13(水)01:53 ID:CoujH3FQ0(1) AAS
Objective-C++もよろしく
556: はちみつ餃子◆8X2XSCHEME (ワッチョイ cd32-4Bi2) 2024/11/13(水)02:14 ID:Gj2zjD3b0(1) AAS
>>553
汚いが、必要なものはある。
綺麗に整理されてても必要なものがないよりは良い。
557: (ワッチョイ 75c3-oheB) 2024/11/13(水)03:47 ID:rKuXlBFV0(1) AAS
そーだそーだ
C++は難しいからObject Pascalやろうぜ!
558: (ワッチョイ 25db-QT1F) 2024/11/14(木)07:49 ID:z8CYzrjO0(1) AAS
C++女学院の人々ってまだ読める所ある?
大好きだったんだけど。
559: (ワッチョイ a501-3n/g) 2024/11/14(木)12:23 ID:DkukOutW0(1) AAS
>>554
C++と悪魔合体してObjective-C++とかなってるけど自分は実用的に感じた
全部それで書こうとは思わんけど、C++との共存のレベルが高くて鼻血出そうになったわ
OSやその他Apple系APIとのやり取りはObjC++、それ以外のソースはC++のみ、とかも簡単だし
560: (アウアウエー Sa13-vkNS) 2024/11/14(木)14:52 ID:a5xmyjQfa(1) AAS
>>553
若い人がCからC++の増築増築で可笑しくなって行った歴史をなぞるのは無意味ではない
>>554-555
Objective-C や Objective-C++ の方がまし
やる気は無いけどObjectPASCALはDelphiだっけ
561: (JP 0H1e-hB9O) 2024/11/19(火)11:41 ID:1x1cv+pZH(1/3) AAS
演算子のオーバーロードない言語はダメだ
562: (ブーイモ MM02-7yGp) 2024/11/19(火)11:53 ID:5+FMYvHmM(1/2) AAS
演算子オーバーロードがもたらす言語仕様の複雑性を理解してたら軽々しくそういうことは言えない
563: (ワッチョイ 5f01-P+OA) 2024/11/19(火)12:47 ID:3l+Mgxo20(1) AAS
演算子なんてなしでも書けるわけで単なる見た目だよ
些末な話
564: (ブーイモ MM02-7yGp) 2024/11/19(火)13:12 ID:5+FMYvHmM(2/2) AAS
見た目はとても重要だが
見ただけでは何が実行されるかわからない
565: (ワッチョイ 67ab-Nkdq) 2024/11/19(火)15:35 ID:k4Dguh0Y0(1/2) AAS
JavaのBigDecimalなんか見てると演算子オーバーロードのあるC++羨ましいよ
c = a.multiply(b); とか長くなり過ぎて何をやってる式なのか分からなくなる
566: (ワッチョイ 67ab-Nkdq) 2024/11/19(火)15:37 ID:k4Dguh0Y0(2/2) AAS
いや固定小数型を言語仕様に盛り込まずにライブラリとして実装したJavaが悪いのか・・・
固定小数の取り扱い以外で演算子オーバーロードが欲しいと思ったことはない
567(1): (JP 0H1e-hB9O) 2024/11/19(火)15:45 ID:1x1cv+pZH(2/3) AAS
複素数計算やったことないからそんなこと言える
568: (ブーイモ MM02-iirp) 2024/11/19(火)17:03 ID:cTSQFdSPM(1) AAS
JAVAはコボラーが転んで使う言語だし
569: (JP 0H1e-hB9O) 2024/11/19(火)17:38 ID:1x1cv+pZH(3/3) AAS
自動微分のボトムアップ微分はC++の演算子オーバーロード機能のおかげで簡単に実現できる
570: (ワッチョイ 4218-KrXD) 2024/11/19(火)18:42 ID:ZMREqX8y0(1) AAS
javaって演算子オーバーロードないのか・・・
571(1): (アウアウエー Sa3a-iI0F) 2024/11/20(水)17:06 ID:vf/fflloa(1) AAS
>>567
†とか造った?
572: (ワッチョイ fb7c-rtho) 2024/11/20(水)21:14 ID:GASOinjS0(1) AAS
Javaが持て囃されてた頃は「演算子オーバーロード?+で引き算もできるってこと?なんて危険な機能なんだ!」って叩かれてて
そんな危険なものはJavaにはありません!って売り文句にされてたんだよ
アホみたいだけど本当の話
573: (ワッチョイ 4e8d-7yGp) 2024/11/20(水)21:21 ID:JO5RbARc0(1) AAS
アホといい切れる根拠は言える?
574: (ワッチョイ 4243-gDrC) 2024/11/20(水)22:54 ID:g9sD9hG/0(1) AAS
アホみたいなカスの嘘です
575(1): (ワッチョイ 0e79-Yo0P) 2024/11/20(水)23:28 ID:KXgtJp1v0(1) AAS
演算子オーバーロードは定義のリスクや手間の割には結局自己満に完結する事が多くて、
しかも結局C++という小さな世界でしか通用しないから、他に楽しい事が沢山ある今の人は時間の無駄と考えるんじゃないかな
576: (ワッチョイ ff07-pOJn) 2024/11/20(水)23:48 ID:F7TNJyq/0(1) AAS
無理に使うもんではないな たまにすごく便利
577: (ワッチョイ 7b71-nj0J) 2024/11/21(木)00:20 ID:PQXYbgG+0(1) AAS
std::chronoの時間型なんかは良い例だよね
・clock - clock = duration (例. 13時 - 12時 = 1時間)
・clock + duration = clock (12時+1時間=13時)
・duration + duration = duration (1時間 + 1時間 = 2時間)
・clock + clock: 不可
こういう型表現もできるのは良い点
578: (ワッチョイ 4e8d-7yGp) 2024/11/21(木)01:22 ID:KgLYxoZg0(1) AAS
初見で単に整数で取り出すのに一苦労だけどな
型安全厨くささ感じる
579: (ワッチョイ 06cf-xZnB) 2024/11/21(木)08:22 ID:5MMZVDCg0(1) AAS
演算の組み合わせが多いユースケースで可読性を上げるためのものだろう。
少ないなら関数のままでも十分。そういう意味で std::chrono は微妙。
580: (JP 0H1e-hB9O) 2024/11/21(木)10:15 ID:F4Mnbej3H(1/2) AAS
>>575
あんた他人の受け売りだろ。fortran90にだって演算子オーバーロードあるのに
581: (JP 0H1e-hB9O) 2024/11/21(木)10:20 ID:F4Mnbej3H(2/2) AAS
>>571
随伴行列(共役転置行列)か? それは演算子オーバーロードじゃなくて普通の関数でいいだろ
582: (ワッチョイ 8ee1-jy16) 2024/11/21(木)19:11 ID:U8jioV5J0(1) AAS
いわゆる演算子オーバーロードのメリットは、中置記法が使えるということと、一部の人間が使い慣れている演算子の算数・数学的記法のメタファーが使えることくらいかね。
その代償として文章構造の曖昧さや(その対処のための)優先順位といった規則の複雑化が必要になるので、言語設計観点からはメリット小さいよなぁ。
可能ならば中置記法を捨てて全部後置記法に統一したいところ。
583: (ワッチョイ 5f01-P+OA) 2024/11/21(木)20:19 ID:i1qXvmQ+0(1/2) AAS
嫌だよ! PostScriptじゃあるまいしw
584: (ワッチョイ ef63-ihPV) 2024/11/21(木)22:03 ID:vge40qUE0(1) AAS
チョムスキーの言語生得説って数学記号(の文法)も説明し切ってたっけ;;;
個人的には数学記号をプログラミング言語の文法に含めるのは悪手に思える
全部言葉にすべき
585(3): (ワッチョイ fb7c-rtho) 2024/11/21(木)22:32 ID:UrWSESvu0(1) AAS
そうだな
(8.0 * std::numbers::pi * G) / (c * c * c * c * mu0)よりも
divide(multiply(multiply(8.0, std::number::pi), G), multiply(c, multiply(c, multiply(c, multiply(c, mu0)))))の方がずっと分かりやすいもんな
586: (ワッチョイ 0e79-Yo0P) 2024/11/21(木)23:37 ID:w61o9EHy0(1) AAS
>>585
君どんくさいな
その括弧やカンマも排除するんだよ
587(1): (ワッチョイ 5f01-P+OA) 2024/11/21(木)23:41 ID:i1qXvmQ+0(2/2) AAS
8.0 pi mul G mul c c mul c mul c mul mu0 mul div
588(2): (ワッチョイ fb9c-jy16) 2024/11/22(金)12:04 ID:OZOUVDIp0(1) AAS
>>585
後置記法なら
(8.0 std::numbers::pi G)を掛ける
(c c c c mu0)を掛ける
割る
みたいな感じかな。
589: (ブーイモ MM02-fwvC) 2024/11/22(金)16:24 ID:prOH0XeSM(1) AAS
>>588
>>587
590(1): (ワッチョイ 36e6-slOl) 2024/11/22(金)17:47 ID:ckHOQP240(1) AAS
ポーランドにでも移住しろ
591: (ワッチョイ 0e79-Yo0P) 2024/11/22(金)20:09 ID:YUhadtJk0(1/2) AAS
政治的発言でチョムスキーは晩節を汚したな
592: (ワッチョイ ef63-ihPV) 2024/11/22(金)23:05 ID:qWC0+5lZ0(1) AAS
絶対数に平方の係数の四倍を掛け、中間項の係数の平方を加え、同平方根をとって中間項の係数を引いてから、平方[の係数]の二倍で割ったものを出力せよ
593(1): aser-fgki (JP 0H1e-hB9O) 2024/11/22(金)23:22 ID:TibAXEMeH(1/2) AAS
>>585は痛烈な皮肉を言った。>>590は昔、HPの電卓が採用していた逆ポーランド法を連想して「ポーランドに行け」と言った。深いわ、ここのスレ
594: (JP 0H1e-hB9O) 2024/11/22(金)23:31 ID:TibAXEMeH(2/2) AAS
怖ヒから、退散します。
595: (ワッチョイ 0e79-Yo0P) 2024/11/22(金)23:46 ID:YUhadtJk0(2/2) AAS
どんな記法でもメソッドチェーンできれば勝つる
596: (ワッチョイ ff9a-V0/I) 2024/11/24(日)06:44 ID:CW4G8jt70(1) AAS
昔Turbo C++とか使ってたなあ
597: (ワッチョイ f79c-0AJs) 2024/11/25(月)11:18 ID:mvnjDr0E0(1) AAS
>>593
それも算数を習っていて、記号の意味や結合の優先順位、()グループ化のトレーニングを受けている前提だろ。
中置記法ではなく前置記法のトレーニングを受けている想定なら
/(*(8.0, std::number::pi, G), *(c,c,c,c,mu0))
だし、日本語ベースの後置記法なら中置記法のような特別なトレーニング無しで>588ぐらいは使えるかと。
598: 青木康善 (アウアウウー Sa5b-8bf6) 2024/11/27(水)11:39 ID:cLo+/Enba(1) AAS
やっぱり、C++は、難しいんで、慣れてるjavaで音楽ソフトウェア作ります。皆さんの健闘を祈ります。best regard
599: (JP 0H4f-6m00) 2024/11/28(木)01:12 ID:aCNd/9ZkH(1) AAS
ちん逃げやがったな。俺も人のこと言えんけど。
600: (ワッチョイ bfcc-6m00) 2024/11/29(金)12:44 ID:IhkudQsu0(1/2) AAS
Javaの構文的美しさは素晴らしかったけど
他言語に引っ張られて汚れてしまった
それならC++のほうが良い
何でもできるから
601: (ワッチョイ bfcc-6m00) 2024/11/29(金)13:41 ID:IhkudQsu0(2/2) AAS
やりたいことが出来る言語と
やりたいことが出来ない言語
602: (ワッチョイ bf6c-6oxW) 2024/11/29(金)16:19 ID:xzsI3pih0(1) AAS
なんでもできるは他を知らないだけだろ
603: (ワッチョイ 5707-hCSs) 2024/11/29(金)17:33 ID:BYCpquOz0(1/2) AAS
一応、自分の技量と気力で、希望するわがままが通るかは、調べてみるけどね
604: (JP 0Hdf-/Vqe) 2024/11/29(金)18:57 ID:ZW4PTdY8H(1) AAS
BEアイコン:nida.gif
EchoAPIは私のVS Codeのセットアップに素晴らしい追加となり、APIテストがとても簡単になった
605: (ワッチョイ 7f7e-zwOW) 2024/11/29(金)22:11 ID:C48YuSW20(1) AAS
やりたいこと以外何でもできる言語
606: (ワッチョイ 5707-hCSs) 2024/11/29(金)23:01 ID:BYCpquOz0(2/2) AAS
やりたいことはできない。(サボりの)どうでもいいことはできる。ってほっとけww
607: (アウアウエー Sadf-wjfe) 2024/11/30(土)09:53 ID:l0dFcapba(1) AAS
x C++が難しい
o 頭が悪い
608: (ワッチョイ bfd9-6oxW) 2024/11/30(土)12:21 ID:tlb45efI0(1) AAS
c++が簡単ってまあ勘違いだろ
脱初級で全部わかった気になるやつ
個人的に尊敬してる人でも難しいと言ってる
609: 青木康善 (アウアウウー Sa5b-8bf6) 2024/11/30(土)13:56 ID:exhSsXMya(1) AAS
javaで、簡単なドラムマシン作りました。C++では、到底オツムが良く無い僕には無理です。皆さんの健闘を祈ります。
610(1): (JP 0Hf2-Dj8N) 2024/12/01(日)18:28 ID:IuCKzQHfH(1/6) AAS
xxx.h で namespace A { size_t intval, count, itr; } を宣言。もちろん、インクルードガードしてる。
ところが、作ったライブラリをテンプレート対応に修正したら、「intval, count, itr」が2重定義されてます。」
という旨のLINK1169のエラー(Visual Stuio 2022)が突然出てきた。前のライブラリではこんなエラー出てなかった
のに...ナンデダロー、ナンデダロー♪と悩んでいたが、
namespace A { extern size_t intval, count, itr; }
を宣言したら解決した。extern_や外部リンケージのことがが良くわからない。調べたら通りいっぺんのことは
わかるけど。LINK1169のエラーが出たら、extern宣言してみてLINK1169を殺す、という対症療法だけ学習しました。
611: (JP 0Hf2-Dj8N) 2024/12/01(日)18:28 ID:IuCKzQHfH(2/6) AAS
くそ!また改行がめちゃくちゃ
612: (ワッチョイ 0e62-jXfH) 2024/12/01(日)18:31 ID:NWNsoufr0(1) AAS
MAPファイルの読み方を研究した方が良いかもな
613: (JP 0Hf2-Dj8N) 2024/12/01(日)18:32 ID:IuCKzQHfH(3/6) AAS
それに誤字だらけだし。オワタ。高齢者の認知症検査試験大丈夫かな。5年後だけど。
614: はちみつ餃子◆8X2XSCHEME (ワッチョイ bd32-mEgI) 2024/12/01(日)19:20 ID:rI1+OlKH0(1/2) AAS
>>610
定義はプログラム全体でひとつとする原則 (one definition rule) は診断不要な場合がある仕様になっていて処理系が問題を検出できなくてもかまわないことを意味する。
つまりエラーが出てなくても間違っている (未定義の挙動) かもしれないので理解せずにエラーメッセージに頼るのは悪い姿勢。
615(2): (JP 0Hf2-Dj8N) 2024/12/01(日)19:34 ID:IuCKzQHfH(4/6) AAS
テンプレートにすると(implテクニックを使わなければ)、定義も実装も同じファイルに書かなければならないからそれが原因かなあ。とりあえず、厄介なLINKエラーは除霊されました。
616(2): はちみつ餃子◆8X2XSCHEME (ワッチョイ bd32-mEgI) 2024/12/01(日)20:25 ID:rI1+OlKH0(2/2) AAS
>>615
テンプレート内でグローバル変数にアクセスする箇所があるってこと?
それなら今はインライン変数を使うのが便利で行儀の良い作法のひとつだと考えられている。
インライン変数は C++17 からの機能なのでそれより古い規格しか使えないような事情があるなら仕方ないんだけど……
617: (JP 0Hf2-Dj8N) 2024/12/01(日)20:32 ID:IuCKzQHfH(5/6) AAS
>>616
ありがとうございます。調べてみます。
ちなみに、>>615 定義も実装も → 宣言も定義も ええいくそっ! まーた間違えた
618: (JP 0Hf2-Dj8N) 2024/12/01(日)21:38 ID:IuCKzQHfH(6/6) AAS
>>616
まーた、言い忘れました。まさにその状況でした。
619(3): (JP 0Hf2-Dj8N) 2024/12/02(月)22:09 ID:/dQ47H+wH(1/2) AAS
[][]演算子のオーバーロードが欲しい。行列を1次元配列で実装する場合、C++は行主順(行列を行ベクトルの集まりとみなす)。Blas、lapackのライブラリをビルドしたfortran77は列主順(行列を列ベクトルの集まりとみなす)。()演算子のオーバーロードでは、行主順だろうが列主順だろうが、行列Aのi行j列の要素にはA(i,j)とアクセスできるが、列主順の場合には[]演算子のオーバーロードをどうやってもA[j][i]となってしまう。それでeigenは()演算子のみをサポートしている(本当か?)。だが、A(i,j)が添字0から始まるのが気に入らん。添字が0から始まるのはA[i][j]やろうもん。
[][]のオーバーロードがあったらなあ。
620: (ワッチョイ 00f0-X9QH) 2024/12/02(月)22:22 ID:7rlMEi700(1) AAS
propertyなら簡単に多次元配列扱えそうなのに
propertyいつになったら実装されるのやら
621: (ワッチョイ b701-5W+W) 2024/12/02(月)22:30 ID:6C6t/Sm50(1/2) AAS
>>619
O [][]演算子のオーバーロードが欲しい。
O 行列を1次元配列で実装する場合、C++は行主順(行列を行ベクトルの集まりとみなす)。
O Blas、lapackのライブラリをビルドしたfortran77は列主順(行列を列ベクトルの集まりとみなす)。
X ()演算子のオーバーロードでは、行主順だろうが列主順だろうが、行列Aのi行j列の要素にはA(i,j)とアクセスできるが、
X 列主順の場合には[]演算子のオーバーロードをどうやってもA[j][i]となってしまう。
O それでeigenは()演算子のみをサポートしている(本当か?)。
省4
622(1): (JP 0Hf2-Dj8N) 2024/12/02(月)22:40 ID:/dQ47H+wH(2/2) AAS
ああ、そう。
ところで、A(i,j)が添字0から始まるのが気にならないんだ。じゃあ、もうええわ。
623: (ワッチョイ 0e62-jXfH) 2024/12/02(月)22:51 ID:Fo02P0Bv0(1) AAS
msvc4.xxにoprater delete[]をoverideする機能が無い
所からCOMの仕様が策定されている所を考えると
面白いな
624: (ワッチョイ b701-5W+W) 2024/12/02(月)22:58 ID:6C6t/Sm50(2/2) AAS
>>622
日本語の意味が分からんと書いている
0オフセットが嫌ならiやjから1引けば良かろうもん?
上下前次1-新書関写板覧索設栞歴
あと 378 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.032s