« 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/expsascxxFrom the ReadMe:
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 »

Logged
“Een rezhim-i eshghalgar-i Quds bayad az sahneh-i ruzgar mahv shaved.” - Imam Ayatollah Sayyed Ruhollah Khomeini