std::max<int>はconst int& を受け渡ししますが、
このおかげで値渡しによる実装に比べて効率が悪くなるのは、
コンパイラの最適化の責任ですか?
STL実装の責任ですか?
利用者の責任(代替の実装を使うべし)ですか?