トップページ > プログラム > 2019年12月14日 > k5kIl1RN

書き込み順位&時間帯一覧

16 位/155 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000001110000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
C++相談室 part146

書き込みレス一覧

C++相談室 part146
883 :デフォルトの名無しさん[sage]:2019/12/14(土) 15:21:14.95 ID:k5kIl1RN
>>877
× 普通に考えて
〇 俺の頭の中で

× 妥当な理由はない
〇 妥当な理由は思い当たらない

テンプレートなら初期化は不要という主張なら、
constexpr 変数の宣言と定義を分離できないことは納得してるのかな?
そうだとして、それをテンプレートの時だけ可能とすることに意義があると思うの?

特別ルールを設ければコンパイラ実装やプログラムの読み取りにコストがかかるから、
明確が意義がなければ特別ルールは無いのが妥当だと思うよ。
C++相談室 part146
891 :デフォルトの名無しさん[sage]:2019/12/14(土) 16:55:24.17 ID:k5kIl1RN
>>886
やっぱり constexpr 変数の宣言と定義を分離して何がしたいのか、
何ができるようになるのか、が見えてこない。ごめんね。

宣言だけ見える constexpr 変数への参照やポインタだけはとれるようになるけど、
それだともう constexpr である必要なくて const 変数でよさそうで、それならふつうに
宣言と定義は分けられるし。

ちなみにテンプレート実体化までテンプレート引数依存箇所の評価はされないから、
宣言と定義を分ける話を「評価を遅らせられる」と言い表しているのも何か間違ってそう。
「記述を遅らせられる」の間違い?
C++相談室 part146
895 :デフォルトの名無しさん[sage]:2019/12/14(土) 17:58:45.99 ID:k5kIl1RN
FYI

>>846
Bug 68012: g++ incorrectly accepts forward declaration of constexpr variable template
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68012

>>848
One definition rule
https://timsong-cpp.github.io/cppwp/n4659/basic.def.odr#1
> No translation unit shall contain more than one definition of any variable, function, class type, enumeration type, or template.


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。