[過去ログ] C++相談室 part165 (1002レス)
前次1-
抽出解除 レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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
くそ!また改行がめちゃくちゃ
613: (JP 0Hf2-Dj8N) 2024/12/01(日)18:32 ID:IuCKzQHfH(3/6) AAS
それに誤字だらけだし。オワタ。高齢者の認知症検査試験大丈夫かな。5年後だけど。
615
(2): (JP 0Hf2-Dj8N) 2024/12/01(日)19:34 ID:IuCKzQHfH(4/6) AAS
テンプレートにすると(implテクニックを使わなければ)、定義も実装も同じファイルに書かなければならないからそれが原因かなあ。とりあえず、厄介なLINKエラーは除霊されました。
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]やろうもん。
[][]のオーバーロードがあったらなあ。
622
(1): (JP 0Hf2-Dj8N) 2024/12/02(月)22:40 ID:/dQ47H+wH(2/2) AAS
ああ、そう。
ところで、A(i,j)が添字0から始まるのが気にならないんだ。じゃあ、もうええわ。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.469s*