The existing code base being prepared for entry into Boost is pure C++11, or at least as much C++11 as is provided by the Nov 2012 CTP experimental MSVC compiler and therefore easily supported by GCC 4.6 and clang 3.x.
I hope that you do realize that the Nov12 CTP does not come with a go-live license, nor is recommended for any human consumption.
It seems quite odd to me to spend significant GSoC resources on making a
Meh. First preview of VS2013 is only a month away. Nov 2012 CTP is usefully broken in ways easy to work around (parser bugs) rather than broken in unhelpful ways (unreliable code generation). It fills a useful slot until VS2013 arrives later this year. library
that targets only two compilers, and assumedly a rather narrow set of OSes.
Actually it targets three compilers (+clang). I might add that Boost.ASIO only officially supports Windows, Linux, Solaris and OS X, and only the compilers MSVC7.1 or later and g++ 3.3 or later. Some would say that is a fairly narrow set in itself. We'll be matching Boost.ASIO's official platform support, but adding official support for FreeBSD 10 with clang and libcxx. In truth though it ought to work on any OS providing a POSIX file i/o API with preadv() and pwritev() which is the majority (including Windows via its MSVCRT incidentally). You may find https://github.com/BoostGSoC/boost.afio/wiki/Status-of-proposed-Boost.AFIO of interest. There it tells you how to get started with the proposed library right now.
Was this C++11-only requirement part of the original project plan, and why didn't anyone object to it then?
Yes, it was an original plan requirement. Having full fat C++11 (esp. the C++11 standard library) to hand made the code and design *very* considerably simpler and *much* easier to read (and therefore maintain) - in fact, there is only 670 lines of active code. Judging from the presentations at C++ Now 2013, this simplification experience of pure C++11 is hardly unique: many presenters commented on just how much their pure C++11 new versions of Boost libraries were cleaner, simpler, faster to compile and faster performance, and hugely more maintainable. Given that we knew that VS2012 would get variadic templates later this year (which it will in the form of VS2013), we decided to just go ahead with what C++11 features will be available to > 90% of C++ users by the end of 2013. That surely should satisfy the portability requirement, if not, then we'll work backwards until we reach > 95% of C++ users or > 99% if Boost peer review really, really wants it. Niall --- Opinions expressed here are my own and do not necessarily represent those of BlackBerry Inc.