5 ms·
What do you use it for? It's such a complex language brimming with idiosyncrasies that I'd be inclined to really test anyone claiming to be a master. The stand
by erikbye 10y ago
What do you use it for?
It's such a complex language brimming with idiosyncrasies that I'd be inclined to really test anyone claiming to be a master. The standard is one thing, then there's the compiler you're using...
- deong 10y agoI claim on my CV to be an "expert" C++ programmer, but I'm quick to point out the curve that I imagine being graded on. At least in my head, there's an implied context around someone's C++ proficiency. An expert Java programmer should be able to answer most questions about Java. An expert C++ programmer should simply get to the "I have no idea" answers when the questions get interesting.
- pjmlp 10y agoI do Java, .NET and C++ consultancy and I bet an Java expert would fail most Java Puzzle questions. Also a programming language is not used alone and C++ standard library is quite tiny when compared to Java's standard library.
- deong 10y agoThat's true, but there's virtually no aspect of the C++ language or library that doesn't have a wealth of "gotcha" questions one could ask. Even parts of C++ that are "normal user" features can be remarkably tricky. I know tons of C++ programmers who I'd happily trust to write code for me who would fall flat on their faces if asked to explain some detail of what std::forward does with an rvalue reference parameter bound to an lvalue argument. There's a reason why a very common recommendation is to pick a subset of C++ and stick to it, and I've never heard of such a recommendation for any other language (outside of perhaps for portability reasons).
- criddell 10y ago> explain some detail of what std::forward does with an rvalue reference parameter bound to an lvalue argument std::move?
- pjmlp 10y ago> I know tons of C++ programmers who I'd happily trust to write code for me who would fall flat on their faces if asked to explain some detail of what std::forward does with an rvalue reference parameter bound to an lvalue argument. That is true. I can also remember other ones like differences between auto and decltype, or between auto and template parameter deduction across language revisions. However, Java puzzles like the ones presented at Java ONE, or .NET changes in how native error handling changed on .NET 4.0, among many other examples, are also interesting as quiz questions.
- joshuata 10y agoI was reminded of this yesterday: I work on a research-oriented C/C++ compiler with several people who would certainly be considered C++ "experts". We came across a bizarre bug introduced by static destructor ordering. Even with the lines of code highlighted and a detailed paragraph explaining the error, it took us almost 30 minutes to figure out how the undefined behavior was causing the bug we saw.