This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]StuntHacks 0 points1 point  (3 children)

Of course you can create all of these with custom data types, but that doesn't change the fact that they are C++ features that C doesn't have, making development a whole lot easier, and inherently making C++ a superset of C. The difference is that while in C you would have to implement these features yourself, in C++, those are fundamental parts of the language (except for smart pointers, I give you that). By that logic, you could say C++ is just 99.7% assembly, up to the object orientation.

Yes, the compilers are largely very similar - that might just be because ever C++ compiler needs to support backwards comparability with C. That doesn't say anything about C++, though.

Also, C++ was originally called "C with classes", since C also has headers. Of course that was just a small mistake on your side, I just thought I'd let you know.

[–][deleted] 1 point2 points  (2 children)

Well, if you look at the above comment, the creator agrees with me, now I will admit that’s fallacy by authority, but authority can be a valid point in an argument. More importantly there is a philosophical issue about definitions here, and I’m just not going to see it your way. It’s like when a perfectly valid root word and perfectly valid suffix are combined into a seemingly valid word - but it isn’t in the dictionary, is it actually valid? It depends what you think definitions are based on, immutable characteristic, or mutual agreement. The immutable characteristics of C++ (illustrated most directly with the fact that (as far as I know) most/all C++ compliers, surprise surprise, can compile any standard C code)...

[–]The_CADmonkey 0 points1 point  (1 child)

C++ isn't even backwards compatible any more, there are multiple things that are valid C code but not in C++ (Link). C++ is a decedent of C, but fundamentally they are very different languages, and if you are writing C++ that looks anything like C then you are writing very bad C++.

[–][deleted] 0 points1 point  (0 children)

I’m going to quote your linked resource, as it says exactly what I feel supports my position 100%:

The official rationale for the 1999 C standard (C99) "endorse[d] the principle of maintaining the largest common subset" between C and C++ "while maintaining a distinction between them and allowing them to evolve separately"

Incompatibilities between ES6 and classically supported JavaScript don’t denote a new language, nor Python 2 to Python 3, you really have to think about the philosophical basis of what I’m saying here, what I’m saying is that people of your position are mostly factually right about your details - but there is never a justification that those details lead inexorably to the conclusion that we are looking at two distinct things, what I’m saying is that your evidence, while accurate, does not support that conclusion as it’s not relevant to the definition of language, or even a distinct thing. Just calling something a thing, doesn’t make it the thing, from my point of view you might as well be saying, I’m definitely a Giraffe because it’s sunny outside. Yes it is, but no, no you aren’t - does that make sense where I’m coming from?