C++ 1x unterstützt literale Suffixe (cmp. Z. B. http://ecn.channel9.msdn.com/events/GoingNative12/GN12Cpp11Style.pdf). Ich benutze gcc 4.7 und möchte einige Einheiten für unser System vorstellen. Vor allem die Hälfte unseres Codes verwendet Grad und die andere Hälfte Radiant (aufgrund von verschiedenen 3rd-Party-Bibliotheken), und natürlich ist dies immer eine ständige Ursache für Fehler. In der Lage sein, z.B. "Radianwinkel = 90 °;" wäre so hilfreich.C++ verfügbar "Literal Suffix-Code" für Einheiten
Ich habe untersucht, wie dies zu implementieren ist und es sieht machbar aus, aber es wird einige Zeit dauern, um alles richtig zu machen. Also frage ich mich, ob es eine fertige/getestete Implementierung gibt, die bereits all das implementiert, was verwendet werden kann (keine Notwendigkeit für jeden C++ - Entwickler, dies wieder zu implementieren, oder?). Neben rad/deg suche ich Längenmaße (mm, cm, m). Ich habe bereits gegoogelt, aber nichts brauchbares gefunden.
Kennt jemand eine Implementierung von z.B. das SI-System, das verwendet werden kann?
[Diese Referenz] (http://en.cppreference.com/w/cpp/language/user_literal) hat ein paar Beispiele. –
Danke, aber ich suche keine Beispiele/Referenzen. Ich bin zuversichtlich, dass ich eine ganze Reihe von Literalen und Umsetzungsoperatoren implementieren könnte, um meine Bedürfnisse zu erfüllen. Dies wird jedoch einige Zeit in Anspruch nehmen, um alle Anwendungsfälle zu testen. Da das SI-System für alle gleich ist, würde ich annehmen, dass Hunderte von C++ - Entwicklern so etwas tun - also hoffe ich, dass jemand eine saubere und getestete Implementierung durchgeführt hat, die "nur" verwendet werden kann. Ich will das Rad nicht neu erfinden. – Frankie
+1 für nicht das Rad neu erfinden wollen. Dies ist ** nicht ** was Sie suchen, aber Boost bietet eine templated Version unter [Boost.Units] (http://www.boost.org/doc/libs/1_52_0/doc/html/boost_units.html). Ich bin gespannt welche anderen Antworten du bekommen wirst. – Ali