Puse mis habilidades en C ++ en el estante hace varios años y parece que ahora, cuando las necesito nuevamente, el panorama ha cambiado.
Tenemos C ++ 11 ahora, y entiendo que se superpone a muchas características de Boost.
¿Hay algún resumen de dónde se encuentran esas superposiciones, qué bibliotecas de Boost se convertirán en heredadas, la recomendación de qué características de C ++ 11 usar en lugar de impulsar y cuáles mejor no?

Respuestas:
Reemplazable por funciones o bibliotecas de lenguaje C ++ 11
<cmath>, vea la lista a continuaciónlog1p,expm1cbrt,hypotacosh`asinh`atanhTR1 (están marcados en la documentación si son bibliotecas TR1)
Características portadas desde C ++ 11:
Reemplazable por las características del lenguaje C ++ 17:
<cmath>( Matemáticas especiales IS ), vea la lista a continuaciónEl equipo estándar todavía está trabajando en ello:
Una gran parte de MPL se puede recortar o eliminar usando plantillas variadas. Algunos casos de uso común de fundición léxico pueden ser reemplazados por std :: to_string y std :: sto X .
Algunas bibliotecas de Boost están relacionadas con C ++ 11 pero también tienen algunas extensiones más, por ejemplo, Boost.Functional / Hash contiene hash_combine y funciones relacionadas que no se encuentran en C ++ 11, Boost.Chrono tiene E / S y redondeo y muchos otros relojes, etc., por lo que es posible que desee echar un vistazo a los impulsores antes de descartarlos realmente.
fuente
std::unique_ptrsea parte de TR1 (ya que requiere semántica de movimiento)En realidad, no creo que las bibliotecas de impulso se conviertan en legado.
Sí, usted debería ser capaz de utilizar
std::type_traits,regex,shared_ptr,unique_ptr,tuple<>,std::tie,std::beginen lugar de Typetraits Boost / Utilidad, Boost SmartPointer, Boost Tuple, Boost bibliotecas Range, pero no debe ser en la práctica hay necesidad real de 'interruptor' a menos que se están moviendo más de su código para c ++ 11.Además, en mi experiencia, las
stdversiones de la mayoría de estas son algo menos características. Por ejemplo, AFAICT el estándar no tienebool boost::basic_regex<>::empty()) y otras diferencias de interfazPerezoso, expresión lambdas basada en plantillas; tienen beneficios inevitables, ya que pueden ser polimórficos hoy , a diferencia de C ++ 11. Por lo tanto, a menudo pueden ser más concisos:
Definitivamente, esto todavía tiene cierto atractivo sobre C ++ 11 lambdas (con tipos de retorno finales, captura explícita y parámetros declarados).
Además, Boost tiene una función GRANDE, precisamente al facilitar la migración por ruta de C ++ 03 a C ++ 11 e integrar las bases de código de C ++ 11 y C ++ 03. Estoy pensando particularmente en
boost::result_of<>y relacionado)Solo mis $ 0.02
fuente