diff --git a/MyTinySTL/functional.h b/MyTinySTL/functional.h index b445017..165ac1a 100644 --- a/MyTinySTL/functional.h +++ b/MyTinySTL/functional.h @@ -139,10 +139,10 @@ struct logical_not :public unarg_function }; // 证同函数:不会改变元素,返回本身 -template -struct identity :public unarg_function +struct identity { - const T& operator()(const T& x) const { return x; } + template + constexpr T&& operator()(T&& x) const noexcept { return static_cast(x); } }; // 选择函数:接受一个 pair,返回第一个元素