Unsolved Creator: Completion no longer adds closing semicolon
-
@JonB said in Creator: Completion no longer adds closing semicolon:
OK, this is why I like C & C# but not C++ ! I'll stop trying to think of where C++
struct
might differ fromclass
, since you're pretty clear & adamant that they don't :) Thanks.C++ makes perfect sense, if you know it's history. Off the top of my head, I would say that struct came from pure C. When they designed C++, they needed a new construct for 'class', but decided to model it as closely as possible to an already existing construct, 'struct'. They decided that making everything public by default was too dangerous for 'class', but for compatibility reasons, they could not change that behavior for 'struct'.
Today, you can use 'struct' and 'class' to convey different intentions. See http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines#Rc-struct
-
@Asperamanca I think struct is still part of C++ because C should be a subset of C++ (more or less)
-
@jsulm said in Creator: Completion no longer adds closing semicolon:
@Asperamanca I think struct is still part of C++ because C should be a subset of C++ (more or less)
I had no intention of saying "struct is not part of C++", because of course it is.
-
@Asperamanca You misunderstood me: I think struct could be removed from C++ as it is redundant (class is same thing), but then C wouldn't be subset of C++ anymore.
-
@jsulm
Compatibility to legacy code is one of the strengths of C++. I for one would not want to go digging in old but reliably working code, just because a new version of the language stopped supporting certain constructs.When MS did that moving from VB6 to VB.NET, we dropped VB and since use C++ instead.
-
@Asperamanca I didn't suggest to do it, just mentioned why (probably) C++ still has struct even if it has class.
-
@jsulm
C# hasstruct
as well asclass
, even though it has no pretence of backward C compatibility!And since we can't get C compilers any more, only C++ ones, thank goodness we can still get old-fashioned C code through them, without C++ bloatware ;-)
-
@JonB said in Creator: Completion no longer adds closing semicolon:
thank goodness we can still get old-fashioned C code through them,
... what? You make it sound like C compilers from clang, GCC etc. were now a byproduct of C++, kept only for compatibility. That's simply not the case. There's a ton of living C code out there which requires proper C compilers (C standard and C++ standard are not compatible) to compile and run. Linux kernel, to mention one example.
We're slowly drifting more and more off-topic in this conversation :-) Still, it's interesting.
I always thought that the semicolon after class is a dumb leftover, but it has been rightly pointed out that the old syntax is still supported, and that means the semicolon has to be there (otherwise the code would be ambiguous), it can't be removed. I'm happy to have read your arguments, guys, they made me think about it more :)
-
https://en.wikipedia.org/wiki/GNU_Compiler_Collection:
In August 2012, the GCC steering committee announced that GCC now uses C++ as its implementation language.[30] This means that to build GCC from sources, a C++ compiler is required that understands ISO/IEC C++03 standard.
You need a C++ compiler just to produce a C compiler now! It's so sad... :(
-
For reference, the report is here: https://bugreports.qt.io/browse/QTCREATORBUG-19726
-
@JonB Apparently even GCC developers do not want to use C
:-)
Next, Linux kernel developers will switch to C++ and use templates! :-) -
@jsulm
Naah as Linus would rather commit harakiri than use c++. -
Linus subsurface fork says the contrary ;-)
-
@SGaist
haha well after the mega rant towards c++ , he might have changed his mind later.