Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
std::lower_bound() が参照ではなく比較関数の値渡しを要求するのはなぜですか?
値渡しは、コピーが必要であることを意味し、速度が低下します。特に、誰かが「大きな」比較関数オブジェクトを渡した場合。
ほとんどではないにしても、多くの比較オブジェクトはステートレスであり、ほとんどサイズを取りません (ただし、サイズをゼロにすることはできません)。参照を渡すと、ステートレス述語を値で渡すよりも実際にはコストがかかる可能性があります (特に、コンパイラがコピーを完全に除外できる場合)。