关于as_const
的cppreference指出此功能的可能实现是
template <class T>
constexpr std::add_const_t<T>& as_const(T& t) noexcept
{
return t;
}
编写以下内容是否会更简单?
template <class T>
constexpr const T& as_const(T& t) noexcept
{
return t;
}
我已经看到在使用关键词同样容易(或更容易)的情况下,优先使用类似特征。 这让我感到奇怪,两个函数定义之间是否有区别?是否存在某种可移植性问题,或者使用类型特征的第一个定义避免了其他问题?如果我在编写模板库,是否应该使用第一种方法?