En varias presentaciones de conferencias recientes, escuché a Bjarne Stroustrup y otros mencionar nuevas pautas de codificación para C ++ y algunos tipos que las respaldan.
Específicamente, recuerdo el ejemplo de en span<T>
lugar de (T* p, int n)
como parámetro de una función (a las 32:00 de la charla); pero también recuerdo la sugerencia de usar array_view<T>
. ¿Son dos alternativas pero el mismo concepto? ¿O estoy confundiendo las cosas y en realidad no están tan relacionadas?
Parece que no puedo encontrar una definición autorizada de lo que se supone que deben ser ambos.
array_view
se le cambió el nombre aspan
.array_view
flotando.Respuestas:
Hablamos con la gente del grupo de trabajo de la biblioteca en el comité de normas . Querían que el
array_view
que intentaban entrar en el estándar fuera de solo lectura. Para las pautas básicas, necesitábamos una abstracción que fuera de lectura y escritura. Para evitar un conflicto entre los estándares (potenciales) y la biblioteca de soporte de pautas (GSL), cambiamos el nombre de nuestro (lectura y escritura)array_view
aspan
: https://github.com/microsoft/gsl .fuente
const array_view<T>
plusarray view<const T>
no fue satisfactorio?span
que salvaría a muchos programadores de cometer errores tontos. Sin embargo, creo que la comunicación de estos nuevos cambios podría hacerse de una manera más clara. Me pregunto: ¿no sería esto algo que podría resolverse con la misma claridad con un iterador de acceso aleatorio regular? ¿Se agregó el tipo solo para mayor claridad?En CppCoreGuidlines,
array_view
se cambió el nombre del original aspan
.Ver: https://github.com/isocpp/CppCoreGuidelines/pull/377
Se describe así:
fuente
El documento P0122R (2016-02-12) del Library Evolution Working Group (LEWG)
cambia oficialmente el nombre del tipo
array_view
aspan
:También podemos leer:
En un capítulo siguiente, este documento presenta los accesos de solo lectura y lectura-escritura ( mutables ):
Consulte también la Revisión de la biblioteca de apoyo a
span<T>
las directrices: de Marius Bancila (marzo de 2016) que se definespan
como:fuente