質問: Range-based for loopで参照にした時としない時の速度面での違い この質問に対し、実測しろとか条件を書けとか突っこみが入り、実際に質問修正がなされていますが、私としては最初の質問文で不十分とは感じませんでした。 この質問に対する回答では、コピーの有無という挙動の差があるので、最初の版にある情報で、「一般的には...」と答えるのには十分です。実際に、最終的にAcceptされた回答はすぐ付いていて、むしろ修正のデメリットが目につきます。 * 気軽に質問しづらい方向に雰囲気が向く * 質問文がとても長くなり、見づらいし質問内容も一見ではわからなくなった それでも、このような突っ込みを入れていくべきでしょうか? 完璧を求めるのであれば、「○○バイトとありますが、1バイトは何ビットのアーキテクチャですか?」と、バイト表記している質問に突っ込みを入れて回らなければなりませんが(これは馬鹿げた極論です)、どこに境界線を置くべきかという問題です。
回答: 私はスタックオーバーフローに定住する気はないので、スタックオーバーフローの住人の意向に沿った対応をすればいいと思いますが、一応火種になったので補足も兼ねて意見を書いておきます。 私がこの質問に対して「成り立っていない」と言ったのは、**速度面での質問においては**質問者様の「一般的には...」という回答は資料として価値が低いと考えているからです。 コメントに書いたとおり、速度というものはコンパイラや実行環境、アーキテクチャによって大きく左右するものであって、一概に答えられるものではありません。 単純な計算量や一般的な環境での速度は、少し経ってコンパイラのバージョンが変わったり、アーキテクチャが変わったり、そういう些細な違いで「一般的ではなくなる」可能性が非常に高いです。 **今現在**、一般的であると前置きするならまだしも、そういう回答をしてる人などいませんね。 このへんはdokubekoさんの回答にあるとおりです。 私は別に完璧を求めて質問にコメントしたのではなく、**少し経てば変わってしまうかもしれない"一般論"を回答したとして、その回答は永続的な価値を持つ資料なのか**、という観点からの指摘です。 「○○は遅い」「○○はしてはいけない」などという迷信は、こういうところから生まれるのだと私は考えています。質問を何年後かに見た誰かにとって、その質問に価値があるものである可能性は不明瞭です。一方、環境などを明示したのならば、それはその後でも価値のある資料になるはずです。 それと、我々は別に「無駄にコードを要求したり」、「ベンチマーク結果を載せろ」などとは言っていないことに注意してください。頓珍漢な回答をしている人がいますね。 あくまでも実測というステップを踏むべきだという提案をしているに過ぎません。 読みづらくなった、などの点はコメントの内容とは別の問題であると思います。これはほぼyohjpさんの意見のとおりです。 まあ、冒頭に前置きしたとおり、スタックオーバーフローの住人が納得するようにすればよいと思いますし、私の考えを排除したければ通報することもできるでしょう。とりあえず現状コメントで指摘をすることがルールに違反することではないようですし、意見が収束するのを傍観することにしておきます。