The current scope of the advanced C++ exam. What do you think?
-
Taamalus: I suggest you try it! You will be surprised how easy it is to use the Qt classes. Also, in many cases, you can entirely omit boost in a project, because Qt has so many of its functionality. Doubling it, one could argue, but that's another topic.
I'm in no way a boost expert, I only hardly know it. Parts of boost will eventually become part of the next C++ standard, and we will use it. But it's not clear when the standard comes out, and even less clear when all major compilers will support it.
So yes, almost every C++ programmer knows of boost, but that does not mean that they use it. If you already have Qt in your project, for various reasons, which provides much if not all of the (needed) functionality of boost, why should I bother complicating the project with another library?
Regarding containers: Yes, they are modeled after STL; including iterators. But there are also Java style iterators because some programmers prefer that.
And keep in mind: STL is given to you by the compiler, not the IDE like Qt Creator which only happens to include MinGW in Windows. In any case, you have to add boost as an external library to your project, just as you do with Qt. The sample is there to show you how to integrate Qt and boost in the very same project, if you need to.
Please don't get me wrong: I'm not advocating against boost. I'm just not convinced it is necessary if you have Qt in your project anyways (leaving out external dependencies one cannot change, of course).
To become on topic again, finally, the title of the exam is "Qualified in C++ with Qt" - for me it's obvious that this exam does and should only cover the C++ standard and the Qt libs, not any external library.
-
[quote author="Volker" date="1288951879"]Taamalus: I suggest you try it! You will be surprised how easy it is to use the Qt classes. Also, in many cases, you can entirely omit boost in a project, because Qt has so many of its functionality. Doubling it, one could argue, but that's another topic.[/quote]
:D
As a side note, I've got an existing model editor program (for games), written entirely with the QT SDK. It needs to be enhanced a little. I'll do more than try QT. - Also, as you know, opinions are dime a dozen, everyone has one, I could not resist voicing mine. I was heard, what more could I ask? Thanks, to you and everyone else. :)Once, more happy coding! :)
-
[quote author="Taamalus" date="1288919489"]
I think STL is standard C++, and comes with QT Creator, or at least with my MinGW. I understand QT developers promoting QT and to omit Boost in exams, but I believe the exam under Miscellaneous Topic calls for templates and QTContainers, that looks very close to STL. ;)[/quote]
In that case anything that uses templates looks like STL. Nice one. STL should not considered C++ basics because of the simple fact that you can completely do without STL. That would of course mean you would have to implement a lot yourself. -
@@[quote author="Franzk" date="1289058858"] [quote author="Taamalus" date="1288919489"] I think STL is standard C++, and comes with QT Creator, or at least with my MinGW. I understand QT developers promoting QT and to omit Boost in exams, but I believe the exam under Miscellaneous Topic calls for templates and QTContainers, that looks very close to STL. ;)[/quote] In that case anything that uses templates looks like STL. Nice one. STL should not considered C++ basics because of the simple fact that you can completely do without STL. That would of course mean you would have to implement a lot yourself.[/quote]
Not sure, if to respond or not, but since it's a direct quote, my closing arguments ... ;)The QT reference library I have has a Qvector.h
I quote QT's own sample:QVector<int> integerVector;
QVector<QString> stringVector;I stand behind what I wrote, "it looks very close to STL", in case <vector>
Btw. What is considered valid components in C++ is determined by the
http://www.open-std.org/jtc1/sc22/wg21/docs/standards -
My opinion is, boost shouldn't be included to Qt exams. If you needed boost specialist you should ask him for boost certification. Qt is not a part of boost library, and boost isn't part of Qt. Yes, it implemets some methods, that arleardy implemented in boost. But it is another technology.
BTW, we can think of adding following points too…
QFlag{s}, standart templates, such as singleton. -
BTW, I wrote wiki page about using QFlags. But, I've created it not in learning category. Plase move it.
"QFlags":http://developer.qt.nokia.com/wiki/QFlags_tutorial -
IrQX: I put your page into the "snippets" category. Feel free to change that if you like (the Category is just a tag in the page which can be edited like the rest of the text).
-
I think the scope of the exam is fine as it is. STL (from my point of view) is an extension to C++ and can be used as it is standard, but it's not an integral part of C++. Same to Boost, it is good, I also use it, but it's not part of raw C++. And even not of Qt. So for this exam, both should not be considered.
-
[quote author="Tobias Hunger" date="1290588895"]IrQX: I put your page into the "snippets" category. Feel free to change that if you like (the Category is just a tag in the page which can be edited like the rest of the text).[/quote]
Thanks. I've lost a lot of time searched how to move topic.
-
The keyword volatile should be known and the new operator overloading --
this should be interesting to those who think C++ cannot be used in embedded programming. As I learned when programming a game with min-max-trees: calling new does not automatically mean "digging the heap".And - how could I forget about this! - exception handling should be included.
-
[quote author="Denis Kormalev" date="1290689759"] Wolf P., operator new overloading is a really specific thing and I'm not
sure it should be included.
Exceptions are not a common practice in current Qt library design, so no
sure they should be in this exam (exam is about Qt all in all, not about
generic C++)[/quote]Exception handling is an integral part of the C++ standard for decades,
although often misunderstood or misused.
Imagine you are about to use existing excellent C++ sources in your Qt
project that make use of exceptions, should you avoid it? In this it
will be better to know how to catch them the right way and transform them. -
Wolf P., as for me it is somewhere close to boost. Of course good developer should know how to work with both of them, but not sure it is good part of Qt exam.
-
[quote author="Gerolf Reinwardt" date="1290695575"]And I'm not pretty sure, if overloading new is really relevant for most Qt projects...[/quote]
It's questionable if it is relevant to most C++ projects at all :-) Knowing that something is possible, does not necessarily mean that a relevant bunch of programmers do need it regularly.
-
Last one is something that I can't imagine how to put it into exam format.
-
[quote author="IrQX" date="1290934467"][...] Last one is redundant.[/quote] redundant? In what sense?
I would say you can check it with multiple choice tests. Unexperienced developers tend to look only on their class instead of checking its usability. For instance, in the development of an API they often prefer to add additional parameters to existing methods instead of adding new methods.
I think good API design can be tested in an exam.