1165:
359:
290:
267:
228:
200:
177:
154:
127:
104:
283:
260:
221:
193:
170:
147:
120:
97:
416:
device drivers for Apple's macOS, iPadOS and iOS operating systems of the popular
Macintosh, iPhone, and iPad products. Apple engineers felt the exceptions, multiple inheritance, templates, and runtime type information features of standard C++ were either insufficient or not efficient enough for use
407:
says, "To the best of my knowledge EC++ is dead (2004), and if it isn't it ought to be." In fact, the official
English EC++ website has not been updated since 2002. Nevertheless, a restricted subset of C++ (based on Embedded C++) has been adopted by
597:
63:
construction simpler. The official website states the goal as "to provide embedded systems programmers with a subset of C++ that is easy for the average C programmer to understand and use".
672:
988:
980:
1643:
1638:
1201:
1169:
665:
638:
1648:
1224:
1607:
892:
568:
632:
907:
877:
503:
658:
525:
1134:
459:
298:
Some compilers, such as those from Green Hills and IAR Systems, allow certain features of ISO/ANSI C++ to be enabled in
Embedded C++.
372:
897:
310:
An EC++ program can be compiled with any C++ compiler. But, a compiler specific to EC++ may have an easier time doing optimization.
1129:
1569:
1524:
1352:
1194:
1269:
1124:
1119:
1612:
24:
56:
55:, to address the shortcomings of C++ for embedded applications. The goal of the effort is to preserve the most useful
1559:
1529:
1653:
1514:
1506:
1259:
1187:
1080:
851:
208:
1539:
1519:
917:
902:
818:
803:
768:
742:
1367:
960:
950:
322:
139:
36:
833:
793:
1357:
379:
367:
1289:
1229:
856:
955:
841:
1617:
1551:
1330:
1239:
1144:
798:
783:
342:
112:
59:
features of the C++ language yet minimize code size while maximizing execution efficiency and making
383:
1415:
1347:
1254:
887:
576:
185:
1274:
1018:
275:
89:
808:
511:
1564:
1486:
1372:
1264:
1249:
1152:
925:
882:
552:
533:
404:
813:
763:
697:
463:
1453:
1362:
1301:
1279:
823:
777:
1337:
1325:
1284:
1210:
1060:
644:
40:
32:
970:
627:
1461:
1433:
1382:
1244:
403:
The language has had a poor reception with many expert C++ programmers. In particular,
337:
935:
930:
758:
1632:
1584:
1496:
1029:
846:
44:
1481:
1294:
1003:
965:
940:
1075:
1594:
1534:
1342:
434:
317:
299:
447:
1574:
1400:
1234:
1044:
872:
409:
330:
162:
547:
1471:
1065:
1013:
1070:
1428:
1320:
1311:
1039:
1034:
1008:
326:
60:
788:
737:
732:
727:
722:
717:
712:
707:
378:
Please help rewrite or integrate negative information to other sections
1589:
1476:
1466:
1405:
1392:
628:
Background and
Objectives of the Embedded C++ Specification Development
52:
48:
1491:
1423:
993:
1179:
773:
702:
692:
681:
28:
1023:
998:
945:
639:
Building Bare-Metal ARM Systems with GNU: Part 1 - Getting
Started
620:
1443:
1438:
1377:
1085:
1183:
654:
413:
352:
313:
Compilers specific to EC++ are provided by companies such as:
35:. It was defined by an industry group led by major Japanese
485:
650:
412:
as the exclusive programming language to create all
1550:
1505:
1452:
1414:
1391:
1310:
1217:
1143:
1110:
1094:
1053:
979:
916:
865:
832:
751:
273:
234:
206:
183:
160:
133:
110:
87:
1195:
666:
526:"Green Hills Optimizing C/C++/EC++ Compilers"
417:in a high-performance, multithreaded kernel.
8:
635:, John Carbone (Embedded.com), June 19, 1998
71:Embedded C++ excludes some features of C++.
1202:
1188:
1180:
673:
659:
651:
641:, Miro Samek, Quantum Leaps, June 26, 2007
73:
633:Embedded C++ Yields Faster Smaller Code
486:"IAR Systems - Compilers and debuggers"
426:
893:Resource acquisition is initialization
602:IOKit Device Driver Design Guidelines
7:
908:Substitution failure is not an error
878:Curiously recurring template pattern
647:, by WG 21 of ISO Subcommittee SC 22
460:"Embedded and Extended Embedded C++"
368:"criticism" or "controversy" section
302:calls this "Extended Embedded C++".
1135:Comparison of programming languages
645:Technical Report on C++ Performance
504:"Embedded C++ compiler technology"
14:
1644:Class-based programming languages
1164:
1163:
357:
288:
281:
265:
258:
226:
219:
198:
191:
175:
168:
152:
145:
125:
118:
102:
95:
1639:C++ programming language family
1525:Light-weight Linux distribution
1353:Hacking of consumer electronics
39:(CPU) manufacturers, including
1649:Hardware description languages
1130:Comparison of ALGOL 68 and C++
1:
371:may compromise the article's
1613:List of open-source hardware
548:"What do you think of EC++?"
530:Green Hills Software website
926:Comparison of C++ compilers
282:
259:
220:
192:
169:
146:
119:
96:
1670:
1530:Real-time operating system
1125:Comparison of Java and C++
1120:Compatibility of C and C++
448:EC++ Questions and Answers
336:Tasking Software, part of
289:
266:
227:
199:
176:
153:
126:
103:
1603:
1515:Linux on embedded systems
1161:
688:
598:"The libkern C++ Runtime"
329:in 2004 who had acquired
209:Run-time type information
82:
79:
76:
31:programming language for
1520:Linux for mobile devices
903:Special member functions
819:Template metaprogramming
1368:PlayStation 3 Jailbreak
323:Freescale Semiconductor
140:storage class specifier
37:central processing unit
1358:Homebrew (video games)
1552:Programming languages
1290:Single-board computer
1230:Board support package
961:Oracle Solaris Studio
1618:Open-source robotics
1608:Lightweight browsers
1331:Proprietary firmware
1240:Consumer electronics
989:Comparison of C IDEs
799:Operator overloading
784:Function overloading
343:Green Hills Software
276:Virtual base classes
113:Multiple inheritance
67:Differences from C++
1348:Defective by Design
1255:Embedded hypervisor
888:One Definition Rule
569:"What is Mac OS X?"
490:IAR Systems website
1416:Software libraries
1054:Superset languages
956:Intel C++ Compiler
774:Exception handling
380:through discussion
90:Exception handling
1626:
1625:
1565:Assembly language
1507:Operating systems
1487:Stand-alone shell
1454:Programming tools
1373:Rooting (Android)
1265:Embedded software
1250:Embedded database
1177:
1176:
1153:Bjarne Stroustrup
936:Borland Turbo C++
883:Most vexing parse
824:Virtual functions
553:Bjarne Stroustrup
405:Bjarne Stroustrup
401:
400:
325:, (spin-off from
296:
295:
1661:
1654:Embedded systems
1363:iOS jailbreaking
1280:Memory footprint
1211:Embedded systems
1204:
1197:
1190:
1181:
1167:
1166:
834:Standard Library
789:Move constructor
778:Exception safety
769:Copy constructor
675:
668:
661:
652:
624:
623:
621:Official website
606:
605:
594:
588:
587:
585:
584:
575:. Archived from
565:
559:
558:
544:
538:
537:
532:. Archived from
522:
516:
515:
510:. Archived from
500:
494:
493:
482:
476:
475:
473:
471:
462:. Archived from
456:
450:
445:
439:
438:
435:"EC++ Rationale"
431:
396:
393:
387:
361:
360:
353:
292:
291:
285:
284:
278:
269:
268:
262:
261:
255:
253:
249:
248:reinterpret_cast
245:
241:
230:
229:
223:
222:
216:
214:
202:
201:
195:
194:
188:
179:
178:
172:
171:
165:
156:
155:
149:
148:
142:
137:
129:
128:
122:
121:
115:
106:
105:
99:
98:
92:
74:
33:embedded systems
1669:
1668:
1664:
1663:
1662:
1660:
1659:
1658:
1629:
1628:
1627:
1622:
1599:
1546:
1501:
1448:
1410:
1387:
1338:Closed platform
1326:Custom firmware
1306:
1285:Microcontroller
1213:
1208:
1178:
1173:
1157:
1139:
1113:other languages
1112:
1106:
1090:
1049:
975:
912:
861:
828:
747:
684:
679:
619:
618:
615:
610:
609:
596:
595:
591:
582:
580:
567:
566:
562:
546:
545:
541:
524:
523:
519:
508:Tasking website
502:
501:
497:
484:
483:
479:
469:
467:
458:
457:
453:
446:
442:
433:
432:
428:
423:
397:
391:
388:
377:
366:This article's
362:
358:
351:
308:
274:
251:
247:
243:
239:
237:
235:
212:
207:
184:
161:
135:
134:
111:
88:
69:
57:object-oriented
12:
11:
5:
1667:
1665:
1657:
1656:
1651:
1646:
1641:
1631:
1630:
1624:
1623:
1621:
1620:
1615:
1610:
1604:
1601:
1600:
1598:
1597:
1592:
1587:
1582:
1577:
1572:
1567:
1562:
1556:
1554:
1548:
1547:
1545:
1544:
1543:
1542:
1532:
1527:
1522:
1517:
1511:
1509:
1503:
1502:
1500:
1499:
1494:
1489:
1484:
1479:
1474:
1469:
1464:
1462:Almquist shell
1458:
1456:
1450:
1449:
1447:
1446:
1441:
1436:
1434:Embedded GLIBC
1431:
1426:
1420:
1418:
1412:
1411:
1409:
1408:
1403:
1397:
1395:
1389:
1388:
1386:
1385:
1383:Vendor lock-in
1380:
1375:
1370:
1365:
1360:
1355:
1350:
1345:
1340:
1335:
1334:
1333:
1328:
1317:
1315:
1308:
1307:
1305:
1304:
1299:
1298:
1297:
1287:
1282:
1277:
1272:
1267:
1262:
1257:
1252:
1247:
1245:Cross compiler
1242:
1237:
1232:
1227:
1221:
1219:
1215:
1214:
1209:
1207:
1206:
1199:
1192:
1184:
1175:
1174:
1162:
1159:
1158:
1156:
1155:
1149:
1147:
1141:
1140:
1138:
1137:
1132:
1127:
1122:
1116:
1114:
1108:
1107:
1105:
1104:
1098:
1096:
1092:
1091:
1089:
1088:
1083:
1078:
1073:
1068:
1063:
1057:
1055:
1051:
1050:
1048:
1047:
1042:
1037:
1032:
1026:
1021:
1016:
1011:
1006:
1001:
996:
991:
985:
983:
977:
976:
974:
973:
968:
963:
958:
953:
948:
943:
938:
933:
928:
922:
920:
914:
913:
911:
910:
905:
900:
895:
890:
885:
880:
875:
869:
867:
863:
862:
860:
859:
854:
849:
847:Smart pointers
844:
838:
836:
830:
829:
827:
826:
821:
816:
811:
806:
801:
796:
794:new and delete
791:
786:
781:
771:
766:
761:
755:
753:
749:
748:
746:
745:
740:
735:
730:
725:
720:
715:
710:
705:
700:
695:
689:
686:
685:
680:
678:
677:
670:
663:
655:
649:
648:
642:
636:
630:
625:
614:
613:External links
611:
608:
607:
589:
560:
539:
536:on 2008-10-25.
517:
514:on 2009-01-01.
495:
477:
466:on 21 May 2013
451:
440:
425:
424:
422:
419:
399:
398:
365:
363:
356:
350:
347:
346:
345:
340:
338:Altium Limited
334:
320:
307:
304:
294:
293:
286:
279:
271:
270:
263:
256:
232:
231:
224:
217:
204:
203:
196:
189:
181:
180:
173:
166:
158:
157:
150:
143:
131:
130:
123:
116:
108:
107:
100:
93:
85:
84:
81:
80:ISO/ANSI C C++
78:
68:
65:
13:
10:
9:
6:
4:
3:
2:
1666:
1655:
1652:
1650:
1647:
1645:
1642:
1640:
1637:
1636:
1634:
1619:
1616:
1614:
1611:
1609:
1606:
1605:
1602:
1596:
1593:
1591:
1588:
1586:
1585:Embedded Java
1583:
1581:
1578:
1576:
1573:
1571:
1568:
1566:
1563:
1561:
1558:
1557:
1555:
1553:
1549:
1541:
1538:
1537:
1536:
1533:
1531:
1528:
1526:
1523:
1521:
1518:
1516:
1513:
1512:
1510:
1508:
1504:
1498:
1497:Yocto Project
1495:
1493:
1490:
1488:
1485:
1483:
1480:
1478:
1475:
1473:
1470:
1468:
1465:
1463:
1460:
1459:
1457:
1455:
1451:
1445:
1442:
1440:
1437:
1435:
1432:
1430:
1427:
1425:
1422:
1421:
1419:
1417:
1413:
1407:
1404:
1402:
1399:
1398:
1396:
1394:
1390:
1384:
1381:
1379:
1376:
1374:
1371:
1369:
1366:
1364:
1361:
1359:
1356:
1354:
1351:
1349:
1346:
1344:
1341:
1339:
1336:
1332:
1329:
1327:
1324:
1323:
1322:
1319:
1318:
1316:
1313:
1309:
1303:
1300:
1296:
1293:
1292:
1291:
1288:
1286:
1283:
1281:
1278:
1276:
1273:
1271:
1268:
1266:
1263:
1261:
1258:
1256:
1253:
1251:
1248:
1246:
1243:
1241:
1238:
1236:
1233:
1231:
1228:
1226:
1223:
1222:
1220:
1218:General terms
1216:
1212:
1205:
1200:
1198:
1193:
1191:
1186:
1185:
1182:
1172:
1171:
1160:
1154:
1151:
1150:
1148:
1146:
1142:
1136:
1133:
1131:
1128:
1126:
1123:
1121:
1118:
1117:
1115:
1109:
1103:
1100:
1099:
1097:
1093:
1087:
1084:
1082:
1079:
1077:
1074:
1072:
1069:
1067:
1064:
1062:
1061:Objective-C++
1059:
1058:
1056:
1052:
1046:
1043:
1041:
1038:
1036:
1033:
1031:
1030:Visual Studio
1027:
1025:
1022:
1020:
1017:
1015:
1012:
1010:
1007:
1005:
1002:
1000:
997:
995:
992:
990:
987:
986:
984:
982:
978:
972:
969:
967:
964:
962:
959:
957:
954:
952:
949:
947:
944:
942:
939:
937:
934:
932:
929:
927:
924:
923:
921:
919:
915:
909:
906:
904:
901:
899:
898:Rule of three
896:
894:
891:
889:
886:
884:
881:
879:
876:
874:
871:
870:
868:
864:
858:
855:
853:
850:
848:
845:
843:
840:
839:
837:
835:
831:
825:
822:
820:
817:
815:
812:
810:
807:
805:
802:
800:
797:
795:
792:
790:
787:
785:
782:
779:
775:
772:
770:
767:
765:
762:
760:
757:
756:
754:
750:
744:
741:
739:
736:
734:
731:
729:
726:
724:
721:
719:
716:
714:
711:
709:
706:
704:
701:
699:
696:
694:
691:
690:
687:
683:
676:
671:
669:
664:
662:
657:
656:
653:
646:
643:
640:
637:
634:
631:
629:
626:
622:
617:
616:
612:
603:
599:
593:
590:
579:on 2019-04-19
578:
574:
570:
564:
561:
556:
554:
549:
543:
540:
535:
531:
527:
521:
518:
513:
509:
505:
499:
496:
491:
487:
481:
478:
465:
461:
455:
452:
449:
444:
441:
436:
430:
427:
420:
418:
415:
411:
406:
395:
385:
381:
375:
374:
369:
364:
355:
354:
348:
344:
341:
339:
335:
332:
328:
324:
321:
319:
316:
315:
314:
311:
305:
303:
301:
287:
280:
277:
272:
264:
257:
233:
225:
218:
210:
205:
197:
190:
187:
182:
174:
167:
164:
159:
151:
144:
141:
132:
124:
117:
114:
109:
101:
94:
91:
86:
83:Embedded C++
75:
72:
66:
64:
62:
58:
54:
50:
46:
42:
38:
34:
30:
26:
22:
18:
1580:Embedded C++
1579:
1482:OpenEmbedded
1393:Boot loaders
1314:and controls
1295:Raspberry Pi
1168:
1102:Embedded C++
1101:
1004:Code::Blocks
971:Watcom C/C++
601:
592:
581:. Retrieved
577:the original
572:
563:
551:
542:
534:the original
529:
520:
512:the original
507:
498:
489:
480:
468:. Retrieved
464:the original
454:
443:
429:
402:
389:
370:
312:
309:
297:
244:dynamic_cast
70:
20:
17:Embedded C++
16:
15:
1595:MicroPython
1535:Windows IoT
1343:Crippleware
1260:Embedded OS
1111:Relative to
931:Borland C++
842:I/O Streams
318:IAR Systems
306:Compilation
300:IAR Systems
240:static_cast
236:Style casts
1633:Categories
1575:Embedded C
1235:Bootloader
1045:Qt Creator
1028:Microsoft
966:Visual C++
941:C++Builder
873:As-if rule
809:References
583:2015-03-04
573:Amit Singh
470:9 December
421:References
410:Apple Inc.
373:neutrality
331:Metrowerks
252:const_cast
163:Namespaces
1472:Buildroot
1076:C++/WinRT
918:Compilers
814:Templates
804:Operators
743:Libraries
384:talk page
349:Criticism
186:Templates
1429:dietlibc
1321:Firmware
1312:Firmware
1170:Category
1145:Designer
1095:Dialects
1040:KDevelop
1035:NetBeans
1009:CodeLite
764:Concepts
752:Features
392:May 2018
333:in 1999)
327:Motorola
61:compiler
1590:MISRA C
1477:BusyBox
1467:BitBake
1406:Barebox
1066:C++/CLI
1019:Eclipse
1014:Dev-C++
857:Strings
759:Classes
698:Outline
414:I/O Kit
382:on the
136:mutable
77:Feature
53:Toshiba
49:Fujitsu
45:Hitachi
27:of the
25:dialect
23:) is a
1540:Win CE
1492:Toybox
1424:uClibc
1401:U-Boot
1071:C++/CX
994:Anjuta
555:'s FAQ
250:, and
213:typeid
51:, and
1024:Geany
999:CLion
946:Clang
866:Ideas
738:C++26
733:C++23
728:C++20
723:C++17
718:C++14
713:C++11
708:C++03
703:C++98
1570:CAPL
1444:musl
1439:lwIP
1378:UEFI
1270:FPGA
1225:ASIC
1086:SYCL
981:IDEs
472:2012
138:, a
21:EC++
1560:Ada
1302:SoC
1275:IoT
951:GCC
852:STL
693:C++
682:C++
41:NEC
29:C++
1635::
1081:Ch
600:.
571:.
550:.
528:.
506:.
488:.
246:,
242:,
47:,
43:,
1203:e
1196:t
1189:v
780:)
776:(
674:e
667:t
660:v
604:.
586:.
557:.
492:.
474:.
437:.
394:)
390:(
386:.
376:.
254:)
238:(
215:)
211:(
19:(
Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.