Recreando la función make_unique en C 11
El estándar C 11 introduce una potente función, make_unique, para crear punteros únicos. Sin embargo, algunos pueden encontrar el problema de que su compilador no admite esta función. Este artículo proporciona una solución alternativa para implementar make_unique en C 11.
Según la pregunta, el prototipo de la función make_unique es:
template unique_ptr make_unique( Args&&&... args );
El siguiente código proporciona una implementación de make_unique:
template
std::unique_ptr make_unique(Args&&... args)
{
return std::unique_ptr(new T(std::forward(args)...));
}
Esta implementación utiliza la función std::forward para garantizar que el reenvío de argumentos se produzca correctamente para todo tipo de argumentos, incluidas las referencias y las referencias de rvalue.
Tenga en cuenta que si su compilador admite C 11 pero no la función make_unique, aún puedes usar esta implementación como solución alternativa. Alternativamente, si tiene acceso a un compilador que admita C 14 o posterior, simplemente puede aprovechar la función estándar std::make_unique para este propósito.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3