|
|
|
Josh @ Dreamland
|
|
Reply #3 Posted on: May 18, 2010, 05:35:40 pm |
|
|
Prince of all Goldfish
Location: Pittsburgh, PA, USA Joined: Feb 2008
Posts: 2950
|
GCC's had and whored most of those for a while now. It's not like template<> wasn't already ambiguous in some cases. Fortunately, I believe lambda is the only exception to this not being a problem. I believe they introduced a couple more syntax quirks that I was going to add to ENIGMA anyway... I imagine it will all blow over well. They've had typeof for a while. __typeof, it was. I just defined it as int for ENIGMA, because expression types don't really matter to my parser, as they are all just abstract names to it. I may need to fix that as they start pulling shit like typeof(something awful) :: some_member... Hopefully that never really happens, or by the time it does, a project I've had my eye on that can tell GCC to export XML reaches fruition. Or becomes unnecessary as GCC decides to implement an alternative, which is even less likely.
|
|
|
Logged
|
"That is the single most cryptic piece of code I have ever seen." -Master PobbleWobble "I disapprove of what you say, but I will defend to the death your right to say it." -Evelyn Beatrice Hall, Friends of Voltaire
|
|
|
|
|
|
|
|
|
Rusky
|
|
Reply #10 Posted on: May 18, 2010, 08:03:30 pm |
|
|
Joined: Feb 2008
Posts: 954
|
You don't need to understand all of C++ to use it, which is why it's usable. But the whole thing is far more complicated than most other languages. I'm not saying C++ is needlessly complicated, just that it's complicated. Compare the K&R book to Stroustrup's C++ book. The C++ one is several times longer. Look at C++ FAQ Lite- with that many non-trivial language questions, there's obviously some complication going on. References v pointers, virtual destructors, the comma operator (O_o), bla bla bla. Then look at some of the things the C++0x committee feels (or felt) are necessary- rvalue references, "uniform" initialization, new return type syntax, the delete keyword and concepts/axioms. It's complicated.
|
|
|
Logged
|
|
|
|
|
|
luiscubal
|
|
Reply #13 Posted on: May 19, 2010, 10:02:03 am |
|
|
Joined: Jun 2009
Posts: 452
|
Complication means that any "half-decent" C++ specification is several hundreds(thousands?) pages long. You don't know C++. You know a very small subset of C++. For instance, digraphs and trigraphs. Are those trivial? No. They may be simple, but they are an unusual detail of the language. Don't say they are useless and nobody uses them. That's kind of the point. C++ includes lots of useless things(which might have been useful some time in the past) nobody uses anymore. Compare C++ to Java. You may hate Java, you may hate garbage collection, but if you were to compare a complete C++ language spec with a complete Java language spec, you'd see Java spec is smaller.
Also, in defense of nullptr, the problem is:
void f(int x); void f(void* x);
... f(NULL); //Will call f(int) f(nullptr); //Will call f(void*)
|
|
« Last Edit: May 19, 2010, 10:05:02 am by luiscubal »
|
Logged
|
|
|
|
|
|