The GCC version (4.4) that ships with IUS 10.2 (GCC 4.1 is also available) has some C++11 support in it. Using -std=gnu++0x option (-std=c++0x fails due to some ieee header files), the normal C++ compiles work fine, but the NCSC compile fails to even parse those constructs. We are passing -COMPILER g++ and -CFLAGS to ncsc (and -MANUAL), but it's not obvious what frontend is parsing these SystemC/C++ files and whether it contains any C++11 support or not. I did notice that ncsc is running the Edison C++ frontend (edgcpfe), but I don´t know if both it and g++ are being run or not.
Is it possible at all to use C++11 constructs in SystemC code with IUS 10.2? Some of the constructs available simplify coding quite a bit, and make for more readable/maintainable code.
Running some ncsc commands manually and playing with the options, I found that the options pass to g++/cc1plus properly, but it's the following pass of using edgcpfe that fails. edgcpfe accepts arguments to enable C++0x/C++11 constructs. Is there any way to get those arguments to that process that ncsc spawns?
I need to know the answer to this also. I'm dissapointed that it has been over a year since the original question was posted, and nobody from Cadence has answered it yet.
In reply to Mark J:
Guys, sorry that nobody answered on the forum. Please bear in mind that for deeply technical or urgent problems you should file a support case at http://support.cadence.com/ so that an appropriate specialist will take ownership of your case and see it through to completion. By contrast if you post on the public forum and there isn't a suitable C++ expert reading the forum that day, your post may get missed.
I'm not a C++ expert, but I do use -std=c++0x with Incisive's g++ to access a few of the newer features like maps, and it works for me.
One thing I would advise is to use a supported version of Incisive; version 10.2 is no longer supported and has been replaced by versions 12.2 and 13.1 (released this month).