17 Oct, 2013
The final versions of Visual Studio 2013, Team Foundation Server 2013 and .NET 4.51 are now available from MSDN. You can also download trials.
VS 2013 can be installed side by side with previous versions of Visual Studio or, if you have a VS 2013 pre-release, it can be installed straight on top of the pre-release. TFS 2013 cannot be installed side by side but can also be installed on top of either a previous version (TFS 2012 or TFS 2010) or a pre-release.
Learn more about what’s new in Visual Studio 2013.
What’s new in Visual C++ 2013 (excerpt from MSDN):
- Compiler
- Added support for the following ISO C++11 language features:
- Default template arguments for function templates.
- Delegating constructors.
- Explicit conversion operators.
- Initializer lists and uniform initialization.
- Raw string literals.
- Variadic templates.
- Alias templates.
- Deleted functions.
- Non-static data member initializers (NSDMIs).
- Defaulted functions. (using =default to request memberwise move constructors and move assignment operators is not supported)
- Added support for the following ISO C99 language features:
- _Bool
- Compound literals.
- Designated initializers.
- Mixing declarations with code.
- String literal conversion to modifiable values can be disallowed by using the new compiler option /Zc:strictStrings. In C++98, conversion from string literals to char * (and wide string literals to wchar_t *) was deprecated. In C++11, the conversion was removed entirely. Although the compiler could strictly conform to the standard, instead it provides the /Zc:strictStrings option so that you can control conversion. By default, the option is off. Note that when you are using this option in debug mode, the STL will not compile.
- rvalue/lvalue Reference Casts. With rvalue references, C++11 can clearly distinguish between lvalues and rvalues. Previously, the Visual C++ compiler did not provide this in specific casting scenarios. A new compiler option, /Zc:rvalueCast, has been added to make the compiler conformant with the C++ Language Working Paper(see section 5.4, [expr.cast]/1). The default behavior when this option is not specified is the same as in Visual Studio 2012.
- STL
- Support for the C++11 explicit conversion operators, initializer lists, scoped enums, and variadic templates.
- All containers now support the C++11 fine-grained element requirements.
- Support for these C++14 features:
- “Transparent operator functors” less<>, greater<>, plus<>, multiplies<>, and so on.
- make_unique<T>(args…) and make_unique<T[]>(n)
- cbegin()/cend(), rbegin()/rend(), and crbegin()/crend() non-member functions.
- <atomic> received numerous performance enhancements.
- <type_traits> received major stabilization and code fixes.
This list is just a small part of everything that’s new. There are also
- Visual C++ library enhancements
- C++ application performance enhancements
- Diagnostics enhancements
- 3D graphics enhancements
- Quite a few very nice IDE and Productivity enhancements.
Read all the details here.
Visual C++ 2013 now also supports “just my code” debugging which makes working with C++ even better. The ability to filter the call stack down to just the code you wrote when debugging has long existed for managed languages and is now available for C++ 🙂
15 Oct, 2013
The next meeting of the Belgian C++ Users Group is planned for Monday November 4th, 2013 at 18:00 at LMS International, a Siemens Business.
LMS International ( http://www.lmsintl.com/ ) is sponsoring this event by providing the location, drinks and catering.
This time, there will be one speaker, giving two presentations of one hour on one subject. The agenda is as follows:
- 18:00: Sandwiches.
- 18:30: Session 1: Strings and String Manipulation in C++, Part 1 (Lieven de Cock) Once there were c-arrays, evolution brought us std::string. This made life easier, and less manual reimplementation was needed because of the power std::string brought to the table. Nevertheless we still keep on reimplementing basic and advanced string manipulation functionality. By this continuously reinventing the wheel we spend a lot of time fixing the same mistakes, while out there are tried and tested and proven libraries. C++11 also brings more power, but we will focus on boost string manipulations. Basic manipulations, like replace, find, erase, split, join, trim, …, next to lexical_cast, boost tokenizer, regex (both boost and std) will be explained and show cased. Next to the lexical_cast we will mention std::to_string. Similar library functionality provided by the POCO libraries will be shown too. String power is at your fingers for free, just say the magic word.
- 19:30: Break
- 19:45: Session 2: Strings and String Manipulation in C++, Part 2 (Lieven de Cock)
- 20:45: Demo of an LMS International software product followed by a drink.
Read the official announcement.
Register for this free event.
14 May, 2013
amazon C++11
My article “Advanced C++ Tips and Tools” is live on the tech.book(store) website of Amazon.
C++ allows you to write clean, safe and fast code, and writing it is even easier than ever thanks to new features in C++11. This article highlights a couple of tips…
You can read the full article here.
8 May, 2013
The next meeting of the Belgian C++ Users Group is planned for Wednesday June 12th, 2013 at 18:00 at Nikon Metrology HQ.
Nikon Metrology ( http://nikonmetrology.com/ ) is sponsoring this event by providing the location, drinks and catering.

There will be two international speakers:
- Joel Falcou is an assistant professor at the University Paris-Sud and researcher at the Laboratoire de Recherche d’Informatique in Orsay, France. His work focuses on investigating high-level programming models for parallel architectures (present and future) and providing efficient implementation of such models using high-performance language features. He’s an active member of the Boost community and CEO of MetaScale, a French start-up valorizing his research. He is also a member of the ISO C++ Standards Committee.
- Jens Weller is a self-employed C++ specialist, working with C++ for over 14 years. He is organizing the C++ conference “Meeting C++” in Düsseldorf, and also runs http://meetingcpp.com. Jens has some vast C++ experience gathered as a freelancer in the IT Industry.
The agenda is as follows:
- 18:00: Sandwiches.
- 18:30: Session 1: Qt5 – Multimedia Overview (Jens Weller) The talk will give a short introduction into Qt5, and focus on its Multimedia Framework, showing how to write an MP3 Player or a video recorder in Qt5.
- 19:30: Break
- 19:45: Session 2: Boost.Proto (Joel Falcou) C++ Embedded Domain Specific Languages Made Easy.
- 20:45: Guided tour of Nikon Metrology followed by a drink.
Read the official announcement.
Register for this free event.
5 Apr, 2013
I got the confirmation email from Microsoft that my MVP (Most Valuable Professional) award for Visual C++ is extended for 2013 🙂
I’m already looking forward to the next Summit 🙂
Congratulations! We are pleased to present you with the 2013 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. We appreciate your outstanding contributions in Visual C++ technical communities during the past year.
See my MVP profile.
5 Apr, 2013
Visual C++ Visual C++ 2012 Visual Studio Visual Studio 2012
Microsoft has released Update 2 for Visual Studio 2012 (VS2012.2). You can get it here.
Just as with VS2012.1 (which is installed as part of VS2012.2 for those of you who don’t already have VS2012.1 installed), this release contains important fixes as well as a wealth of new functionality, addressing feedback we’ve received from the community and aligning with key software development trends in the market. The new functionality primarily spans (though is not limited to) five areas of investment: agile planning, quality enablement, Windows Store development, line-of-business development, and the general developer experience.
Check out Somasegar’s blog post for more details on this update.
25 Mar, 2013
MVP Global Summit
On March 25th, I gave a report of the February MVP Global Summit 2013 to software engineers in my company. Obviously, I’m only talking about things that did not fall under NDA.
The slides can be downloaded below:
14 Mar, 2013
Meeting C++ 2013
After last years great success, there will be a Meeting C++ 2013 with 2 days full of C++ in Germany this Fall. Meeting C++ 2013 will be again at the 2nd weekend of November (8/9.11.2013). This time the conference will take place at the Lindner Congresshotel in Düsseldorf. For this year there will be 25 talks and up to 2 keynotes for the 250 attendees at the conference!
Like last year, this event is organized independently, covering most its costs over the ticket price. There will be 3 tracks about C++ this year, with the 3rd track being a theme track about C++ and UI. Talks about Qt5, XAML, wxWidgets, GTK, Apps and QML could take place in this theme track. The other two tracks will offer general C++ talks like last year. Meeting C++ 2013 is looking again for sponsors, with sponsors from last year already being contacted.
The call for papers for Meeting C++ 2013 has started and will end on May 15th. The process will be a bit different then last years. Talks will be collected, and then anonymously rated by a Program Committee consisting out of community members, organizers and sponsors. All ratings will be combined and used to do the final placement in the schedule. Speakers will have the opportunity to publish an entry about their talk at our blog this year! Tickets will be available soon, starting with the early bird ticket sale. This year there will be 250 tickets available for the conference, early bird tickets will cost €399, normal tickets €499. Early bird tickets will be sold till the end of June, after the schedule is available for one month, or till the 100 available tickets are sold out.
11 Mar, 2013
book Boost.Asio network

I recently finished reading “Boost.Asio C++ Network Programming” written by John Torjo and published by Packt Publishing. Information given by the publisher:
Overview:
- Augment your C++ network programming using Boost.Asio
- Discover how Boost.Asio handles synchronous and asynchronous programming models
- Practical examples of client/server applications
- Learn how to deal with threading when writing network applications
- Harness the power of Boost with plenty of examples that you can build upon
What you will learn from this book:
- How to easily reference Boost.Asio programming
- Synchronous versus asynchronous using Boost.Asio
- How threading affects programming using Boost.Asio
- Create your own echo client and server
- More examples of client/server applications, both synchronous and asynchronous
- Implement your own asynchronous operations
- Co-routines: asynchronous operations with a synchronous feel
- Use Boost.Asio for SSL Networking
- Debug Boost.Asio
- Use Boost.Asio for more than just networking
I love the Boost libraries, and I’m interested in network programming, so I decided to read this book. The book has a hands-on approach with a couple of sample programs. What I like is that these sample programs have been structured in such a way so they can be reused for your own projects. They are like skeleton examples, and all source code can be downloaded from the book’s website.
The book does not cover any real networking theory. For example don’t expect an in-depth discussion of how the TCP, UDP, or ICMP protocols work; that’s not the goal of this book. The goal is to show, with practical examples, how to use the Boost.Asio networking library.
While reading chapter 1, my initial reaction to the contents was rather negative. Chapter 1 is a bit convoluted, not so easy to understand, and even has a couple of errors in it. However, subsequent chapters are structured more logically and are understandable, though sometimes a discussion accompanying a piece of code can be a bit brief.
As an introduction to the library, Chapter 3 shows a basic Echo client/server example which is quite good. There is a synchronous and asynchronous TCP implementation of the client and server, and also a synchronous UDP implementation of the client and server. Subsequent chapters implement more useful client/server applications.
The book is not your one-stop destination for everything related to the Boost.Asio library, but it’s a great introduction to get you started with the library, to get to know the terminology used in the library, to learn about the difference between synchronous and asynchronous programming, to learn how to use multi-threading using the Boost threading library, and to get nice skeleton applications that you can reuse in your own projects. Several skeleton applications are provided such as synchronous and asynchronous versions, and single-threaded and multi-threaded versions.
26 Feb, 2013
Casablanca REST
The C++ REST SDK (codename “Casablanca”) has officially been released as an open source project on CodePlex (http://casablanca.codeplex.com). It includes tools to quickly write modern, asynchronous C++ code that connects with REST services.
It makes it much more easy to write application in C++ that use networking. Here is a simple example that uploads a file to an HTTP Server:
#include <http_client.h>
#include <filestream.h>
#include <uri.h>
#include <thread>
#pragma comment(lib, "casablanca110")
using namespace concurrency::streams;
using namespace web::http::client;
using namespace web::http;
int main()
{
// Open stream to file.
file_stream<unsigned char>::open_istream(L"ReadMe.txt").then([](basic_istream<unsigned char> fileStream)
{
// Make HTTP request with the file stream as the body.
http_client client(U("http://www.myhttpserver.com"));
client.request(methods::PUT, L"myfile", fileStream).then([fileStream](http_response response)
{
fileStream.close();
// Perform actions here to inspect the HTTP response...
if (response.status_code() == status_codes::OK)
{
}
});
});
std::this_thread::sleep_for(std::chrono::seconds(10));
return 0;
}
The library also makes it easy to create and consume JSON formatted strings from C++.
Checkout this blog post for a little bit more details.
11 Jan, 2013
Materialise
The next meeting of the Belgian C++ Users Group is planned for Monday February 4th 2013 at 18:30 at Materialise HQ.
Note: The deadline for registrations is January 18!
The agenda is as follows:
- Session 1: Effective WinRT with C++ (Francisco Almeida)
This will be a brief overview of implementation of Windows Store apps using C++, along with its most useful libraries, new language features and, of course, common pitfalls and traps one may encounter.
We will go over the multithreaded design of WinRT, and how modern C++ allows us to effectively cope with it, including exception handling. We will, of course, refresh some general knowledge of Windows Store app development, in the perspective of its implementation while using C++.
- Break
- Session 2: Threading in C++11 (Lieven de Cock)
Threading has been a challenging and non portable job for many years, and it is one of our basic tools for the future. Though several libraries came to aid (POCO / boost / …), now it’s finally part of the language, C++11 is bringing us threading support. In this crash course we will dive into basic uses of std::thread, std::mutex, std::condition_variable, std::atomic, … Life is easier and more portable now, but did we get all we wanted ? And as always, C++ is powerful, providing constructs mere mortals should better not touch, unless you are that 1% of the user base, but most of us are not.
We will see simple code examples explaining the std::thread basics. So lock your mutex, wait for your condition variable and atomically spin up that thread, C++11 threading is here for you. Thou shall async till eternity, or untill the future has delivered its promise.
- Guided tour of the Materialise facilities.
- Drink
Materialise ( http://materialise.be/ ) is sponsoring this event by providing the location, drinks and catering
The event is free for everyone, but you need to register for it.
14 Dec, 2012
ALL APPLICATION PACKAGES Windows Store apps
By default, the following simple piece of standard C++ code will not work in Windows Store apps.
wofstream out(L"c:\\temp\\Data.txt");
out << L"Foo" << endl;
The reason is that Windows Store apps run with low privileges, meaning that there are restrictions on which files and folders you are allowed to access.
This is a problem for debugging, because often you want to quickly dump some data to a file and inspect the result.
Luckily, there is a way to make the above code work. The only thing you have to do is to grant “ALL APPLICATION PACKAGES” read/write access to the folder you want. 🙂
1 Dec, 2012
game Live Mosaic Windows 8

Live Mosaic, the first Windows 8 game by NuonSoft, has been released and is available on the Windows Store.
The game was made by Francisco Almeida and Marc Gregoire.
Get it from the store.
27 Nov, 2012
update Visual C++ 2012 Visual Studio 2012

The first update for Visual Studio 2012 has been released.
This update delivers bug fixes, but also new functionality. The new functionality in this first update primarily spans four areas: Windows development, SharePoint development, agile teams, and continuous quality.
We can now target Windows XP again with C++ code, and there have been a couple of C++ unit testing enhancements. For Windows Store applications, the update includes support for both mixed-mode managed/native debugging and for native ARM dump debugging.
Get more details about the update.
Download the update.
7 Nov, 2012
C++11 Visual C++ 2012
As promised, Microsoft is releasing out-of-band updates for Visual C++. A preview of the first such update has now been released as the November 2012 Compiler CTP. This is a Customer Technology Preview and does not come with a ‘Go Live’ license, but it allows you to start experimenting and testing new features, and to provide feedback.
This November 2012 CTP contains a lot of new C++11 features:
- Variadic templates
- Uniform initialization and initializer_lists
- Delegating constructors
- Raw string literals
- Explicit conversion operators
- Default template arguments for function templates
More details, including installation instructions and how to give feedback can be found here.
Download the November 2012 CTP and start playing with these new C++11 features.
7 Nov, 2012
C++11 iso isocpp
Herb Sutter’s talk about The Future of C++ is now available on Channel9. If you are interested in C++, you should watch it. A the same time, he announced a couple of major things related to C++:
Interest and investment in C++ continues to accelerate across the software world.
- ISO C++ standardization is accelerating. Major companies are dedicating more people and resources to C++ standardization than they have in years. Over the next 24 months, the plan is to ship three Technical Specifications and a new C++ International Standard.
- C++ now has a home on the web at isocpp.org. It both aggregates the best C++ content and hosts new content itself, including Bjarne Stroustrup’s new Tour of C++ and Scott Meyers’ new Universal References article.
- There is now a Standard C++ Foundation. It is already funded by the largest companies in the industry down to startups, financial institutions to universities, book publishers to other consortia, with more members joining weekly. For the first time in C++’s history since AT&T relinquished control of the language, we have an entity – a trade organization – that exists exclusively to promote Standard C++ on all compilers and platforms, and companies are funding it because the world runs on C++, and investing in Standard C++ is good business.
This is an exciting time to be in the C++ World 🙂
27 Oct, 2012
App-a-thon Windows 8 Windows Store apps
On 28th of September a colleague of mine (Francisco Almeida) and myself participated in a Windows 8 App-a-thon organized by Microsoft. I was pleasantly surprised when I received an email a couple of days ago informing us that we won the first prize in the contest 🙂 The winners have been announced on the Belux MSDN blog. Winning this contest is an extra encouragement to finish the little puzzle game we started and to put it on the App store. If everything goes well, the plan is to have an internal Beta version next week, and to submit the puzzle game for App store certification towards the end of next week or the week after. We have created a temporary landing page for our game which you can find here.
21 Oct, 2012
C++11 call_once once_flag singleton thread-safe
Note: see my more recent article “Implementing a Thread-Safe Singleton with C++11 Using Magic Statics” for a more modern solution.
C++11 makes it easier to write a thread-safe singleton. Here is an example. The class definition of the singleton looks as follows:
#include <memory>
#include <mutex>
class CSingleton
{
public:
virtual ~CSingleton() = default;
static CSingleton& GetInstance();
private:
static std::unique_ptr<CSingleton> m_instance;
static std::once_flag m_onceFlag;
CSingleton() = default;
CSingleton(const CSingleton& src) = delete;
CSingleton& operator=(const CSingleton& rhs) = delete;
};
The implementation of the GetInstance() method is very easy using C++11 std::call_once() and a lambda:
std::unique_ptr<CSingleton> CSingleton::m_instance;
std::once_flag CSingleton::m_onceFlag;
CSingleton& CSingleton::GetInstance()
{
std::call_once(m_onceFlag,
[] {
m_instance.reset(new CSingleton);
});
return *m_instance.get();
}
3 Oct, 2012
C++ AMP
Kate Gregory (a fellow VC++ MVP) has published her book called “C++ AMP: Accelerated Massive Parallelism with Microsoft Visual C++”.
The official description is as follows.
Capitalize on the faster GPU processors in today’s computers with the C++ AMP code library—and bring massive parallelism to your project. With this practical book, experienced C++ developers will learn parallel programming fundamentals with C++ AMP through detailed examples, code snippets, and case studies. Learn the advantages of parallelism and get best practices for harnessing this technology in your applications.
Discover how to:
- Gain greater code performance using graphics processing units (GPUs)
- Choose accelerators that enable you to write code for GPUs
- Apply thread tiles, tile barriers, and tile static memory
- Debug C++ AMP code with Microsoft Visual Studio®
- Use profiling tools to track the performance of your code
Find out more about this book here.
3 Sep, 2012
The next meeting of the Belgian C++ Users Group is planned for Tuesday October 16th 2012 at 18:30 in the Microsoft offices in Zaventem.
The agenda is as follows:
- Session 1: An introduction to the C++ Network Library (Glyn Matthews)
- Break
- Session 2: Comparison between Unit Test Frameworks (Mark Van Peteghem)
- Drink
Microsoft is sponsoring this event by providing the location, drinks and sandwiches.
The event is free for everyone, but you need to register for it.