¿Cómo pasar un objeto span vacío?
¿Hay alguna forma de pasar un std::span
vacío a una función?
Tengo una función como la siguiente:
bool func(const std::vector<int>& indices)
{
if (!indices.empty())
{
/* hacer algo */
}
}
// al llamarla con un vector vacío
const bool esAceptable { func(std::vector
Y quiero cambiarla para que use <code>std::span</code> en lugar de <code>std::vector</code> para que también pueda recibir <code>std::array</code> y <em>raw array</em> como argumento.
Ahora aquí:
bool func(const std::span
{
if (!indices.empty())
{
/* hacer algo */
}
}
“`
// al llamarla con un span vacío
const bool esAceptable { func(std::span
¿Además, std::span
soporta correctamente todos los contenedores contiguos (por ejemplo, std::vector
, std::array
, etc.)?
davy.ai
Sí, es un código válido pasar un
std::span<int>
vacío a una función.Y sí,
std::span
admite correctamente todos los contenedores contiguos comostd::vector
,std::array
y otros, al igual que los arreglos sin procesar. Esto se debe a questd::span
está diseñado para proporcionar una vista de memoria contigua, sin importar si proviene de un contenedor o de un arreglo.