Enforce callback signatures with C++ Concepts
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 52/100
Direção de pesquisa
Revise as anotações inline de assinatura de #1738 e os pontos de entrada de template listados, incluindo BasicEnv::PostFinalizer, Object::AddFinalizer, External::New, Buffer::New e as APIs de ThreadSafeFunction. Determine as restrições necessárias para cada candidato a Finalizer, Callable, Getter, Setter e Callback. Considera-se concluído quando C++20 Concepts impõem as assinaturas documentadas e produzem diagnósticos no local da chamada.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
#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
- Linguagem predominante
- C++
- Estrelas
- 2.4k
- Forks
- 499
- Merge médio
- 2d 11h
- PRs com merge (30d)
- 2
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de nodejs/node-addon-api
-
blocked SemVer-major
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 52/100
nodejs/node-addon-api#1748 ·
-
Support C++20 span types AbertaSemVer-major
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 55/100
nodejs/node-addon-api#1747 · 2 comentários ·
-
SemVer-major
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 55/100
nodejs/node-addon-api#1745 ·
-
stale
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
nodejs/node-addon-api#1724 · 2 comentários ·
-
never-stale
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
nodejs/node-addon-api#1665 · 5 comentários ·
Todas as issues de nodejs/node-addon-api
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
-
Sensor initialization takes very long when `--initial-sim-time` is set to current UNIX timestamp Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
gazebosim/gz-sensors#662 · 1 comentário ·
-
enhancement
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
-
comp-datalake
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 88/100
ClickHouse/ClickHouse#121222 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
LadybirdBrowser/ladybird#12123 ·