Perché anche via del ritorno quando lo STL è stato progettato:
c'erano già significativamente migliore arbitraria librerie precisione interi in C. Certo non erano ufficialmente le classi, ma le strutture hanno usato ancora fatto il lavoro. Un'implementazione STL non otterrebbe molto da coloro che hanno bisogno di numeri interi arbitrari di precisione, il che mi porta alla seconda ragione:
Non che molte persone abbiano effettivamente bisogno di interi di precisione arbitrari. Coloro che fanno, inseriscono una libreria di terze parti. Per la maggior parte delle persone a 32 bit ha fatto il lavoro in quei giorni. Per molte persone lo fanno ancora. E le prestazioni sono significativamente migliori. Anche su un sistema senza operazioni native a 64 bit è possibile simularle con poche istruzioni ed essere ancora significativamente più veloci di un'implementazione di numeri arbitrari (indipendentemente da quanto sottile sia, la parte arbitraria e le allocazioni di heap probabili lo renderanno più costoso di due operazioni in interi minori e un trasporto manuale).
Al di là di tutto ciò che si riduce semplicemente a Stroustrup, non riteneva di avere un appeal abbastanza ampio da adattarsi alla sua visione dell'STL.
Penso che una domanda migliore sarebbe perché nessuna valuta o classe decimale di precisione arbitraria nell'STL, poiché penso che siano molto più comunemente un problema, ma le risposte sono le stesse.
fonte
2011-11-08 07:16:05
La mia ipotesi è che la grande aritmetica non è banale da implementare (in modo efficiente). – Mysticial
"ma solo una domanda sul perché il linguaggio non è già venuto con uno." Perché dovrebbe? Ognuno ha il suo piccolo problema domestico in cui pensano che una lingua dovrebbe supportare X. Ma questo non significa che dovrebbe. Ho programmato per oltre 20 anni e ho usato le stringhe molto frequentemente.Eppure, non ho mai avuto bisogno di un intero di precisione arbitrario. Questo non vuol dire che sia un motivo per non averne uno. Ma suggerisce che forse la domanda è perché _should_ la libreria standard C++ ha un numero arbitrario di precisione intero, non perché non lo fa. –