alecont alecont

Niner since 2007



  • GoingNative 21: Visual C++ Front-End Compiler

    @Richard_Andrew_x64:Ah! that's my fault! Thx for the feedback, Richard! I'll avoid doing that in the next interviews.

    What topic will interest you in the future?

  • David LeBlanc: Inside SafeInt

    Hi sokhaty,

    A book I really like on C++ templates is: C++ Templates: The Complete Guide (Hardcover), by David Vandevoorde, Nicolai M. Josuttis

    Also, the classic Effective STL, by Scott Meyers is another great book.

    David also suggests: STL Tutorial and Reference Guide, by David R. Musser, Gillmer J. Derge, Atul Saini.

    HTH, and glad you liked the video! Smiley

    Ale Contenti
    VC++ Dev Lead.

  • Kate Gregory, Ale Contenti and Steve Teixeira: VC++ 2008 and Beyond

    Hi CPrest,

    You don't always need a garbage collector to get a simple memory resource management Tongue Out

    For example, if you extensively use smart pointers like tr1::shared_ptr, you can safely manage memory with familiar C++ concepts (like for example determistic destruction).

    With tr1::shared_ptr, you call new() once and you don't need to worry about calling delete to release the memory. The smart pointer will take care of releasing the memory when the reference count goes to 0.

    tr1::shared_ptr is part of the TR1 addition to the Standard C++ Libraries. TR1 will be released on top of VC++ 2008 very soon. Check out vcblog for more info on this!

    HTH, ale.
  • Ale Contenti and Louis Lafreniere: ​Understandi​ng Exceptions and When/How to Handle Them

    Are you referring to the MFC talk for TechEd? We'll do something special just for Channel9!!Wink
  • Ale Contenti and Louis Lafreniere: ​Understandi​ng Exceptions and When/How to Handle Them


    about the last question on CreateThread vs. _beginthread, the C++ runtime DLL will take care of creating the PTD (per-thread-data) slot and associating it with the thread. Check the code in DLL_THREAD_ATTACH in the CRT DllMain.

    Like Louis says, it is better to use _beginthread, but CreateThread will work anyway.

    Also, during the video I mentioned Herb's book "C++ Coding Standards: 101 Rules, Guidelines, and Best Practices" (link here

    And how do you get your Watson dumps? It's pretty easy (special thx to Jason Hardester for the info):

    Go to and:

    1. Establish a company account on Winqual
    2. Sign (online click through) the WER TOU agreement
    3. Map your files using APPMAP.exe

    Ale (see you in Barcelona Smiley)

  • Ale Contenti: VC++ Safe Libraries and More

    Hi lantree,

    I agree with you. I really think C++ in general (and STL as an example of a powerful C++ library) has a lot to offer in environment like the one you work on. You just mention one great example when talking about custom allocators for memory management.

    Few other languages let you control memory in such a fine, elegant and expansible way. Reading your post, I remembered one talk from Alexandrescu (Chromed Metal: C++ Idioms that Are Safe and Fast, I guess this paper covers some of it and one from Scott Meyers (When C++ Hits the Hardware, which describe interesting solutions.

    As we say in the video, C++ is powerful and somewhat dangerous, in the sense that it lets you do a lot of things (and some bad things as well, if you're not careful Wink). With checked iterators, we tried to make the iterators less dangerous, without sacrifying performance.

    I'd like to hear from you more specific scenarios where we could do a better job in harnessing the power of C++. Do you need some pre-packaged allocator to simplify memory management? Do you need tools to measure code bloat? Please let us know!

    One question: What do you mean with code complexety? You mean code complexity in the STL itself, or using it?

    Unfortunately, we can't control the STL implementations of other vendors. Anyway, please note that we get our STL implementation from dinkumware (, and they support more platform than VC++ does, I believe. Also, let us know which platform you need support on... you never know... (maybe we have a compiler in the box you can use... Smiley)

    And have you tried using VC++ IDE to drive your compilers?

    Thx for your comments!

    Ale Contenti
    VC++ Libraries Dev Lead