Non-void methods using call by reference

Aperta
#89 4 commenti 1 reazione 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Ferma
Stack tecnologico
cpp, python
Ambito
tooling

Direzione di ricerca

Inizia con la classificazione pywrap del passaggio per riferimento descritta nell’issue ed esamina GeomLib_Tool.Parameter_s come esempio concreto di OCP. Esamina cadquery/pywrap#45 e la bozza di PR #46, quindi determina l’impatto sulla compatibilità dell’esposizione dell’argomento calcolato insieme al risultato Standard_Boolean; il lavoro è completo quando i metodi che restituiscono riferimenti non-void espongono i propri valori calcolati senza lasciare irrisolta la decisione sulla firma di ritorno.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

There are quite a few methods in OCP that use call by reference but return a value instead of void. The current implementation of pywrap classifies functions as call by reference only when the return is void.

One example in OCP is the GeomLib_Tool.Parameter_s function - the computation result is stored in the 4th argument and the function returns a Standard_Boolean indicating whether the function succeeded in finding a value. However because the function does not return void, it's not classified as call by reference and therefore the actual computed value is not accessible from callers side.

I've opened an issue to cadquery/pywrap#45 and a draft PR cadquery/pywrap#46 demonstrating a possible solution (only for functions returning Standard_Boolean). This solution adds the boolean return value to the tuple returned by the wrapper.

A downside in implementing a change like this is that it breaks backwards compatibility as some functions return signature will change.

Lingua principale
C++
Stelle
200
Fork
48
Merge medio
1g 13h
PR unite (30g)
4

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di CadQuery/OCP

Tutte le issue di CadQuery/OCP

Issue simili

Altre issue su C++

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.