Re: Default args and virtual functions
* Seungbeom Kim:
red floyd wrote:
smawsk wrote:
[redacted]
int _tmain(int argc, _TCHAR* argv[])
Don't do this. This is an MS abomination.
Your entry point is main. NOT _tmain.
main has exactly two falid forms:
int main()
int main(int argc, char *argv[]) // or char **argv
NOT _TCHAR* argv[].
Yes, but that's after macro expansion.
With the following definitions,
#define _tmain main
#define _TCHAR char
(or typedef char _TCHAR;)
Environment specificity is a clc++m rejection reason.
_TCHAR can never be defined by the ordinary programmer with well-defined result,
because it starts with underscore followed by uppercase letter.
So the definition is necessarily an environment-specific one, supplied by the
compiler vendor.
the following declaration of main is entirely valid:
int _tmain(int argc, _TCHAR* argv[]);
and I believe they're doing it for a reason.
Depends who "they" are.
Microsoft architects once did this for a reason, namely to support compiling the
same source code for 32-bit and 16-bit Windows. As of 2008 there's not much
need for the latter. And when writing exclusively for the 32-bit API there's no
need to use special language extensions for the startup function, because the
code can be tailored to the 32-bit API.
Ordinary programmers, as well as MS tech writers and whoever it is who's making
code generators for Visual Studio, just do it by the monkey see monkey do
principle. Having no real understanding of what they do, they copy snippets of
old code and modify them. We should not encourage that.
Of course, it's a different matter whether such a form is encouraged
in c.l.c++.m, and I would advise posters to convert such environment-
specific forms into standard forms if they're not relevant to the topic,
but I wouldn't go as far as to tell posters not even to use them in
their projects; they may even be required.
That argument is complete nonsense.
I'm having problems with the following piece of C++ code:
using ConsoleIO
MAIN
begin
writeLn( "This is valid C++ code." )
end
I have done everything by the book, including configuration of the build
environment (I must confess I didn't really understand that bit the
documentation mentioned about "redirection" and "pipes", but hey).
What on Earth am I doing wrong?
Cheers,
- Alf
--
A: Because it messes up the order in which people normally read text.
Q: Why is it such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]