std::make_shared が宣言/実装されている理由を理解しようとしています:
template<class _Tp, class ..._Args>
inline _LIBCPP_INLINE_VISIBILITY
typename enable_if
<
!is_array<_Tp>::value,
shared_ptr<_Tp>
>::type
make_shared(_Args&& ...__args)
{
return shared_ptr<_Tp>::make_shared(_VSTD::forward<_Args>(__args)...);
}
私が興味があるのは:
make_shared
が右辺値参照のみを受け入れるのはなぜですか? 定数への参照 (つまりconst _Args &
) のオーバーロードがないのはなぜですか?_VSTD::forward
電話のポイントは何ですか?
適切な説明または適切なハイパーリンクは、どちらも高く評価されます。