Men svenska programverktygsutvecklaren IAR tycker att EC++ är för begränsat, och lägger nu tillbaka en del av den grammatik som EC++ plockat bort.
IAR lägger bland annat tillbaka mallar (templates) som är funktioner som lämnar en lucka för vilken typ av värde som behandlas. Programmeraren kan skapa en "stack med element av typen X" där X efteråt kan preciseras till heltal, text eller annan godtycklig datatyp.
- Man måste betänka det historiska perspektivet. När EC++ standarden fastslogs för sju, åtta år sedan fanns ingen stabil standard för Templates, vilket var huvudanledningen till att man då valde att inte ta med den, säger Mats Ullström, produktchef för IAR.
- Templates är en mycket användbar funktionalitet i C++ som har efterfrågats från ett flertal av våra kunder. Exakt hur många kan jag inte säga, säger Mats Ullström.
Andra uttrycksmöjligheter som IAR återtar från C++ är separata namnrum som tillåter funktioner från olika programvarubibliotek att ha samma namn, attributet "mutable" som tillåter delar av en konstant att ändras, samt omvandlingarna static, reinterpret och const cast som bland annat kan förvandla en konstant minnespekare till en variabel minnespekare.
IAR stöder dessutom uttrycksmöjligheter som varken finns i Embedded C++ eller C++. Programmeraren kan till exempel bestämma på vilka minnesadresser som programkod och data ska lagras.
De nya uttrycksmöjligheterna finns till att börja med i IAR Embedded Workbench för ARM och MSP430.
IAR går inte hela vägen och stöder hela programspråket C++ för 8-bitare. Exempelvis utelämnas Multipelt arv, dynamiska typomvandlingar och undantagshantering.
- Samtliga dessa har en rejäl påverkan på applikationens storlek och är därför inte tillämpliga på 8-bitarschip, säger Mats Ullström.
Jan Tångring