Herb's last appearance on C9 was a relatively short chat about C++0x. You wanted more questions so Herb decided that the best way to get the questions you want asked is, well, to have you ask them. Most of the highest user-rated questions were asked and Herb answers with his usual precision. So, without further ado, it's C++ question and answer time with the great Herb Sutter, powered by you.
[Watch the entire interview in Channel 9]
I actually do have gripes about the C++ Standard Libary (emplace and tuple), but the root cause of those gripes is the lack of variadic template support in the compiler, but apparently mum is the only word on variadic template support.
emplace: Fixed! See connect.microsoft.com/.../vc10-stl-emplace-functions-are-not-implemented-for-more-than-1-parameter
tuple: What specifically? We're cleaning up tuple in VC11.
Thanks Stephan. Good to know emplace will be standard conformant for a reasonable number of arguments.
Regarding tuple, it currently gives me VC5/6 flashbacks with in regard to the difficulty of diagnosing compiler errors (the class with node in the name in particular I recall) and in debug builds a tuple with only 3 elements is farilyi tedious to debug into (in release it seems to compile away pretty well).
@Stephan T. Lavavej - just because no one said anything, it doesn't mean that no one has any issues. As I understood this thread was mainly about issues with two way communication between users and Microsoft Team not about filing bugs. But hey, no problem, you asked so here you go:
EVERY (except auto perhaps) new C++11 feature implemented in VS2010 is buggy in tens of ways.
On buggy static_assert I've got reply that it WILL NOT GET FIXED!
So how does it look from a customer's point of view? Someone paid considerable sum of money and in return got product which:
1. Performs horrible compared to previous version, (I'm not sure if you're aware of it but VS 2010 is nowadays known as Very Slow 2010)
2. EVERY! new implemented C++11 feature is buggy. Except auto - hopefully.
3. Number of features implemented in Very Slow 2010 compared to GCC looks like... <your comparison here>, and just let me remind you that I can get GCC for FREE, which is not the case with VS compiler.
So what does it say about quality of this product?
What was the point of buying it?
Now in order to have this or that feature work as intended (except static_assert which WILL NOT GET FIXED! as I've been told) will I have to buy new version of this product? What any other business works according to such model?
@Stephan T.L could you please tell us how much of C++11 will get implemented in VS.next? I'm not even asking about which features/parts but simply what percentage of C++11 will be covered. Surely at this point in time (what is it? a year before new release and as I see on one of your websites "coding season started") you must have at least general idea on what are you guys going to code?
So could you please?
1. Say which parts of C++11 will be covered and if you cannot do it because this and that,
2. Say when this information will be publicly available (year and month will suffice).
@Knowing me knowing you:
"As I understood this thread was mainly about issues with two way communication between users"
Funny, I thought this thread was about Herb Sutters Q&A video. ;)
@STL: I've got an issue with your STL implementation. I want more of it! ;)
In particular, I really really want the <threading> header.
@jalf indeed this thread was supposed to be H.S Q&A but evolved into 2 way communication issues with VS Team.
Out of the interest, I digged out the issue 'Knowing me knowing you, a-ha' is talking about.
You can see it here:
The exchange is, indeed, frustrating. The first guy from Microsoft to see the report is amazed that the bug reported by 'Knowing me' got through the testing:
"Thanks for reporting this bug. This indeed is a pretty bad bug, I'm surprised we missed this, we apologize. We're fixing it."
He finds a workaround and posts it so that 'Knowing me' can go forward while the bug is getting fixed:
"<workaround snipped>... It's just a workaround till we get our acts together. Thanks a lot for the bug, appreciate it."
Then there appears a second guy from Microsoft. He sees the workaround and immediately makes a tough decision:
"Unfortunately, the fix is a breaking change and will break legacy code. Because there is an easy workaround, we decide not to fix it in this release."
Nice, eh? Don't put workarounds in sight of the second guy. If he sees one, he will close the problem. The first guy didn't knew that so now we will have this bug forever or until the proposed workaround meets a workaround for a different problem and they start fighting, erasing the hard drive in the process.
In other words, sigh.
I will say one good thing though: Stephan, I am very glad you have been monitoring the thread and have asked for feedback with an actual intent to reply. I wish Microsoft had more people like yourself.
Josh.Heitzman.Mindspark: We (that is, Dinkumware and myself) are currently focused on catching up to the C++0x Final Draft International Standard (FDIS), and our highest priorities are correctness and performance. We'll sacrifice nearly anything else if it helps us achieve those goals, and sometimes that means ending up with very complicated, nearly unreadable machinery to work around compiler limitations.
Knowing me knowing you, a-ha> @Stephan T.L could you please tell us how much of C++11 will get implemented in VS.next? I'm not even asking about which features/parts but simply what percentage of C++11 will be covered.
I'd like to, but I'm not permitted to. I'm already pushing the limits of what I can get away with.
jalf: See connect.microsoft.com/.../std-thread
@STL: Well, until I can actually *use* it, it's still on my wishlist. ;)
@Stephan ok, in that case could you please tell all of us the date (year/month) in which this information will be publicly available? Surely this cannot be top secret?
@Stephan T.Lavavej and Stephan, please don't give me this "believe me I'm on your side" impression. I'm just to old for that. You are in MS team and you play for them, not for us. As simple as that. As far as I'm concerned you'll say NOTHING which you are not allowed to and you DO NOT PUSH anything. Before you say anything this is discussed internally and accepted prior to your publication here. So just don't.
@Knowing me: so now you're asking questions (making demands, really) while *also* saying he shouldn't really bother replying?
You know, @PleaseFixYourBugs raised some relevant and important issues. But he did it without the toxic attitude. Any chance you could step outside for a minute, and take a few deep breaths?
Bringing the VC team's attention to long-standing bugs is constructive and a lot of us appreciate that. Saying "you're not on my side and I don't trust anything you say and you shouldn't say anything" is a waste of everyone's time.
@jalf and where did I say that he shouldn't say anything?
As for my attitude? Not toxic at all, just realistic.
As far as I'm concerned I've been as polite as necessary in my every post so where do you see a problem?
But I do want answers and want them to be honest and direct. That's why my questions are direct. But they aren't rude. Mind that.
And will you stop with this "wasting of everyone's time" business?
> could you please tell all of us the date (year/month) in which this information will be publicly available?
I asked, and unfortunately, I cannot.