Visual C++ 2008 Feature Pack Beta

A couple of months ago, I blogged about our plans to invest in native librariesToday, we are taking the next step forward in that journey. 


I am pleased to announce the beta version of the Visual C++ 2008 Feature Pack is now available for downloadThis drop provides a major update to MFC as well as an implementation of the TR1 library. 


Using the new MFC library, developers will be able to create applications that feature the “look and feel” of Microsoft’s most popular products – including Office, Internet Explorer and Visual Studio.  With the TR1 library, developers gain access to a number of important features such as smart pointers, regular expression parsing and new container classes. 


For more information, check out the C++ team blog.



Comments (24)

  1. Microsoft is offering the beta version of its Visual C++ 2008 Feature Pack, enabling development of applications with the look and feel of popular Microsoft products, Microsoft’s S. "Soma" Somasegar said in his blog Tuesday. The Feature Pack extends Visual

  2. Jono says:

    Does giving native support for the Ribbon in MFC mean that it will be relatively easy for people to write .Net wrappers on top of that and before too long we could have free .Net libraries that _natively_ reproduce the ribbon?

    I’ve played with Telerik’s RibbonBar, but it’s just not the same.  It’s the best I’ve seen of the wannabes, but it’s not native.

    Is anyone already planning on / working on .Net wrappers for these new MFC capabilities?

  3. Sam Gentile says:

    I haven't found much in the last 5 days that is New and Notable but here is a few items of interest

  4. Does that mean C++ snippets are supported now?

  5. Dave says:

    Mmm, native regular expressions 🙂 My heart leaps with joy.

  6. anonymous says:

    Hey I recently installed MSDN Library for Visual Studio 2008 and VS2008 Pro Trial but found that J# documentation was removed!! Although J# is not present, it’s an absolute pain to install 2 MSDN versions simply for the sake of having J# documentation. Can MS make J# documentation available as an compiled CHM eBook or something?

  7. Tanveer Badar says:

    The only thing which really sucks is that it is not supported on Express Edition on VC.

    Can’t something be done to that?

  8. vcblog says:

    Hi Tanveer.  Unfortunately we don’t have any short term solution for using the Feature Pack with Express.  When the Express product was originally defined it was decided not to include MFC.  We’ve reevaluated this decision and our hope is to ship MFC & ATL with future Express versions.  We’ll need to wait until the next major release though.

    Bill Dunlap

    Visual C++ Development Team

  9. James Swaine says:

    The SKU for Visual Studio 2008 Team System Development Edition isn’t recognized as a valid SKU by the installer package.  People who have this edition (and maybe others) can’t install this update – the installer says ‘none of the products this package updates are installed on this machine’, or something to that effect.  

    How should we work around this issue?  Thanks.

  10. Heitor Tome says:

    Would it be possible to add the following to the share_ptr implementation?

    shared_ptr(_Ty* p = 0);

    _Ty* operator->() const;

    BTW, does anybody know when the Feature Pack will be out of beta?


  11. Stephan T. Lavavej [MSFT] says:


    > Mmm, native regular expressions 🙂

    > My heart leaps with joy.

    Yes! And you will find that TR1 Regex is the most powerful and flexible regex library you’ve ever seen. regex_token_iterator is incredibly neat.

    [Heitor Tome]

    > Would it be possible to add the following to the

    > share_ptr implementation?

    Our shared_ptr<T> implementation already has an operator->() const which returns T *. It also has a default constructor, as well as a templated explicit constructor from U *. This is in exact agreement with the TR1 specification.

    Note that shared_ptr<T> cannot have a shared_ptr(T * p = 0) constructor for several reasons:

    1. Such a constructor would be an implicitly converting constructor from T *, which TR1 prohibits.

    2. Such a constructor would convert arbitrary U * to T *, interfering with a subtle but required feature of shared_ptr (a shared_ptr<Base> can be constructed from a Derived *, even when Base lacks a virtual destructor, and Derived’s destructor will still be called).

    3. There is a subtle but important difference between default constructing a shared_ptr (said to be "empty") and constructing a shared_ptr from 0 (formally said to "own the null pointer"), which is why shared_ptr has a separate default constructor, instead of using a default argument. In particular, constructing an empty shared_ptr cannot throw, but constructing a shared_ptr that owns the null pointer can throw if it fails to allocate memory for a reference count.

    If you have any further TR1 questions, feel free to E-mail me at .

    Stephan T. Lavavej

    Visual C++ Libraries Developer, working on TR1

  12. SvenC says:

    Hi Stephan,

    just like James Swaine I use Visual Studio 2008 Team System for Developers which is not a supported SKU for MFCNext and TR1 beta. Is there any way to make the beta installable for that version of VS, too?



  13. James Swaine says:

    I love how the C++ team is more than happy to answer questions about these new features, but they don’t seem to care about the fact that half the people trying to use it can’t even install it.  As a newcomer to the C++ world, this is my first exposure to all things C++, and I have to say I’m pretty underwhelmed by the team’s lack of a response on this issue.

    The ironic thing is that I would assume most developers who are using the Team System VS editions work for companies who can afford TFS, and people talk.  Just another reason to stick with other languages/technologies that are much better supported.

  14. Ayman Shoukry says:

    Hello James,

     Folks on the C++ team are currently looking into the installation issues. We discovered the reason for such issues and are investigating the appropriate actions.

    Thanks in advance for your patience. We will make sure to communicate the result of the investigation.


    Ayman Shoukry

    Visual C++ Team

  15. Soma annonce sur son blog le support du TR1 dans Visual Studio 2008 . Vous pouvez télécharger la béta

  16. Mark Gordon says:

    Any idea when we are going to have Visual UI control inheritance in Visual Studio 2008? I believe that is a feature of FoxPro …


  17. Jim Lamb says:

    It’s great to see MSVC incorporating TR1 though, to be fair, most serious C++ developers have been using the boost libraries to get these features for a very long time. What’s the plan for incorporating TR2?

    Are there any plans to develop a new UI framework that follow the TR1 naming conventions and makes better use of generic programming? It’s nice to see to see controls like the ribbon, but MFC was getting long in the tooth 5 years ago. Isn’t it time for a new, streamlined UI framework with a richer design-time experience?

  18. Jonas says:

    I’m having some trouble using the new project wizards. For example, a file named toolbar_256.bmp (IIRC) is not included here. I think I saw some other bug too, in that an empty Window menu was attempted to be created in the .rc file, but that’s not allowed by Visual Studio.

    Anyway, those things are sort of expected in betas. Otherwise, fixing up those post-wizard errors manually, things have been working pretty well!

  19. Pat Brenner says:

    Hi Jonas,

    If you’ve found bugs in the MFC wizards using the Feature Pack Beta, could you please log them using Connect?


    Pat Brenner

    Visual C++ Libraries Development

  20. Stephan T. Lavavej [MSFT] says:

    [Jim Lamb]

    > It’s great to see MSVC incorporating TR1 though, to be fair,

    > most serious C++ developers have been using the boost libraries

    > to get these features for a very long time.

    There’s nothing stopping you from continuing to use Boost, and indeed Boost contains many things that aren’t in TR1. Of course, VC9 TR1 has some advantages:

    1. Lower build-related activation energy; after you’ve installed the Feature Pack (or SP1, etc.), you can immediately use TR1. With Boost, you have to build it (at least if you want to use its separately compiled libraries like Boost.Regex) and then get it picked up by your build system.

    2. Lower lawyer-related activation energy; many companies worry about using open-source software. It doesn’t even matter if such worries are justified or not, if you’re a programmer who has to deal with your company’s legal department.

    3. Debugger integration; the Visual Studio IDE (devenv) will visualize basically all TR1 types, with fancy previews like "shared_ptr {x=5,y=12} [3 strong refs, 1 weak ref]". Manually decoding the representations of Boost/TR1 types is not fun. There’s actually nothing stopping Boost from writing their own visualizers, but at the very least you’d have to hack your autoexp.dat.

    4. Higher performance (theoretically); STL containers will avoid copying TR1 types whenever possible, instead preferring to swap them. Again, there’s nothing actually stopping Boost from implementing this optimization, although it relies on nonportable knowledge of VC’s STL internals.

    > What’s the plan for incorporating TR2?

    TR2 isn’t even finished yet. (Currently, the only library proposed for TR2 is the wonderful Boost.Filesystem library.) When it’s finished, I’ll be the first person bouncing up and down, proposing that we implement it.

    > Are there any plans to develop a new UI framework that follow the

    > TR1 naming conventions and makes better use of generic programming?

    I’d like to do that someday. Note that it’s a hard problem; there is still no Boost.UI.

    Stephan T. Lavavej

    Visual C++ Libraries Developer

  21. jwang says:

    Is there a release date set for MFC Feature Pack?  

    MFC Feature Pack provides the tools we need to modernize our MFC-based application.  It is extremely crucial for us to ship it with the new capability powered by VC++ Feature Pack.  I will be very appreciative if someone could provide some insight on the release schedule.


  22. vcblog says:

    # re: Visual C++ 2008 Feature Pack Beta Thursday, April 03, 2008 9:37 PM by jwang

    > Is there a release date set for MFC Feature Pack?  

    It is now released, see here for details:



  23. Greg says:

    Hello, I found a case sensitivity bug in this version of the feature pack and I have simplified it down to very simple and small reproducible code and regex’s:

    std::tr1::wregex rx(L"^[a-z]$", (std::tr1::regex::flag_type)(std::tr1::regex_constants::ECMAScript | std::tr1::regex_constants::icase));

    ASSERT(std::tr1::regex_match((LPCWSTR)"A", rx));