4.3.3 Upgrade Form
Test Comeau C/C++ Online!!
Minor patch information
About Comeau C/C++
General C/C++ Issues
FORMS or HTML or ASCII
Committee "Issues Lists"
Standard C++ Press release
How to obtain Standard C++
Thoughts from Greg Comeau
LINKS to C++ sites
Please email us with any questions. FYI, here's some common problems that folks are running into with their test code:
/* the end */
- Names from the base classes of your templates are unavailable.
For some technical details why this is often the case, see http://www.comeaucomputing.com/techtalk/templates/#whymembernotfound.
- When using export remember:
- It is only supported in 4.3.0 and above
- Your template may need to end in a semicolon.
- This online compiler does not do linking, and so the exported templates are "nowhere".
- Standard C++'s export has nothing to do with dllexport supported by MS-Windows compilers.
- If you are using STLfilt, then take note that it shortens error messages for code that uses the "STL part" of the C++ Standard Library. In the act of doing that, it purposely avoids things like default arguments to templates. If they are important for you to see, then turn STLfilt'ing off.
- Standard C++ and Standard C each say that main returns a type of int, so declaring main to return nothing or void is going to generate an error message in strict mode.
For some technical details on this, see http://www.comeaucomputing.com/techtalk/#voidmain.
- There is no header file such as <iostream.h> in Standard C++, it's <iostream>. And so on for many headers.
For some technical details on this, see http://www.comeaucomputing.com/techtalk/#cname.
- There are no names in Standard C++ just called cout, cin, endl, string, vector, ostream, etc. Instead, they are respectively: std::cout, std::cin, std::endl, std::string, std::vector, std::ostream.
Therefore, you either need to fully spell out the names as in the second form, use a using std::cout; declaration, or use a using namespace std; directive.
And of course, their correct header needs to be #included.
For some technical details on this, see http://www.comeaucomputing.com/techtalk/#whystd.
- Notice when you've made a spelling error (keywords such as namespace, or some of your identifiers, are sometimes mistyped).
- C++ requires function prototypes to be in scope before a respective function can be called.
- C++ and C are unlike the free form statements of say BASIC, therefore if statements, etc., must be placed into a function in order to be valid C++ or valid C.
- Headers such as windows.h or conio.h, which are not Standard C++ or Standard C, are not currently supported through the online compiler.
- By default, template instantiation is postponed to link time, but as mentioned above, this online version of Comeau C++ does not link. Therefore, you may want to use the -tused option to force some instantiations, hence it is the default.
- Some of you are apparently testing features of classes or templates without quite knowing exactly what those features do and/or are for. We suggest that you pursue some quality C++ texts, we at Comeau have created a reading list.