This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Compiler/TM4C1294KCPDT: What happened to EC++ (Embedded C++) support in the compiler?

Part Number: TM4C1294KCPDT

Tool/software: TI C/C++ Compiler

Hello all. I usually avoid C++ in embedded designs, but I am now considering broadening my scope to include EC++. This is especially relevant for me since Apple uses EC++ for their macOS and iOS drivers.

Unfortunately, when I try to enable EC++ for my TM4C1294KCPDT project, CCS tells me that this feature is no longer supported.

What is the history of this support and the decision to drop it?

  • Are you sure? As far as I know, Apple has used objectiveC as the main language of MacOS since it was the main language of NEXT.
  • About a year ago, we started an effort to remove compiler options that, for one reason or another, are seldom used.  The details are in the wiki article Compiler option cleanup.  The general idea is, by removing these options, documentation becomes clearer, finding the useful options is easier, the test burden is reduced, support improves, etc.

    The option for embedded C++ is among the options removed.  You are the first person to complain.  While I'm sure you don't intend it, this shows that this option is seldom used.  While it is unfortunately inconvenient for you, in the larger view, it is probably wise to remove this option.

    Thanks and regards,

    -George

  • Keith, ObjC is certainly used for the user interface and probably all applications these days, both macOS and iOS. However, the drivers and kernel extensions are written in C or EC++ because of the real-time requirements.
  • Embedded C++ is practically speaking just a subset of C++ that avoids the "expensive" parts of C++. Our approach to handling EC++ was to just feed the code to the C++ parser. You can go ahead and write EC++ code, and the TI compiler should be able to handle it in C++ mode. Now, there are some incompatibilities between C++ and EC++, mostly in the library. However, the TI compiler never really supported the EC++ library, so it can't be said to "truly" support EC++, so we just dropped the option.
  • Thanks for the history. I am just learning EC++, so I was hoping to be lazy and let the compiler tell me when I've ventured outside the EC++ subset. I guess I'll look for other tools that can scan my source code.