!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
↑同じ内容を3行貼り付けること
次スレは>>980が立てること
無理なら細かく安価指定
※前スレ
C++相談室 part164
https://mevius.5ch.net/test/read.cgi/tech/1683600652/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:: EXT was configured
探検
C++相談室 part165
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ efda-9b8G)
2023/10/31(火) 07:37:38.52ID:+ZyYyqMO0538デフォルトの名無しさん (ワッチョイ a901-7tmY)
2024/11/08(金) 18:12:15.75ID:6Qfff3nN0 例外とか互換性があるんかいな?
539デフォルトの名無しさん (ワッチョイ a901-7tmY)
2024/11/08(金) 18:14:37.25ID:6Qfff3nN0 C++コンパイラでコンパイルするにしても
ソースコードをCの範囲に留めて
関数プロトタイプを
extern "C"
すれば大丈夫だよ
ソースコードをCの範囲に留めて
関数プロトタイプを
extern "C"
すれば大丈夫だよ
540デフォルトの名無しさん (ワッチョイ 7e9a-NsVU)
2024/11/08(金) 18:18:53.42ID:k0cYSKPq0 >>539
なるほど、例えばこんな感じなら大丈夫なんですかね?
g++でコンパイルされたバイナリのグループAとclang++でコンパイルされたバイナリの
グループBがあったとき、AからB(またはその逆)を呼ぶときは必ずCリンケージの関数
経由にする、とか....
なるほど、例えばこんな感じなら大丈夫なんですかね?
g++でコンパイルされたバイナリのグループAとclang++でコンパイルされたバイナリの
グループBがあったとき、AからB(またはその逆)を呼ぶときは必ずCリンケージの関数
経由にする、とか....
541はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 71e8-JeGG)
2024/11/08(金) 18:25:46.25ID:Evz7xgHe0542デフォルトの名無しさん (ワッチョイ 7e9a-NsVU)
2024/11/08(金) 18:35:59.90ID:k0cYSKPq0543デフォルトの名無しさん (ワッチョイ b163-+nMC)
2024/11/09(土) 19:08:22.86ID:djyKk80a0 昔std::vector<T>とかstd::stringを前のコンパイラでビルドしたDLLに渡したら以下略
やっぱコンパイラを混ぜるときはextern "C" な関数にプリミティブな型のみを渡すインターフェース設計にするパティーンが安牌
文字列とか渡したかったらあくまでchar[]にすべき……
やっぱコンパイラを混ぜるときはextern "C" な関数にプリミティブな型のみを渡すインターフェース設計にするパティーンが安牌
文字列とか渡したかったらあくまでchar[]にすべき……
544デフォルトの名無しさん (ブーイモ MM43-QLv+)
2024/11/10(日) 16:10:22.46ID:ck6aMoNGM >>536
この場合は別々に標準ライブラリがリンクされる、つまり2つ動くのかな?
この場合は別々に標準ライブラリがリンクされる、つまり2つ動くのかな?
545デフォルトの名無しさん (ワッチョイ 1b79-b0Xs)
2024/11/10(日) 17:48:03.99ID:cLh8//6O0 単にリンクするだけではどっちかのライブラリのスタートアップしか呼ばれないから
呼ばれてない方のライブラリの初期化がされなくてまともに動作しない問題が残ると思う
呼ばれてない方のライブラリの初期化がされなくてまともに動作しない問題が残ると思う
546はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 95cf-bar5)
2024/11/10(日) 18:18:05.60ID:R/A45v0+0 仮にどうにか辻褄合わせが出来てちゃんと動いたとしても将来の開発環境・実行環境でどうなるか予想しづらいというのもある。
547デフォルトの名無しさん (ワッチョイ 9bad-6tcr)
2024/11/10(日) 18:55:50.75ID:g8WH2rn90 こういう感じの実装を見かけたんだけど、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);
// ここでitrは解放される
}
if (ptr) printf("*ptr = %d\n", *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);
// ここでitrは解放される
}
if (ptr) printf("*ptr = %d\n", *ptr); // 大丈夫?
548はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-bar5)
2024/11/10(日) 19:59:53.20ID:a6nPaG4v0549デフォルトの名無しさん (ワッチョイ 9bad-6tcr)
2024/11/10(日) 20:31:11.60ID:g8WH2rn90 >>548
あざっす!なるほど、よかった〜
あざっす!なるほど、よかった〜
550デフォルトの名無しさん (ワッチョイ 1563-EHNx)
2024/11/11(月) 00:36:44.76ID:6qsu0cnY0551デフォルトの名無しさん (ワッチョイ 1563-EHNx)
2024/11/11(月) 00:38:49.39ID:6qsu0cnY0 ただしウィンドーズのDLLの呼び出し場合は>>539に従っていれば問題無いはず……
ランタイムの初期化エントリはDLL毎に_DllMainCRTStartup が用意されてDLL初期化時に呼ばれる
ランタイムの初期化エントリはDLL毎に_DllMainCRTStartup が用意されてDLL初期化時に呼ばれる
552デフォルトの名無しさん (ワッチョイ 759b-NX7e)
2024/11/11(月) 16:46:00.51ID:XlNa4SSE0553青木康善 (アウアウウー Saa9-gsEs)
2024/11/12(火) 22:22:32.82ID:svwbS+Oga 独習C++を図書館で借りました。よく、こんな、難しく、エグい言語が出来ますねみなさん。
554デフォルトの名無しさん (ワッチョイ 1d1f-hYHe)
2024/11/12(火) 22:26:44.98ID:r67kfyB40 他に選択肢がなかったんや😭
あと最近はobjective-cとかいう悪魔合体に比べたらなんでもマシな言語に思えてきてる
あと最近はobjective-cとかいう悪魔合体に比べたらなんでもマシな言語に思えてきてる
555デフォルトの名無しさん (ワッチョイ 0b9a-V0hi)
2024/11/13(水) 01:53:29.63ID:CoujH3FQ0 Objective-C++もよろしく
556はちみつ餃子 ◆8X2XSCHEME (ワッチョイ cd32-4Bi2)
2024/11/13(水) 02:14:12.02ID:Gj2zjD3b0557デフォルトの名無しさん (ワッチョイ 75c3-oheB)
2024/11/13(水) 03:47:19.43ID:rKuXlBFV0 そーだそーだ
C++は難しいからObject Pascalやろうぜ!
C++は難しいからObject Pascalやろうぜ!
558デフォルトの名無しさん (ワッチョイ 25db-QT1F)
2024/11/14(木) 07:49:57.71ID:z8CYzrjO0 C++女学院の人々ってまだ読める所ある?
大好きだったんだけど。
大好きだったんだけど。
559デフォルトの名無しさん (ワッチョイ a501-3n/g)
2024/11/14(木) 12:23:07.88ID:DkukOutW0 >>554
C++と悪魔合体してObjective-C++とかなってるけど自分は実用的に感じた
全部それで書こうとは思わんけど、C++との共存のレベルが高くて鼻血出そうになったわ
OSやその他Apple系APIとのやり取りはObjC++、それ以外のソースはC++のみ、とかも簡単だし
C++と悪魔合体してObjective-C++とかなってるけど自分は実用的に感じた
全部それで書こうとは思わんけど、C++との共存のレベルが高くて鼻血出そうになったわ
OSやその他Apple系APIとのやり取りはObjC++、それ以外のソースはC++のみ、とかも簡単だし
560デフォルトの名無しさん (アウアウエー Sa13-vkNS)
2024/11/14(木) 14:52:24.21ID:a5xmyjQfa561デフォルトの名無しさん (JP 0H1e-hB9O)
2024/11/19(火) 11:41:41.34ID:1x1cv+pZH 演算子のオーバーロードない言語はダメだ
562デフォルトの名無しさん (ブーイモ MM02-7yGp)
2024/11/19(火) 11:53:31.53ID:5+FMYvHmM 演算子オーバーロードがもたらす言語仕様の複雑性を理解してたら軽々しくそういうことは言えない
563デフォルトの名無しさん (ワッチョイ 5f01-P+OA)
2024/11/19(火) 12:47:14.19ID:3l+Mgxo20 演算子なんてなしでも書けるわけで単なる見た目だよ
些末な話
些末な話
564デフォルトの名無しさん (ブーイモ MM02-7yGp)
2024/11/19(火) 13:12:37.41ID:5+FMYvHmM 見た目はとても重要だが
見ただけでは何が実行されるかわからない
見ただけでは何が実行されるかわからない
565デフォルトの名無しさん (ワッチョイ 67ab-Nkdq)
2024/11/19(火) 15:35:04.94ID:k4Dguh0Y0 JavaのBigDecimalなんか見てると演算子オーバーロードのあるC++羨ましいよ
c = a.multiply(b); とか長くなり過ぎて何をやってる式なのか分からなくなる
c = a.multiply(b); とか長くなり過ぎて何をやってる式なのか分からなくなる
566デフォルトの名無しさん (ワッチョイ 67ab-Nkdq)
2024/11/19(火) 15:37:29.08ID:k4Dguh0Y0 いや固定小数型を言語仕様に盛り込まずにライブラリとして実装したJavaが悪いのか・・・
固定小数の取り扱い以外で演算子オーバーロードが欲しいと思ったことはない
固定小数の取り扱い以外で演算子オーバーロードが欲しいと思ったことはない
567デフォルトの名無しさん (JP 0H1e-hB9O)
2024/11/19(火) 15:45:09.52ID:1x1cv+pZH 複素数計算やったことないからそんなこと言える
568デフォルトの名無しさん (ブーイモ MM02-iirp)
2024/11/19(火) 17:03:01.93ID:cTSQFdSPM JAVAはコボラーが転んで使う言語だし
569デフォルトの名無しさん (JP 0H1e-hB9O)
2024/11/19(火) 17:38:58.74ID:1x1cv+pZH 自動微分のボトムアップ微分はC++の演算子オーバーロード機能のおかげで簡単に実現できる
570デフォルトの名無しさん (ワッチョイ 4218-KrXD)
2024/11/19(火) 18:42:30.52ID:ZMREqX8y0 javaって演算子オーバーロードないのか・・・
571デフォルトの名無しさん (アウアウエー Sa3a-iI0F)
2024/11/20(水) 17:06:14.09ID:vf/fflloa >>567
†とか造った?
†とか造った?
572デフォルトの名無しさん (ワッチョイ fb7c-rtho)
2024/11/20(水) 21:14:42.80ID:GASOinjS0 Javaが持て囃されてた頃は「演算子オーバーロード?+で引き算もできるってこと?なんて危険な機能なんだ!」って叩かれてて
そんな危険なものはJavaにはありません!って売り文句にされてたんだよ
アホみたいだけど本当の話
そんな危険なものはJavaにはありません!って売り文句にされてたんだよ
アホみたいだけど本当の話
573デフォルトの名無しさん (ワッチョイ 4e8d-7yGp)
2024/11/20(水) 21:21:46.59ID:JO5RbARc0 アホといい切れる根拠は言える?
574デフォルトの名無しさん (ワッチョイ 4243-gDrC)
2024/11/20(水) 22:54:39.86ID:g9sD9hG/0 アホみたいなカスの嘘です
575デフォルトの名無しさん (ワッチョイ 0e79-Yo0P)
2024/11/20(水) 23:28:22.48ID:KXgtJp1v0 演算子オーバーロードは定義のリスクや手間の割には結局自己満に完結する事が多くて、
しかも結局C++という小さな世界でしか通用しないから、他に楽しい事が沢山ある今の人は時間の無駄と考えるんじゃないかな
しかも結局C++という小さな世界でしか通用しないから、他に楽しい事が沢山ある今の人は時間の無駄と考えるんじゃないかな
576デフォルトの名無しさん (ワッチョイ ff07-pOJn)
2024/11/20(水) 23:48:15.85ID:F7TNJyq/0 無理に使うもんではないな たまにすごく便利
577デフォルトの名無しさん (ワッチョイ 7b71-nj0J)
2024/11/21(木) 00:20:44.87ID:PQXYbgG+0 std::chronoの時間型なんかは良い例だよね
・clock - clock = duration (例. 13時 - 12時 = 1時間)
・clock + duration = clock (12時+1時間=13時)
・duration + duration = duration (1時間 + 1時間 = 2時間)
・clock + clock: 不可
こういう型表現もできるのは良い点
・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:06.15ID:KgLYxoZg0 初見で単に整数で取り出すのに一苦労だけどな
型安全厨くささ感じる
型安全厨くささ感じる
579デフォルトの名無しさん (ワッチョイ 06cf-xZnB)
2024/11/21(木) 08:22:14.09ID:5MMZVDCg0 演算の組み合わせが多いユースケースで可読性を上げるためのものだろう。
少ないなら関数のままでも十分。そういう意味で std::chrono は微妙。
少ないなら関数のままでも十分。そういう意味で std::chrono は微妙。
580デフォルトの名無しさん (JP 0H1e-hB9O)
2024/11/21(木) 10:15:07.08ID:F4Mnbej3H581デフォルトの名無しさん (JP 0H1e-hB9O)
2024/11/21(木) 10:20:45.90ID:F4Mnbej3H >>571
随伴行列(共役転置行列)か? それは演算子オーバーロードじゃなくて普通の関数でいいだろ
随伴行列(共役転置行列)か? それは演算子オーバーロードじゃなくて普通の関数でいいだろ
582デフォルトの名無しさん (ワッチョイ 8ee1-jy16)
2024/11/21(木) 19:11:25.04ID:U8jioV5J0 いわゆる演算子オーバーロードのメリットは、中置記法が使えるということと、一部の人間が使い慣れている演算子の算数・数学的記法のメタファーが使えることくらいかね。
その代償として文章構造の曖昧さや(その対処のための)優先順位といった規則の複雑化が必要になるので、言語設計観点からはメリット小さいよなぁ。
可能ならば中置記法を捨てて全部後置記法に統一したいところ。
その代償として文章構造の曖昧さや(その対処のための)優先順位といった規則の複雑化が必要になるので、言語設計観点からはメリット小さいよなぁ。
可能ならば中置記法を捨てて全部後置記法に統一したいところ。
583デフォルトの名無しさん (ワッチョイ 5f01-P+OA)
2024/11/21(木) 20:19:29.77ID:i1qXvmQ+0 嫌だよ! PostScriptじゃあるまいしw
584デフォルトの名無しさん (ワッチョイ ef63-ihPV)
2024/11/21(木) 22:03:09.07ID:vge40qUE0 チョムスキーの言語生得説って数学記号(の文法)も説明し切ってたっけ;;;
個人的には数学記号をプログラミング言語の文法に含めるのは悪手に思える
全部言葉にすべき
個人的には数学記号をプログラミング言語の文法に含めるのは悪手に思える
全部言葉にすべき
585デフォルトの名無しさん (ワッチョイ fb7c-rtho)
2024/11/21(木) 22:32:36.81ID:UrWSESvu0 そうだな
(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)))))の方がずっと分かりやすいもんな
(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:39.60ID:w61o9EHy0587デフォルトの名無しさん (ワッチョイ 5f01-P+OA)
2024/11/21(木) 23:41:45.40ID:i1qXvmQ+0 8.0 pi mul G mul c c mul c mul c mul mu0 mul div
588デフォルトの名無しさん (ワッチョイ fb9c-jy16)
2024/11/22(金) 12:04:14.61ID:OZOUVDIp0589デフォルトの名無しさん (ブーイモ MM02-fwvC)
2024/11/22(金) 16:24:36.41ID:prOH0XeSM590デフォルトの名無しさん (ワッチョイ 36e6-slOl)
2024/11/22(金) 17:47:03.18ID:ckHOQP240 ポーランドにでも移住しろ
591デフォルトの名無しさん (ワッチョイ 0e79-Yo0P)
2024/11/22(金) 20:09:04.65ID:YUhadtJk0 政治的発言でチョムスキーは晩節を汚したな
592デフォルトの名無しさん (ワッチョイ ef63-ihPV)
2024/11/22(金) 23:05:27.32ID:qWC0+5lZ0 絶対数に平方の係数の四倍を掛け、中間項の係数の平方を加え、同平方根をとって中間項の係数を引いてから、平方[の係数]の二倍で割ったものを出力せよ
593aser-fgki (JP 0H1e-hB9O)
2024/11/22(金) 23:22:42.09ID:TibAXEMeH594デフォルトの名無しさん (JP 0H1e-hB9O)
2024/11/22(金) 23:31:47.69ID:TibAXEMeH 怖ヒから、退散します。
595デフォルトの名無しさん (ワッチョイ 0e79-Yo0P)
2024/11/22(金) 23:46:57.45ID:YUhadtJk0 どんな記法でもメソッドチェーンできれば勝つる
596デフォルトの名無しさん (ワッチョイ ff9a-V0/I)
2024/11/24(日) 06:44:31.77ID:CW4G8jt70 昔Turbo C++とか使ってたなあ
597デフォルトの名無しさん (ワッチョイ f79c-0AJs)
2024/11/25(月) 11:18:23.17ID:mvnjDr0E0 >>593
それも算数を習っていて、記号の意味や結合の優先順位、()グループ化のトレーニングを受けている前提だろ。
中置記法ではなく前置記法のトレーニングを受けている想定なら
/(*(8.0, std::number::pi, G), *(c,c,c,c,mu0))
だし、日本語ベースの後置記法なら中置記法のような特別なトレーニング無しで>588ぐらいは使えるかと。
それも算数を習っていて、記号の意味や結合の優先順位、()グループ化のトレーニングを受けている前提だろ。
中置記法ではなく前置記法のトレーニングを受けている想定なら
/(*(8.0, std::number::pi, G), *(c,c,c,c,mu0))
だし、日本語ベースの後置記法なら中置記法のような特別なトレーニング無しで>588ぐらいは使えるかと。
598青木康善 (アウアウウー Sa5b-8bf6)
2024/11/27(水) 11:39:09.65ID:cLo+/Enba やっぱり、C++は、難しいんで、慣れてるjavaで音楽ソフトウェア作ります。皆さんの健闘を祈ります。best regard
599デフォルトの名無しさん (JP 0H4f-6m00)
2024/11/28(木) 01:12:28.19ID:aCNd/9ZkH ちん逃げやがったな。俺も人のこと言えんけど。
600デフォルトの名無しさん (ワッチョイ bfcc-6m00)
2024/11/29(金) 12:44:20.48ID:IhkudQsu0 Javaの構文的美しさは素晴らしかったけど
他言語に引っ張られて汚れてしまった
それならC++のほうが良い
何でもできるから
他言語に引っ張られて汚れてしまった
それならC++のほうが良い
何でもできるから
601デフォルトの名無しさん (ワッチョイ bfcc-6m00)
2024/11/29(金) 13:41:39.20ID:IhkudQsu0 やりたいことが出来る言語と
やりたいことが出来ない言語
やりたいことが出来ない言語
602デフォルトの名無しさん (ワッチョイ bf6c-6oxW)
2024/11/29(金) 16:19:14.67ID:xzsI3pih0 なんでもできるは他を知らないだけだろ
603デフォルトの名無しさん (ワッチョイ 5707-hCSs)
2024/11/29(金) 17:33:38.53ID:BYCpquOz0 一応、自分の技量と気力で、希望するわがままが通るかは、調べてみるけどね
EchoAPIは私のVS Codeのセットアップに素晴らしい追加となり、APIテストがとても簡単になった
605デフォルトの名無しさん (ワッチョイ 7f7e-zwOW)
2024/11/29(金) 22:11:11.77ID:C48YuSW20 やりたいこと以外何でもできる言語
606デフォルトの名無しさん (ワッチョイ 5707-hCSs)
2024/11/29(金) 23:01:12.73ID:BYCpquOz0 やりたいことはできない。(サボりの)どうでもいいことはできる。ってほっとけww
607デフォルトの名無しさん (アウアウエー Sadf-wjfe)
2024/11/30(土) 09:53:14.46ID:l0dFcapba x C++が難しい
o 頭が悪い
o 頭が悪い
608デフォルトの名無しさん (ワッチョイ bfd9-6oxW)
2024/11/30(土) 12:21:10.79ID:tlb45efI0 c++が簡単ってまあ勘違いだろ
脱初級で全部わかった気になるやつ
個人的に尊敬してる人でも難しいと言ってる
脱初級で全部わかった気になるやつ
個人的に尊敬してる人でも難しいと言ってる
609青木康善 (アウアウウー Sa5b-8bf6)
2024/11/30(土) 13:56:11.47ID:exhSsXMya javaで、簡単なドラムマシン作りました。C++では、到底オツムが良く無い僕には無理です。皆さんの健闘を祈ります。
610デフォルトの名無しさん (JP 0Hf2-Dj8N)
2024/12/01(日) 18:28:00.78ID:IuCKzQHfH 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を殺す、という対症療法だけ学習しました。
ところが、作ったライブラリをテンプレート対応に修正したら、「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:57.10ID:IuCKzQHfH くそ!また改行がめちゃくちゃ
612デフォルトの名無しさん (ワッチョイ 0e62-jXfH)
2024/12/01(日) 18:31:33.21ID:NWNsoufr0 MAPファイルの読み方を研究した方が良いかもな
613デフォルトの名無しさん (JP 0Hf2-Dj8N)
2024/12/01(日) 18:32:40.91ID:IuCKzQHfH それに誤字だらけだし。オワタ。高齢者の認知症検査試験大丈夫かな。5年後だけど。
614はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bd32-mEgI)
2024/12/01(日) 19:20:01.62ID:rI1+OlKH0 >>610
定義はプログラム全体でひとつとする原則 (one definition rule) は診断不要な場合がある仕様になっていて処理系が問題を検出できなくてもかまわないことを意味する。
つまりエラーが出てなくても間違っている (未定義の挙動) かもしれないので理解せずにエラーメッセージに頼るのは悪い姿勢。
定義はプログラム全体でひとつとする原則 (one definition rule) は診断不要な場合がある仕様になっていて処理系が問題を検出できなくてもかまわないことを意味する。
つまりエラーが出てなくても間違っている (未定義の挙動) かもしれないので理解せずにエラーメッセージに頼るのは悪い姿勢。
615デフォルトの名無しさん (JP 0Hf2-Dj8N)
2024/12/01(日) 19:34:57.34ID:IuCKzQHfH テンプレートにすると(implテクニックを使わなければ)、定義も実装も同じファイルに書かなければならないからそれが原因かなあ。とりあえず、厄介なLINKエラーは除霊されました。
616はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bd32-mEgI)
2024/12/01(日) 20:25:56.70ID:rI1+OlKH0 >>615
テンプレート内でグローバル変数にアクセスする箇所があるってこと?
それなら今はインライン変数を使うのが便利で行儀の良い作法のひとつだと考えられている。
インライン変数は C++17 からの機能なのでそれより古い規格しか使えないような事情があるなら仕方ないんだけど……
テンプレート内でグローバル変数にアクセスする箇所があるってこと?
それなら今はインライン変数を使うのが便利で行儀の良い作法のひとつだと考えられている。
インライン変数は C++17 からの機能なのでそれより古い規格しか使えないような事情があるなら仕方ないんだけど……
617デフォルトの名無しさん (JP 0Hf2-Dj8N)
2024/12/01(日) 20:32:06.26ID:IuCKzQHfH618デフォルトの名無しさん (JP 0Hf2-Dj8N)
2024/12/01(日) 21:38:54.98ID:IuCKzQHfH619デフォルトの名無しさん (JP 0Hf2-Dj8N)
2024/12/02(月) 22:09:00.59ID:/dQ47H+wH [][]演算子のオーバーロードが欲しい。行列を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:03.04ID:7rlMEi700 propertyなら簡単に多次元配列扱えそうなのに
propertyいつになったら実装されるのやら
propertyいつになったら実装されるのやら
621デフォルトの名無しさん (ワッチョイ b701-5W+W)
2024/12/02(月) 22:30:10.13ID:6C6t/Sm50 >>619
O [][]演算子のオーバーロードが欲しい。
O 行列を1次元配列で実装する場合、C++は行主順(行列を行ベクトルの集まりとみなす)。
O Blas、lapackのライブラリをビルドしたfortran77は列主順(行列を列ベクトルの集まりとみなす)。
X ()演算子のオーバーロードでは、行主順だろうが列主順だろうが、行列Aのi行j列の要素にはA(i,j)とアクセスできるが、
X 列主順の場合には[]演算子のオーバーロードをどうやってもA[j][i]となってしまう。
O それでeigenは()演算子のみをサポートしている(本当か?)。
X だが、A(i,j)が添字0から始まるのが気に入らん。
X 添字が0から始まるのはA[i][j]やろうもん。
O [][]のオーバーロードがあったらなあ。
行頭Xで示した文章の意味が良く分からん
O [][]演算子のオーバーロードが欲しい。
O 行列を1次元配列で実装する場合、C++は行主順(行列を行ベクトルの集まりとみなす)。
O Blas、lapackのライブラリをビルドしたfortran77は列主順(行列を列ベクトルの集まりとみなす)。
X ()演算子のオーバーロードでは、行主順だろうが列主順だろうが、行列Aのi行j列の要素にはA(i,j)とアクセスできるが、
X 列主順の場合には[]演算子のオーバーロードをどうやってもA[j][i]となってしまう。
O それでeigenは()演算子のみをサポートしている(本当か?)。
X だが、A(i,j)が添字0から始まるのが気に入らん。
X 添字が0から始まるのはA[i][j]やろうもん。
O [][]のオーバーロードがあったらなあ。
行頭Xで示した文章の意味が良く分からん
622デフォルトの名無しさん (JP 0Hf2-Dj8N)
2024/12/02(月) 22:40:34.32ID:/dQ47H+wH ああ、そう。
ところで、A(i,j)が添字0から始まるのが気にならないんだ。じゃあ、もうええわ。
ところで、A(i,j)が添字0から始まるのが気にならないんだ。じゃあ、もうええわ。
623デフォルトの名無しさん (ワッチョイ 0e62-jXfH)
2024/12/02(月) 22:51:18.89ID:Fo02P0Bv0 msvc4.xxにoprater delete[]をoverideする機能が無い
所からCOMの仕様が策定されている所を考えると
面白いな
所からCOMの仕様が策定されている所を考えると
面白いな
624デフォルトの名無しさん (ワッチョイ b701-5W+W)
2024/12/02(月) 22:58:33.93ID:6C6t/Sm50625はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bd32-mEgI)
2024/12/02(月) 23:07:19.64ID:5A4jg9rQ0 >>619
[] がカンマで区切られた複数の引数を受けとる機能は入る見込み。
そのための前準備として [] の中でカンマ演算子を使うのが C++20 から非推奨になってる。 必要なら括弧で囲めばいいだけだから深刻な互換性問題にもならんだろうし。
[][] をオーバロードするとなると辻褄合わせが難しいだろうから入ることは期待できないと思う。
[] がカンマで区切られた複数の引数を受けとる機能は入る見込み。
そのための前準備として [] の中でカンマ演算子を使うのが C++20 から非推奨になってる。 必要なら括弧で囲めばいいだけだから深刻な互換性問題にもならんだろうし。
[][] をオーバロードするとなると辻褄合わせが難しいだろうから入ることは期待できないと思う。
626はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bd32-mEgI)
2024/12/02(月) 23:09:49.14ID:5A4jg9rQ0627デフォルトの名無しさん (ワッチョイ c89a-+Y4l)
2024/12/04(水) 01:53:48.90ID:DpkrBRqF0 結局はベクトルや行列の演算の何かなんだろうから
二重配列を直接操作するというよりベクトルや行列のオブジェクトの演算を
定義する、演算子オーバーロードする、とかそういうコードを一旦書くわけには
いかないのかな?
二重配列を直接操作するというよりベクトルや行列のオブジェクトの演算を
定義する、演算子オーバーロードする、とかそういうコードを一旦書くわけには
いかないのかな?
628デフォルトの名無しさん (オイコラミネオ MMdd-Qs+Z)
2024/12/04(水) 11:10:28.05ID:1b6O8ksjM [][]演算子が出来たら
[][][]の解釈に困るからできない
というより
[]が一つの演算子だから[][]はないし混乱のもと
[ , ]が正当
[][][]の解釈に困るからできない
というより
[]が一つの演算子だから[][]はないし混乱のもと
[ , ]が正当
629デフォルトの名無しさん (アウアウエー Sa6a-VZt9)
2024/12/05(木) 20:29:34.16ID:bsPx8jUja pythonみたいにhoge[:,:,::-1]みたいな描き方したい
operatorオーバーロードの仕方教えてくれ
operatorオーバーロードの仕方教えてくれ
630デフォルトの名無しさん (ワッチョイ 847c-0Hkv)
2024/12/06(金) 19:13:10.74ID:Ed4tJtIh0 どうしてもやりたいならユーザー定義リテラル使ってhoge[":;:;::-1"_slice]とか書かせるかなあ
631デフォルトの名無しさん (ワッチョイ 5e63-64DC)
2024/12/07(土) 17:49:57.38ID:hZoDLS6H0 [,]とカンマ演算子の優先順位はどうなるんじゃ……
まあすでに関数の引数部分で似たような状況((, , ,))だから良いのか……
まあすでに関数の引数部分で似たような状況((, , ,))だから良いのか……
632はちみつ餃子 ◆8X2XSCHEME (ワッチョイ bd32-LsAq)
2024/12/07(土) 19:05:42.44ID:bmFGOE/o0633デフォルトの名無しさん (ワッチョイ a7ad-7Ydj)
2024/12/08(日) 19:55:22.57ID:R/m6cDay0 mdspan でいいんじゃないかと
634350 (ワッチョイ 9744-3FWJ)
2024/12/30(月) 01:24:05.36ID:QjoRUJvQ0635デフォルトの名無しさん (ワッチョイ b6e7-F611)
2024/12/30(月) 02:23:21.03ID:OlG90g3v0 その話はもうええわ
636はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 9732-1Vfr)
2024/12/30(月) 03:22:33.37ID:vy8OYYFk0 >>634
> これ配列リテラルちゃうの?
文字列リテラルは配列の一種ではあるが、この場合は配列一般を表すリテラルはないという意味。
(C にはコンパウンドリテラルがあるし、一部の処理系では C++ でも使える拡張があるけど。)
初期化子に現れる波括弧が配列リテラルだと誤解しているらしいことについての指摘なので文字列リテラルも配列リテラルだというのは関係がない。
> nameはポインタだが
いいえ。 name は配列。
> dc エリアに sazaesan\0 格納されるだろ
これはリテラルかどうかの話とは関係がない。
> これ配列リテラルちゃうの?
文字列リテラルは配列の一種ではあるが、この場合は配列一般を表すリテラルはないという意味。
(C にはコンパウンドリテラルがあるし、一部の処理系では C++ でも使える拡張があるけど。)
初期化子に現れる波括弧が配列リテラルだと誤解しているらしいことについての指摘なので文字列リテラルも配列リテラルだというのは関係がない。
> nameはポインタだが
いいえ。 name は配列。
> dc エリアに sazaesan\0 格納されるだろ
これはリテラルかどうかの話とは関係がない。
637デフォルトの名無しさん (ワッチョイ 9744-3FWJ)
2024/12/30(月) 08:13:16.60ID:QjoRUJvQ0 >文字列リテラルは配列の一種ではあるが、この場合は配列一般を表すリテラルはないという意味。
おおっと苦しいねぇw
おおっと苦しいねぇw
638デフォルトの名無しさん (ワッチョイ 9a79-yyCf)
2024/12/31(火) 23:26:05.62ID:xpoxeW+N0 >配列リテラル
そもそもこの言葉がおかしい
配列リテラルなんてものは存在しない
リテラルは数値や文字、文字列の変更不可な定数を指す用語で、配列等の変数とは間逆の存在
配列は文字列リテラルとかで初期化はできるがリテラルには分類されない
主にjavascript界隈で平気で配列リテラルなんて説明してるサイトがあるが全部間違い
そもそもこの言葉がおかしい
配列リテラルなんてものは存在しない
リテラルは数値や文字、文字列の変更不可な定数を指す用語で、配列等の変数とは間逆の存在
配列は文字列リテラルとかで初期化はできるがリテラルには分類されない
主にjavascript界隈で平気で配列リテラルなんて説明してるサイトがあるが全部間違い
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 国内ホテル、既にキャンセルも 訪日客関連業界、事態見守る ★3 [蚤の市★]
- 習政権、高市首相への態度硬化 台湾有事発言で連日非難 中国 ★11 [ぐれ★]
- 橋下徹氏 外務省幹部の訪中受け「口だけ番長」へ痛烈指摘 「喧嘩は日本の完敗…なんとかっこ悪い日本か」 [冬月記者★]
- 【外国人問題】小野田紀美担当相「不法就労や不法滞在は許さない」 [シャチ★]
- 【野球】井端監督 大谷翔平、山本由伸らのWBCへの参加 「1日も早く返事ほしい」「待っててといっても、国内組が遅くなってしまう」★3 [冬月記者★]
- 【青森・はぐれ子グマがラーメン店襲撃】「笑えないです」ボコボコにしてクマを返り討ち レジェンド男性はまぶたが腫れあがり骨折 ★2 [ぐれ★]
- 中国「高市許さん😡」ジャップメディア「熊!🐻!」 [809488867]
- 中国「高市が頭を下げて謝罪しない限り、絶対に許さない」 [329329848]
- 🏡
- 今季最強寒気襲来!!!!
- 【高市早苗】習近平激怒か [115996789]
- 今猛烈に食べたいもの挙げてけwwwwwwww
