【发布时间】:2018-01-25 15:05:04
【问题描述】:
在 Guidelines Support Library 中有一个名为 final_action 的类(本质上是众所周知的 ScopeGuard)。有 2 个独立的便利函数可以生成这个模板类:
// finally() - convenience function to generate a final_action
template <class F>
inline final_action<F> finally(const F& f) noexcept
{
return final_action<F>(f);
}
template <class F>
inline final_action<F> finally(F&& f) noexcept
{
return final_action<F>(std::forward<F>(f));
}
第一个需要什么?如果我们只有第二个(使用转发,也就是通用引用),它不会做同样的事情吗?
【问题讨论】:
标签: c++ c++11 reference overloading guideline-support-library