boost::span cannot be implicitly constructed from `std::initializer_list` indirectly [feature-request]
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- Medio día
- Aptitud para principiantes
- 35/100
Línea de trabajo
No se nombra ningún archivo fuente ni ninguna prueba. Empieza por localizar las sobrecargas del constructor de boost::span y la cobertura de pruebas existente de span, y después comprueba el ejemplo de direct-list-initialization del issue. Se considera terminado cuando el ejemplo compila y una cobertura equivalente confirma el comportamiento previsto de initializer-list sin regresiones en la construcción existente a partir de rangos.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
NOTE: This isn't something std::span in C++20 supports either, unfortunately. But since Boost tries to offer things a future standard might adopt, I think this fits?
Because boost::span has no constructor signature with a direct std::initializer_list argument, but only a templated "range" one, this works:
std::initializer_list<int> il{1,2,3,4};
boost::span<int> sp(il);
but this does not, because it requires two implicit conversions to occur:
boost::span<int> sp({1,2,3,4});
I believe the above would work if this were to be added:
constexpr span(std::initializer_list<T> il) noexcept
: s_(boost::data(il), il.size())
{}
I can provide a PR, if you wish.
I recognize this can lead to lifetime issues for the backing array, but that's already true for span regardless.
There is a std proposal for this, I believe: p2447r2, but I don't know its disposition.
- Lenguaje dominante
- C++
- Estrellas
- 156
- Forks
- 116
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de boostorg/core
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 55/100
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 55/100
-
saturate_castAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
move span to boost::core::Quizá libre de nuevo @glenfe la tomó hace 508 días y no hay ningún pull request abierto. Abierto
Todos los issues de boostorg/core
Issues similares
-
Web3 RPC: one-element batch request returns an object instead of an array (breaks ethers.js v6)Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
FISCO-BCOS/FISCO-BCOS#5706 ·
Los mantenedores suelen responder en 3 días
-
[开源推荐] Windows 系统维护工具箱,支持后台任务队列Abierto
Dificultad 1/5 Menos de una hora Aptitud para principiantes 85/100
521xueweihan/HelloGitHub#4011 ·
-
docs(simulation): Quickstart publishes UDP 14550, which the SITL images' own docs say not to doAbiertostatus:needs-triage
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100
PX4/PX4-Autopilot#29292 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
I/O internal correctness medium priority rt_lib
Dificultad 2/5 1-3 horas Aptitud para principiantes 79/100
Los mantenedores suelen responder en 1 día
-
GUI
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
sonic-pi-net/sonic-pi#3594 ·