Enforce callback signatures with C++ Concepts
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 52/100
Línea de trabajo
Revisa las anotaciones de firma inline de #1738 y los puntos de entrada de plantillas enumerados, incluidos BasicEnv::PostFinalizer, Object::AddFinalizer, External::New, Buffer::New y las APIs de ThreadSafeFunction. Determina las restricciones necesarias para cada candidato de Finalizer, Callable, Getter, Setter y Callback. Se considera terminado cuando C++20 Concepts hacen cumplir las firmas documentadas y producen diagnósticos en el punto de llamada.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
#1738 documented the required signature of the templated finalizer callback parameters as inline comment hints.
These are human-only annotations. The compiler does not enforce them, so a mismatched callable fails deep inside the template instantiation with an unhelpful error.
Once C++20 is the minimum supported standard, we should replace these hints with C++ Concepts that constrain the Finalizer/FinalizerType template parameters. This gives compiler-enforced contracts and clear diagnostics at the call site.
Finalizer candidates:
BasicEnv::PostFinalizerObject::AddFinalizerExternal::NewBuffer::New/Buffer::NewOrCopyThreadSafeFunction::NewTypedThreadSafeFunction::New
Callback candidates:
Function::New— the JS callback (Callable)PropertyDescriptor::Accessor—Getter/SetterPropertyDescriptor::Function—CallableThreadSafeFunction::BlockingCall/NonBlockingCall—CallbackTypedThreadSafeFunction::BlockingCall/NonBlockingCall—CallbackTypedThreadSafeFunction— theCallJscallback
- Lenguaje dominante
- C++
- Estrellas
- 2.4k
- Forks
- 499
- Merge medio
- 2 d 11 h
- PR fusionados (30 d)
- 2
Guía de contribución
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 nodejs/node-addon-api
-
blocked SemVer-major
Dificultad 4/5 3-5 días Aptitud para principiantes 52/100
nodejs/node-addon-api#1748 ·
-
Support C++20 span types AbiertoSemVer-major
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
nodejs/node-addon-api#1747 · 2 comentarios ·
-
SemVer-major
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
nodejs/node-addon-api#1745 ·
-
stale
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
nodejs/node-addon-api#1724 · 2 comentarios ·
-
never-stale
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
nodejs/node-addon-api#1665 · 5 comentarios ·
Todos los issues de nodejs/node-addon-api
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
-
Sensor initialization takes very long when `--initial-sim-time` is set to current UNIX timestamp Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
gazebosim/gz-sensors#662 · 1 comentario ·
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
-
comp-datalake
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
ClickHouse/ClickHouse#121222 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 68/100
LadybirdBrowser/ladybird#12123 ·