[過去ログ] C++相談室 part165 (1002レス)
上下前次1-新
抽出解除 レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
610(1): デフォルトの名無しさん (JP 0Hf2-Dj8N) [] 2024/12/01(日) 18:28:00.78 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:57.10 ID:IuCKzQHfH(2/6) AAS
くそ!また改行がめちゃくちゃ
613: デフォルトの名無しさん (JP 0Hf2-Dj8N) [] 2024/12/01(日) 18:32:40.91 ID:IuCKzQHfH(3/6) AAS
それに誤字だらけだし。オワタ。高齢者の認知症検査試験大丈夫かな。5年後だけど。
615(2): デフォルトの名無しさん (JP 0Hf2-Dj8N) [] 2024/12/01(日) 19:34:57.34 ID:IuCKzQHfH(4/6) AAS
テンプレートにすると(implテクニックを使わなければ)、定義も実装も同じファイルに書かなければならないからそれが原因かなあ。とりあえず、厄介なLINKエラーは除霊されました。
617: デフォルトの名無しさん (JP 0Hf2-Dj8N) [] 2024/12/01(日) 20:32:06.26 ID:IuCKzQHfH(5/6) AAS
>>616
ありがとうございます。調べてみます。
ちなみに、>>615 定義も実装も → 宣言も定義も ええいくそっ! まーた間違えた
618: デフォルトの名無しさん (JP 0Hf2-Dj8N) [] 2024/12/01(日) 21:38:54.98 ID:IuCKzQHfH(6/6) AAS
>>616
まーた、言い忘れました。まさにその状況でした。
619(3): デフォルトの名無しさん (JP 0Hf2-Dj8N) [] 2024/12/02(月) 22:09:00.59 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]やろうもん。
[][]のオーバーロードがあったらなあ。
622(1): デフォルトの名無しさん (JP 0Hf2-Dj8N) [] 2024/12/02(月) 22:40:34.32 ID:/dQ47H+wH(2/2) AAS
ああ、そう。
ところで、A(i,j)が添字0から始まるのが気にならないんだ。じゃあ、もうええわ。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.034s