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.
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).