. @kentdotn 式展開のような最適化は、コードの意味が変わらない限り合法です。
2013-10-22 18:27:52いちおう補足しておくと、あの記事ではぼくは標準ライブラリの方針がクソで劣っているという主張であって、constexpr がクソであるとは言ってはおりませぬ。実際クソな点は多々あるけども。
2013-10-22 18:30:39え,っていうか N3788 というか CWG DR 2013 にちゃんと論拠を説明した一文が書いてあるのに,そこをまったく理解しないまま, constexpr を勝手に付けてはいけないという方針に反対してたの!? さすがに DR の論旨をちゃんと理解した上で議論すべきでは…….
2013-10-22 18:44:37http://t.co/Cucbg6NgPA "..., as users may use SFINAE to observe different behavior from otherwise identical code."
2013-10-22 18:47:31実用的にはともかく,少なくとも純粋に theoretical な議論では確かに勝手に constexpr を付けるのは非常に恐ろしいというのが良く理解できる.
2013-10-22 18:50:09うーん, template がチューリング完全とかは別に全然怖いとは思わないんだけれど,とにかく SFINAE の強力さが怖いなー.こいつの存在が C++ の規格の多くの部分に対して慎重な検討を要求する元凶になってる感じがある. introspection 怖い.
2013-10-22 19:00:44introspection って run-time のものを指すのか.静的なものってなんて呼べばよいのけー?
2013-10-22 19:01:25「ラムダ式が constant expression になれないのはクソ」「それに関しては SFINAE があるので慎重に考えないといけない」
2013-10-22 19:02:29SFINAE は強力すぎるし、バグの温床にもなりえる(だって本来は ill-formed で弾かれるべきなのに、黙ってデフォルトの方に行っちゃうんだもん…)ので、僕はあんまり好きじゃないですね。 使うけど。
2013-10-22 19:02:35「標準ライブラリの関数に対して constexpr を付与する自由がないのはクソ」「それに関しては SFINAE があるので慎重に考えないといけない」
2013-10-22 19:03:10@Cryolite その一文というのは"as users may use SFINAE to observe different behavior..."のあたりだと思うんですが、具体的にどういうケースでSFINAEが問題になるかちょっとわからないので教えていただけますか?
2013-10-22 19:08:15@bolero_MURAKAMI theoretical な言い方で単純化すると,「well-formed な user code の observable behavior が,標準ライブラリの実装によって変化しうる」.
2013-10-22 19:11:29@Cryolite 例えば、constexprの有無によってこのようなSFINAEが書けてしまうし、標準ライブラリの実装によって挙動が変わるのは問題である、という理解でよろしいですか? http://t.co/7EQUSdB7Re 違ったら済みません
2013-10-22 19:17:18うわあああああぁぁぁぁぁ!!!!! well-formed な user code の observable behavior が GCC http://t.co/MCysoQbR7d と clang http://t.co/NtwGxWdu2t で変化したぞ!!!!!
2013-10-22 19:17:45"..., as users may use SFINAE to observe different behavior(略)" の一文で,この手のコードに関して議論してるんだなっていうのを理解してあげないと,(C++ の規格の議論は)難しい.
2013-10-22 19:19:27ちなみに私も CWG DR 2013 の PR にはやや反対な立場ですが,反対するにしても相手側がどういう rationale を背景にしているのかをちゃんと理解しておかないと議論の道筋を誤るので,こういうことは大事です.
2013-10-22 19:25:05この手のSFINAEはしかし、僕は書けて然るべきと思っているのでうーん…… 罠になり得るというのはよく分かるけども、規格違反にすれば良いというのはやはり現実的な解決になってないのでは。
2013-10-22 19:27:00なるほど・・・constexprとSFINAEでテンプレートの定数パラメータまで一気に繋がる能力がない人(わたくし)にはついていけない世界だなあ。闇の住人たち怖い。
2013-10-22 19:27:27