C++相談室 part166 (693レス)
C++相談室 part166 http://mevius.5ch.net/test/read.cgi/tech/1745631298/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
672: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7f32-VPhE) [sage] 2025/09/26(金) 12:02:33.14 ID:E9e6Z1Un0 expression template を auto で受けるとまずいってのは Eigen みたいな設計の話かな。 あれはムーブがない時代の設計だから一時オブジェクトの参照を保持してしまう (先に一時オブジェクトが解体されて寿命管理が破綻する) のが問題なのであって、解決のための仕組みが与えられたにもかかわらずそれを使ってない設計が悪い。 expression template の仕組み上でどうしても解決できないというわけではないし auto のせいでもない。 ムーブのコストすら許容できないだとか、古い C++ (C++03 以前) もサポートしなきゃならないみたいな事情があるなら「すまんけどこのライブラリを使うときは注意して」というべき筋合いの話で、「auto なんか使っとるからじゃ!」みたいな態度はおかしいだろ。 http://mevius.5ch.net/test/read.cgi/tech/1745631298/672
673: デフォルトの名無しさん (ワッチョイ 0679-P6+q) [sage] 2025/09/26(金) 12:09:27.62 ID:uQKo8FSG0 >>672 >のが問題なのであって 違う。ETの場合、関数(演算子オーバーロード含む)が返すのは、式の構造を表すオブジェクトなのでそれをautoで受けると式の展開が行われず、計算処理の無いコードになってしまう それを逆手に取ってauto経由で展開のタイミング遅らせることもできるけどね あとETの利点はムーブどうこうで解決できる問題だけではないし、 誰も「ETを万人が使うべき」だなどと言っとらんよ、何が気に入らんかったの? で、はちみつお前いつも「知ったかぶりしていい加減なことを言う奴」に怒ってる割に、自分も同じ事してるよな http://mevius.5ch.net/test/read.cgi/tech/1745631298/673
675: はちみつ餃子 ◆8X2XSCHEME (ワッチョイ 7f32-BMc3) [sage] 2025/09/26(金) 12:54:00.88 ID:E9e6Z1Un0 >>672 > autoで受けると式の展開が行われず、計算処理の無いコードになってしまう 書いてなかったが評価タイミングは適当な関数で明示的にする前提を置いてた。 未定義を踏むのは他の何と比べても駄目だ。単に思ってた結果と違ったなんてのは重要じゃない。 > 誰も「ETを万人が使うべき」だなどと言っとらんよ、何が気に入らんかったの? 日常的には使わないケースだからこそだ。 それが auto の問題点のように挙げられてただろ? ライブラリのほうが C++ の自然な習慣に合わせるのが筋なのにさ。 http://mevius.5ch.net/test/read.cgi/tech/1745631298/675
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.027s