Introduction

template<typename ServiceTrait, typename ...Args>
auto GenericPackerFactory(int UserRequestID, Args &&...args) //-> decltype(CGenericPackerFactory<ServiceTrait>::New(std::forward<Args>(args)...))
{
}

如果不将 -> decltype(CGenericPackerFactory<ServiceTrait>::New(std::forward<Args>(args)...)) 即 trailing return type注释掉,则上述code是会报编译错误的,注释掉后,上述code只会报warning。