Matt
C++ Enthusiasts
Loading User Information from Channel 9
Something went wrong getting user information from Channel 9
Loading User Information from MSDN
Something went wrong getting user information from MSDN
Loading Visual Studio Achievements
Something went wrong getting the Visual Studio Achievements
Stephan T. Lavavej - Core C++, 9 of n
6 days agoSo glad it's back!
Sysinternals Primer: TechEd 2013 Edition
Jun 09, 2013 at 2:37 PMI still miss good old FileMon
Yes, I know about Process Monitor, but it always takes that annoying extra moment to set it all up and exclude all the extraneous (to the case only needing FileMon) content.
Is there perhaps a way to have a feature in Process Monitor (a command line switch) to allow it to _immediately_ start-up in the FileMon-analogous mode straight away?
Hackers (Not) Halted (repeats on 6/6 at 2:45pm)
Jun 05, 2013 at 3:55 PMLOL @ "Who uses Java?" (some hands up) immediately followed by "Who hates Java?" (most everyone's hands up) ;D
C++ and Beyond 2012: Herb Sutter - You don't know [blank] and [blank]
Jan 02, 2013 at 7:36 AM@SteveRichter: Clang gives a more readable diagnostic message:
source.cpp:6:79: error: call to deleted constructor of 'std::unique_ptr<std::wstring>' void CallTester2( ) { std::unique_ptr<std::wstring> pString ; Tester2( pString ) ; } ^~~~~~~ note: function has been explicitly marked deleted here unique_ptr(const unique_ptr&) = delete;See: http://liveworkspace.org/code/1zPqd0$1
In other words, copy constructor is deleted -- in other words, unique_ptr is non-copyable.
BTW, regarding enums, you can always implement something like this: http://www.ishani.org/web/2012/fancy-c-enums/
YOW! 2012: Fred George - Programmer Anarchy
Dec 28, 2012 at 8:47 AMHi Charles!
Really liked the questions on DirectX/GameDev scenario, bridging the CS education <-> RealWorld practice gaps, and legacy software!
Thanks for all the great interviews!
Stephan T. Lavavej - Core C++, 7 of n
Dec 25, 2012 at 5:13 PMThank you for all your work, Stephen! Merry Christmas & Happy New Year!
Stephan T. Lavavej - Core C++, 4 of n
Aug 28, 2012 at 11:27 AM@STL: Thanks for the lecture! // Awesome as always
Regarding the NVI -- what are some good examples where we'd prefer "protected" access over "private" (and vice versa)?
I guess it boils down to choosing between protected-virtuals [23.3] and private-virtuals [23.4] in the C++ FAQ, but unfortunately there's no direct comparison in there:
http://www.parashift.com/c++-faq-lite/protected-virtuals.html
Another question -- is NVI the same as or different from the Template Method pattern?
This source calls TM pattern "more generic" (without specifying what's more generic about it):
http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/Non-Virtual_Interface
While this one seems to show TM as exactly the same thing:
http://www.parashift.com/c++-faq-lite/private-virtuals.html
Alexandrescu, Meyers, Sutter: On Static If, C++11 in 2012, Modern Libraries, and Metaprogramming
Aug 21, 2012 at 2:27 PMThanks for passing on the (admittedly long-winded) question, Charles!

In other words, this is how I view the role of extensions like "static_if" (instead of hand-crafted template specialization equivalent) or, say, "static_while" (instead of, say, hand-crafted recursive template instantiation equivalent) -- similarly to "constexpr", they allow to achieve what's already (at least theoretically / in some cases) possible, but do it in a natural fashion providing accessibility and ease of use to a wider base of developers.
And, of course, thanks for the insightful answers from all!
In particular, Andrei's sentiments are quite compatible to mine here -- for instance, the fact that more metaprogramming facilities go hand in hand with the greater use of (and the need for) the supporting infrastructure (or "a web of supporting facilities in the language and in the std. lib.," as in CTFE in the tangent function values compile-time tabulation example). That's also why I'm looking into this area with a renewed interest now, given C++11's progress -- in fact, constexpr, also mentioned in the discussion, is one of the new C++11 features I'm most happy about in this context and I'm already thinking of it as being a part of this very supporting infrastructure
In particular, CTFE (D) seems to be one of the requirements for the aforementioned example and constexpr (C++11) seems to provide just that: http://en.wikipedia.org/wiki/Compile_time_function_execution
// Incidentally, constexpr being another form of compile-time language is also a very good point, there are already some nice examples out there illustrating the code simplification (relative to C++03 TMP) it allows for: http://kaizer.se/wiki/log/post/C++_constexpr/ & http://kaizer.se/wiki/log/post/C++_constexpr_foldr/
Charles has already linked to the questions thread with the link to Agner's example so I won't spam here again, but can also add Compile-Time Language (CTL) available in High Level Assembly (HLA) as another illustration:
http://www.phatcode.net/res/260/files/html/HLACompileTimeLanguagea3.html#999072
// See also 8.3 Writing Compile-Time "Programs": http://www.phatcode.net/res/260/files/html/Macros2.html#1009074
I think the point on making the language available for everyone ("language should be comphrehensible and usable for 100% of its users") is also a great point which I fully agree with. In fact, that's an important motivating factor -- ideally TMP should *not* be a feature just for the "select few" and I think we agree that it's more a result of a historical coincidence in the case of TMP rather than an inherent difficulty of TMP itself. Hence, Herb's and Scott's points (as in the worries about repelled-not-attracted or run-screaming reactions ;]) are fully and well taken (it's also true TMP is indeed just one area of C++ and not in quite as widespread use as the others). At the same time, simplifying the syntax / removing the awkwardness are directly meant to address this exact point
Stephan T. Lavavej: Core C++, 2 of n
Jul 17, 2012 at 1:21 PM@STL: Thanks for the answer (and the great lectures)! Now I'm looking forward to see the next episode even more
Stephan T. Lavavej: Core C++, 2 of n
Jul 16, 2012 at 4:06 PM@NotFredSafe: Take a look a the following three-parter:
http://codesynthesis.com/~boris/blog/2012/06/19/efficient-argument-passing-cxx11-part1/
Incidentally, STL, would you agree with the above guidelines (summarized in part 3)?http://codesynthesis.com/~boris/blog/2012/06/26/efficient-argument-passing-cxx11-part2/
http://codesynthesis.com/~boris/blog/2012/07/03/efficient-argument-passing-cxx11-part3/
See more comments…