C++ *puro*

Salve

Mi sto documentando sulla parte "software" dell'arduino e ho capito che il C++ "puro", in realtà, non è supportato. Mi riferisco a funzioni come new o delete, iteratori, map e multimap (tutta la stdlib del c++!!!) e addirittura le classi non sono supportate... di conseguenza il 98% del paradigma OOP va a farsi benedire.

Quindi vi chiedo, in futuro il C++ sarà supportato pienamente?

Potreste indicarmi più o meno quali sono i limiti di spazio/memoria in cui posso operare? Esempio matrici di interi 100x100, 1000x1000, 1milionex1milione etc etc... fino dove posso spingermi?

grazie ;)

ciao skaxxo

Ridimensonati un po. :wink:

Qua parliamo

  1. di C e non C++
  2. nel caso del Arduino 2009 con il controller ATmega328 stiamo lavorando su un controller a 8 Bit con 2048 byte ( non kilo o mega o giga, ma duemilaquarantotto byte) di Ram e 1024 Byte di EEprom e 32k Byte di memoria flash per i programmi.

Non credo che il C++ sará mai sopportato pienamente.

Tanti Saluti Uwe

ciao

Arduino supporta un sottoinsieme del C++ (per esempio le classi sono supportate, la maggior parte delle librerie sono classi) supporta anche i templates. (virtual functions e virtual inheritance con qualche funzioncina da aggiungere a mano) (new e delete possono essere aggiunti con 3 righe di codice)

Il resto funziona bene su un processore con tanta ram ma con 1k che allocazioni dinamica vuoi fare ? :)

m

@massimo banzi

grazie mille per la risposta Massimo.
Stavo leggendo un pò di informazioni circa le librerie/funzioni supportate da arduino.
E ho letto questo:
http://www.nongnu.org/avr-libc/user-manual/FAQ.html#faq_cplusplus
e
http://www.nongnu.org/avr-libc/user-manual/modules.html

Che cozza un pò con la tua risposta (certamente ne sai molto più di me), quindi, dove posso trovare una maggiore documentazione circa le librerie C++ supportate?
In particolare la standard library.

Ti chiedo questo perchè sarebbe interessante fare del clustering e/o applicazioni matematiche (tipo matrice*matrice).
Insomma applicare corbellerie universitarie su queste piastre… potrebbero non essere molto adatte a ciò, ma dato: il costo finale, documentazione e la community che gira attorno a questa piattaforma… probabilmente il gioco vale la candela!

Saluti

A.

PS
Esistono shield con espansioni ram?

questa frase "Obviously, none of the C++ related standard functions, classes, and template classes are available." indica che non sono disponibili le funzioni, classi e template che vengono di solito fornite con il c++ però il concetto di funzioni, classi e template sono disponibili

qui c'è scritto come farsi new e delete ed altre cose. http://www.avrfreaks.net/index.php?name=PNphpBB2&file=viewtopic&p=457778

non esiste un espansione di ram... sarebbe comunque lenta perche andrebbe via SPI o peggio via I2C

guardati la mega... ha 8k di ram

m

“questa frase “Obviously, none of the C++ related standard functions, classes, and template classes are available.” indica che non sono disponibili le funzioni, classi e template che vengono di solito fornite con il c++ però il concetto di funzioni, classi e template sono disponibili”

:o

Studierò meglio la cosa. Grazie per la risposta!