Sto imparando a programmare il mio Arduino, ma ho uno sfondo piuttosto solido in C++, il che significa che sono rimasto molto deluso nel constatare che non potevo usare la libreria standard C++. Mi sono guardato intorno cercando di scoprire esattamente il perché, e finora l'unica spiegazione plausibile è che AVR-GCC non è compatibile con lo standard di linguaggio C++.Conformità standard C++ nell'AVR-GCC
Ora, so che molti compilatori hanno deviazioni minori dallo standard, ma sto pensando che ci deve essere qualcosa di veramente grande che separa AVR-GCC con GCC, Clang o uno qualsiasi degli altri compilatori che ho usato prima. Come alcune funzionalità massivamente importanti che mancano del tutto, o qualcosa del genere. Ci deve essere una buona ragione per cui non posso usare, ad esempio, std::vector
. È semplicemente troppo utile lasciarlo senza motivo.
Quindi che cos'è? Qual è il buco gigante nel dialetto AVR-GCC che rende impossibile la libreria standard C++ su un Arduino? E sto chiedendo questo per più di una semplice curiosità, perché se ci sono buchi giganteschi nella lingua, allora ho bisogno di conoscerli prima di andare in errore in un comportamento indefinito che non mi aspettavo.
Questo è il C++, con tutte le sue non conformità, incompatibilità e supporto generale scadente nel mondo embedded. Questo è molto sfortunato, lo so. Essere come 13 anni nel nuovo secolo, a volte sembra che siamo ancora negli anni '90. –
Mi sembra che la maggior parte delle piattaforme C++ incorporate non vengano spedite con lo stdlib principalmente perché nessuno lo userebbe comunque in ogni caso – PlasmaHH
@PlasmaHH: In parte, ma suona più come una scusa. –