Hi,

Quite a long time ago I have decided to use GCC as the only compiler
for my C++* applications (mostly heavy-duty high volume data stream
processing). There are many reasons, but the most important are
listed below:

1. A GCC port is available for every platform I am interested in;

2. It is impossible to maintain portability between compilers of
differerent vendors at the language feature level I am used to.
Otherwise I would either need to select the "lowest common
denominator" supported language subset or raise a heavy #ifdef
orgy in my code. None of them is an option.

3. GCC has a lot of extremely useful extensions and ingenious
integration with inline assembly. The compiler's abilities are
very weak if it comes to autovectorization, but it at least
seamlessly allows me to do things right manually -- a vital
feature.

4. I need as much C++0x features as possible. Even the experimental
support in GCC 4.x dramatically improved the quality of my code. It
is also the reason I use gcc-trunk as the development platform.

Having said that, I wonder what else can I win by sticking to
the GNU compiler as closely as possible. There is a lot of
officially documented extensions (computed gotos, attributes,
PMF conversions etc.) I am aware of (and I continuously monitor
the list), but the purpose of this mail is a kind request to
shed some light on the "grey zone". Could you please point me
the "under the hood" features you think may be interesting for
me? I mean (presumming that there are) the extended type info,
class layout description (e.g. in order to implement reflections
and GC), the __cxa* function ZOO, stable compiler-wide assumptions
in the places where the language standard is unclear or anything
like that. A reference to their documentation will be appreciated.

        Best regards,
        Piotr Wyderski

*) Or, I should say "G++0x"...

Reply via email to