optional::transform mandates are too strict - need to allow references
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 42/100
Línea de trabajo
Comienza con el caso de prueba existente mencionado en el issue e inspecciona las restricciones de optional::transform que este ejercita. Compara la implementación con las cláusulas enlazadas del estándar de C++, especialmente con el requisito del tipo de objeto, y verifica que se acepten resultados de referencia cuando optional<T&> está permitido. Se considera terminado cuando la prueba pasa sin debilitar las demás restricciones indicadas.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Don't overconstrain the types that can result from transform if optional<T&> is allowed.
https://eel.is/c++draft/optional#monadic-7
Let U be remove_cv_t<invoke_result_t<F, decltype(*val)>>.
https://eel.is/c++draft/optional#monadic-8
Mandates: U is a non-array object type other than in_place_t or nullopt_t. The declaration
U u(invoke(std::forward(f), *val));
is well-formed for some invented variable u.
[Note 1: There is no requirement that U is movable ([dcl.init.general]). — end note]
However, if optional<T&> is allowed, the object type requirement is too strong -- is_object_v<U> will prohibit a reference returning function creating an optional where U is a reference.
Caught by existing test case.
- Lenguaje dominante
- C++
- Estrellas
- 47
- Forks
- 25
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Aún no hemos revisado los archivos de configuración de este proyecto. 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 bemanproject/optional
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 58/100
bemanproject/optional#188 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 38/100
bemanproject/optional#138 · 17 comentarios ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 45/100
bemanproject/optional#134 · 6 comentarios · 2 reacciones ·
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
bemanproject/optional#129 ·
-
Create docs for beman.optionalAbiertogood first issue
Dificultad 3/5 1-2 días Aptitud para principiantes 35/100
bemanproject/optional#120 · 3 comentarios ·
Todos los issues de bemanproject/optional
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 1 día
-
[meshoptimizer] update to 1.3Abiertocategory:port-update
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
CLI jira shell completion
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día