std :: add_const_t <t>&vs const T&

时间:2018-11-24 01:29:00

标签: c++ templates typetraits

关于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;
}

我已经看到在使用关键词同样容易(或更容易)的情况下,优先使用类似特征。 这让我感到奇怪,两个函数定义之间是否有区别?是否存在某种可移植性问题,或者使用类型特征的第一个定义避免了其他问题?如果我在编写模板库,是否应该使用第一种方法?

0 个答案:

没有答案