Der Sommer kommt und eine Gruppe von Freunden und ich bereiten uns darauf vor :)
Wir haben beschlossen, Ganzzahlen mit beliebiger Genauigkeit zur Kompilierzeit zu erstellen. Wir möchten eine Reihe von Ganzzahlarithmetik-Algorithmen(Funktionen) mit der Bibliothek bereitstellen. Wir haben eine Reihe von Anfragen nach einer solchen Bibliothek gesehen (SoC2010, C++0x Standard Library Wishlist). Auch eine standardmäßige Laufzeit bigint
wird normalerweise damit angefordert, aber wir möchten uns nicht mit dem Aufwand des Speichermanagements befassen. Die Idee kam mir von einer Bibliothek namens TTMath, leider funktioniert diese Bibliothek nur auf spezifischen Plattformen, weil in der Bibliothek umfangreich Assembly verwendet wurde. Wir möchten eine Standardbibliothek schreiben, die von der C++ Standardbibliothek und von Boost abhängt. Außerdem möchten wir die verfügbaren C++0x-Funktionen in aktuellen Compilern wie benutzerdefinierte Literale und andere nutzen. Dies würde die Bibliothek technisch gesehen vorerst nicht standardmäßig machen, aber wir glauben, dass es nur eine Frage der Zeit ist, bis die neuen Standards offiziell werden.
Ihre Hinweise zum gesamten Prozess, einschließlich Design, Implementierung, Dokumentation und Wartbarkeit der Bibliothek, sind mehr als willkommen. Wir sind eine Gruppe von Studenten und frischgebackenen Absolventen, die im Sommer etwas Interessantes suchen, aber wir sehen, dass Boost voller Gurus ist und wir nichts allzu Offensichtliches vergessen wollen. Wir kommunizieren online, es gibt also keine gemeinsamen Whiteboards :(
Hier ein Beispiel für die Verwendung einer solchen Bibliothek:
typedef our_namespace::uint<512> uint512_t;
// Deklaration einer ganzzahligen Variable mit einer Breite von 512 Bits.
// Danach sollte der Benutzer damit genauso umgehen wie mit den nativen Datentypen.
Danke,