[過去ログ]
C++相談室 part165 (1002レス)
C++相談室 part165 http://mevius.5ch.net/test/read.cgi/tech/1698705458/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
422: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 4d32-7Uxd) [] 2024/08/25(日) 01:15:32.96 ID:zZ+WMAII0 >>414 テンプレート型引数に require 節などで制約を付けた場合に制約に合致しなければオーバーロード解決候補から除外されるが、 static_assert や if constexpr での判定は解決が終わってテンプレートが実体化されるときに判定される。 つまり、より優先順位の低い候補に当てはめたいかもしれない場合は static_assert や if constexpr での判定をすべきではない。 状況によって使い分けがある。 それと >>418 が注意しているのは、テンプレートはテンプレート引数に依存しない部分は実体化されなくても検証されるルールだから。 (Two phase name lookup について調べてみて。) つまり static_assert(false, ほにゃらら) と書いてあったらそのテンプレートが使われるかどうかに関係なく問答無用でエラーとして報告されていた。 新しい仕様では static_assert は実体化のときまで検証しないように挙動が改められたのだが、これは欠陥報告の形で問題提起されて過去の仕様に遡って修正されるので C++11 からこの仕様だったことになった。 新しいコンパイラでは C++11 を指定したときでも新しい挙動になる。 http://mevius.5ch.net/test/read.cgi/tech/1698705458/422
502: デフォルトの名無しさん (ワッチョイ 1fb1-/QnX) [sage] 2024/10/17(木) 11:01:19.65 ID:P7X9/HPx0 >>422 これ、static_assertだけ修正してもしょうがない気がするんだけどなぁ 他にも実体化しないはずの分岐でチェックされてエラーにされることあるし まぁ条件式に無理矢理テンプレート入れて回避は出来るけど http://mevius.5ch.net/test/read.cgi/tech/1698705458/502
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
1.709s*