As yet, no official Boost library requires C++ 11 or 14, but there are such libraries in the pipeline - Fiber is conditionally approved, AFIO and DI are in the formal review queue, and APIBind will be entering the queue shortly after C++ Now. Why do these libraries require C++ 11 or 14? Could they have been implemented with C++ 03, and what sacrifices would have had to have been made to support 03? Or do they incorporate designs which would be impossible in an 03 compiler, maybe due to lack of language features or because meta-programming limits would make the design untenable or the library unusable? What C++ 11/14 features do these libraries use? Is there a common theme of the most popular C++ 11/14 features used, or is the use of the state of the art more patchy? Are there techniques used in one library which would make a lot of sense to be used in another library, but for some reason are not? Do these new libraries take notice of one another and integrate themselves well with other libraries, or are they ivory towers? How many of these forthcoming libraries explicitly seek to contribute to future C++ standardization, and how many are instead application libraries solving a particular problem domain? For those intended to contribute towards standardization, is there a theme e.g. are they about standardizing functional C++ programming into the standard? We'll explore these questions and more in a session that examines the future of Boost libraries with regard to language and STL requirements.
* Boost.Fiber: a framework for micro-/userland-threads (fibers) scheduled cooperatively.
* Boost.AFIO: strongly ordered asynchronous filesystem and file i/o extending ASIO.
* Boost.DI: provides compile time, macro free constructor dependency injection.
* Boost.APIBind: toolkit for modularizing Boost libraries, managing versioned API and ABI dependency binds, makes it easy for Boost libraries to switch between use of the C++ 11 STL and the Boost STL.
Slides