与底部相比,使用以下内容有什么优势吗?还有其他方法可以创建模板函数别名吗?
template <typename T, typename... Args>
auto MakeShared(Args&&... args) -> decltype(std::make_shared<T>(std::forward<Args>(args)...))
{
return std::make_shared<T>(std::forward<Args>(args)...);
}
和:
template <typename T, typename... Args>
inline SharedPtr<T> MakeShared(Args&&... args)
{
return std::make_shared<T>(args...);
}
最后一个对我来说似乎更具可读性,而且,Visual Assist 突出显示内联版本就像一个正确的函数,但似乎对第一个感到困惑(是的,我知道这是一个小问题,但仍然如此)。
性能、灵活性等呢?