Ich schreibe eine C++ - Bibliothek, die sowohl von einer Windows-Anwendung als auch von Symbian verwendet werden soll. Linux ist keine aktuelle Anforderung, sollte aber generell auch möglich sein.
Aus diesem Grund würde ich gerne die STL/Boost-Namenskonventionen anstelle von Symbian's verwenden, von denen ich denke, es ist schwer sich daran zu gewöhnen.
Dies scheint bereits ein Problem darzustellen, wenn der Code mit Carbide.C++ kompiliert wird, da er die Symbian-Namenskonvention erzwingt.Wie umgehen Symbian Namenskonventionen?
Wie kann ich "normale" Namen verwenden und trotzdem Symbian-kompatibel sein? Ich dachte zuerst über bedingt #define
-Klasse Klassennamen für die Symbian-Plattform, aber ich fürchte, dass dies zu Verwirrung führen wird.
Können andere Probleme auftreten, wenn Sie die Namenskonvention von Symbian nicht einhalten?
Welche Konventionen erzwingt? Wenn es Klassennamen erzwingen soll, mit C zu beginnen, dann ist das ziemlich falsch und wenn du es nicht ausschalten kannst, benutze kein Carbide. Sie müssen Ihre eigenen mmp-Dateien schreiben, aber es ist nicht das Ende der Welt. Wenn es nur darum geht, Funktionen zu verlassen, dann ist es richtig, dass Ihre plattformübergreifende Client-API nicht verlassen sollte, oder? Oder wird es dokumentiert, "diese Funktion lässt auf Symbian, aber wirft eine Ausnahme auf Windows"? Ich denke, das ist eine schlechte Idee: biete einfach zwei Schnittstellen zu deiner Bibliothek an, wenn das Verhalten anders ist. –
Eigentlich weiß ich nicht welche Konventionen er durchsetzt. Mein Kollege, der das Symbian-spezifische Zeug machen würde, sagte mir, wir sollten uns besser an die Konvention halten, sonst könnten seltsame Dinge passieren. Er ist auch kein Symbian-Experte. Wir versuchen nur Code wiederzuverwenden, der bereits auf Symbian funktioniert und ihn auch woanders nutzbar machen. – foraidt