[過去ログ] C++相談室 part165 (1002レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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
616(2): はちみつ餃子◆8X2XSCHEME (ワッチョイ bd32-mEgI) [sage] 2024/12/01(日) 20:25:56.70 ID:rI1+OlKH0(2/2) AAS
>>615
テンプレート内でグローバル変数にアクセスする箇所があるってこと?
それなら今はインライン変数を使うのが便利で行儀の良い作法のひとつだと考えられている。
インライン変数は C++17 からの機能なのでそれより古い規格しか使えないような事情があるなら仕方ないんだけど……

ありがとうございます。調べてみます。
ちなみに、>>615 定義も実装も → 宣言も定義も ええいくそっ! まーた間違えた
618: デフォルトの名無しさん (JP 0Hf2-Dj8N) [] 2024/12/01(日) 21:38:54.98 ID:IuCKzQHfH(6/6) AAS
>>616

まーた、言い忘れました。まさにその状況でした。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 1.683s*