Welcome, Guest. Please login or register.

Author Topic: gcc and precompiled header  (Read 4065 times)

Description:

0 Members and 1 Guest are viewing this topic.

Offline nicholas

Re: gcc and precompiled header
« on: September 04, 2013, 07:46:57 PM »
You might want to try v7 of SAS/C as it has C++ support and is a lot faster at compiling stuff than GCC.  It's STL support is nonexistent though, just the pre-STL Standard C++ library.

http://aminet.net/package/biz/patch/expsascxx

From the ReadMe:
Quote
SAS/C++ limitations
-------------------
These are features which we do not support as specified by the C++
draft.


Glossary
--------
   POD -- 'plain old data', basically a type using only C features
   pseudo-destructor -- a destructor call that names a non-class type,
      like 'p->~int()'.  These are used for generic programming.



No identifier form ANSI digraphs (i.e. "and", "and_eq", etc.)

No universal character names

no 'bool' type

no "extern inline"

global/static initialization/destruction order differences
   local statics are destroyed at module cleaup, not synced with "atexit()"

temporary lifetime differences
   The draft specifies destruction at the end of a full expression.
   We destroy early for operands of "? :", "&&" or "||".

no "operator new[]" or "operator delete[]"

no placement delete declarations

'wchar_t' is not distinct from other integral types

destructor name handling differences

restricted pseudo-destructors

conditional expression handling differences

scope of variable declared in 'for' initialization
   The draft behavior must be enabled by the -!Aoldforscope option.
   The draft behavior is the default on the mainline.

no 'mutable' keyword

no 'explicit' keyword

no namespaces

no 'using' keyword

no 'asm' declaration

linkage limited to "C" and "C++"

no "{}" empty initializer

static member data variables may not be initialized in the class definition

virtual base construction, destruction, and copying differences?

no overriding of virtual function return type

miscellaneous overloading differences
   The overloading code of the translator was written before the draft
   specified this very well.  There are bound to be differences.  In
   fact, probably every different compiler will interpret some things
   differently sometimes.

enum types always promote to int, never to unsigned or other integral types

no operator overloading on enum types

templates
   no 'export' keyword or separate compilation
   no template template parameters
   no member templates
   no function member pointer template arguments
   no partial specialization of classes or functions
   no out of line definition of member classes
   no default template arguments
   no function template default arguments
   no checking of name dependency rules
   no 'export'ed templates
   no template class member friend declarations
   no deduction from derived class pointer

no exceptions

C++ library
   We have the "classic" C++ library.
   The draft version has lots of nice stuff, like the Standard Template
   Library and templatized basic types, which we don't have.

Obsolete C++ features and bugs
------------------------------
These are "features" of the translator which are disallowed by the draft.

'overload' keyword, not allowed by default

default base class constructor initialization

constant expression overflows should be diagnosed

skipping initializations using non-POD types with 'goto' should be diagnosed
   The translator does not diagnose cases like references.
« Last Edit: September 04, 2013, 07:49:41 PM by nicholas »
“Een rezhim-i eshghalgar-i Quds bayad az sahneh-i ruzgar mahv shaved.” - Imam Ayatollah Sayyed  Ruhollah Khomeini