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.
That's not quite what I read here:
http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/overview/implem entation.html
See for yourself at http://www.boost.org/doc/libs/1_53_0/doc/html/boost_asio/using.html. I agree that perhaps that list, given the list you linked to, is now out of date.
And the compilers you mentioned as officially supported by ASIO actually cover pretty much every compiler out there nowdays.
Comparing that with your requirement of the compiler that has not even been released, it doesn't look like AFIO portability level will be even remotely close to that of ASIO.
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
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.
I think your estimate of "> 90% of C++ users by the end of 2013" is much too optimistic. People in corporate sector are very reluctant to update their toolsets, so expect people trying to use your new library with 3-5 year
We can work around the lack of variadic templates, and therefore support vanilla VS2012 if peer review demands it. Of course VS2012 won't make binaries which can run on Windows XP :( so maybe VS2010 support will also be demanded by peer review. If it is, we'll do what is required to meet VS2010. 2013. old
compilers.
I know, C++11 has many fancy features and all, and I'm all for its adoption too. But Boost also serves practical purpose, and if people can't use your
I used the qualifier "available to" with purpose: I agree that a compiler may be available to > 90% of C++ users but for whatever reason those users do not avail of that compiler. FYI for my other open source I still get regular bug submissions for MSVC6 breakage due to my use of C++98 features, so I'm well aware what corporate is like. That said, this is a new greenfield library, and therefore no legacy compiler technology is inconvenienced by its compiler requirements. I might add that as C++ Now 2013 showed, there are quite a few new Boost libraries on their way which are C++11 only and will only ever be C++11 only: I saw presentations on new C++11 only versions of Boost.Proto and Boost.Spirit for example. library then
that just limits its usefulness. So unless you trying to make some academic work here, the library should be more portable.
If a corporate end user really, really wants the library working on their compiler toolset, they are always free to sponsor a port to that toolset. It's all open source. Niall --- Opinions expressed here are my own and do not necessarily represent those of BlackBerry Inc.