Domanda

Sto per scrivere una libreria C ++ che deve essere utilizzata da un'applicazione Windows e su Symbian. Linux non è un requisito attuale ma dovrebbe anche essere possibile anche in genere.
Per questo motivo, vorrei utilizzare le convenzioni di denominazione STL / Boost anziché Symbian's , a cui penso, è difficile abituarsi.
Questo sembra già presentare un problema, quando si compila il codice con Carbide.c ++ in quanto applica la convenzione di denominazione Symbian.

Come posso usare " normale " nomi ed essere ancora compatibile con Symbian? Per la prima volta ho pensato di ricondizionare #define -ing i nomi delle classi per la piattaforma Symbian, ma temo che ciò causerà confusione.

Potrebbero verificarsi altri problemi non rispettando la convenzione di denominazione di Symbian?

È stato utile?

Soluzione

Le convenzioni di codifica non sono rigide. Sono lì per facilitare la comprensione del codice per noi umani. Se stai scrivendo una libreria multi-piattaforma, sentiti libero di usare qualunque convenzione ti trovi a tuo agio.

Ovviamente, la tua libreria probabilmente deve interfacciarsi con il sistema operativo sottostante in qualche modo. Con l'aiuto di Apri le librerie C / C ++ , puoi fare molte cose senza la necessità di utilizzare API C ++ Symbian native e le loro convenzioni di denominazione.

In Carbide.c ++ potresti voler disabilitare l'analisi statica di CodeScanner poiché è davvero utile solo per scrivere il codice scritto in Symbian C ++ nativo.

Quindi, in sintesi, i problemi sono i seguenti:

  • Le persone che provengono da un background nativo di Symbian C ++ non hanno immediatamente familiarità con le convenzioni
  • L'utilizzo di API C ++ Symbian native può esporre alcune peculiarità specifiche della piattaforma (eccezioni rispetto a foglie, trappole, programmi di pianificazione attivi ecc.)
  • Gli analizzatori statici specifici di Symbian come CodeScanner assumono lo stile del codice Symbian C ++ e possono generare errori / avvisi di cui non è necessario preoccuparsi
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top