- C++相談室 part146
862 :846[sage]:2019/12/14(土) 10:35:10.86 ID:QUVSvjZy - >>854
>診断メッセージをよく見ろよ 見た上で言ってます(つまりgccまたはVC, clangのバグではないかということ >いいか、constexprは翻訳時定数だぞ それ以前にテンプレートなんですが
|
- C++相談室 part146
877 :デフォルトの名無しさん[sage]:2019/12/14(土) 14:55:10.15 ID:QUVSvjZy - >>865
>テンプレートなのは見ればわかるさ >だから何なのか 普通に考えて、実体化がまだなのに定義(初期化)を強制される妥当な理由はない、ということ
|
- C++相談室 part146
884 :デフォルトの名無しさん[sage]:2019/12/14(土) 15:24:42.79 ID:QUVSvjZy - >>880, >>883
マウント取るのが最優先でまともな回答できない(するつもりも無い)んなら黙っててくれ >これは宣言と定義じゃなく定義の重複だぞ externつけたら? >それをテンプレートの時だけ可能とすることに意義があると思うの? テンプレート実引数に使われる型が不完全型であっても、実体化まで評価を遅らせられる さて、 >× 普通に考えて >〇 俺の頭の中で >× 妥当な理由はない >〇 妥当な理由は思い当たらない こんなゴミみたいな煽り入れてきたからには逃げるなよ
|
- C++相談室 part146
886 :デフォルトの名無しさん[sage]:2019/12/14(土) 15:36:57.55 ID:QUVSvjZy - 間違えた
Xテンプレート実引数に使われる型が不完全型であっても、実体化まで評価を遅らせられる ○初期化に使われる定数式の評価を遅らせられる 言い換えれば、宣言と定義を分離できないならconstな変数テンプレートの宣言時には それに使う定数式内のすべての型が完全型であることを強制されてしまう =std::is_integral_v = std::is_integral<T>::valueでいえば is_integral構造体の方が取り回しがいい、ということ なんのために変数テンプレートが導入されたのか・・・・
|
- C++相談室 part146
887 :デフォルトの名無しさん[sage]:2019/12/14(土) 15:37:56.58 ID:QUVSvjZy - >>885
自分が失敬だからこうなってるとは考えられないんだな 何様だよ、そもそも質問に答えてないだろうが
|
- C++相談室 part146
890 :デフォルトの名無しさん[sage]:2019/12/14(土) 15:58:10.05 ID:QUVSvjZy - 規格でそうなってる(テンプレートゆえの特例は無い)のが”わかってるなら”
最初からそう言ってくれれば済むんじゃないの? >>854を読み直せよ、テンプレートのことが完全にすっぽぬけた上に失礼な回答だろ >コンパイラのバグとまで言う根拠は何だ? とまで、って・・・・普通にありえるだろ、動作が違うんだから(未定義とかいう屁理屈は無しで) で、>>883は逃げたの?
|
- C++相談室 part146
893 :デフォルトの名無しさん[sage]:2019/12/14(土) 17:24:00.92 ID:QUVSvjZy - >>891
すまん、 >テンプレート実体化までテンプレート引数依存箇所の評価はされない これ検証してみたらたしかにそうだった 手元のコードで完全型を要求されたから、初期化時に不完全型を使えないと思い込んでた (おそらくconstexprな変数テンプレートの実体化が、必要な型の実体化より先に来てたっぽい 多分構造体か何かでワンクッション置けば解決できると思う) これなら確かに分けられなくて問題無いね >>892 >いいか、constexprは翻訳時定数だぞ >それを翻訳段階9まで未解決のままにできると思うか? >なんかとんがってんな >後出しなんかしてるのはそっちだ >余計な飾りをとって問題の核心を指摘したんだよ さらには >最初の口調に戻れよ の上で >技術的な議論がしたいがこいつ相手では >不必要にイラついちまって無理だわ よくそんなセリフが言えたもんだ 自己評価高すぎじゃない?wwww
|
- C++相談室 part146
896 :デフォルトの名無しさん[sage]:2019/12/14(土) 18:08:23.02 ID:QUVSvjZy - >>895
わざわざありがとう、やっぱgccのバグだったのね
|