
Niall Douglas wrote:
Dear list,
Ahmed has volunteered to review manage AFIO (thanks Ahmed!), however I wanted to get the list's feedback on some things first.
1. After collecting feedback at C++ Now from members of WG21 on the shape and preferred future of a race free Filesystem TS, the next iteration of AFIO will have a radically different API consisting of the form:
std::vector<afio::future<T>> afio::batch(...)
afio::future<T> afio::async_io_handle::operation(inputs) noexcept(is_nothrow_move_constructible<T>)
T afio::io_handle::operation(inputs)
T afio::io_handle::operation(error_code &ec, inputs)
The internal engine is the same very well tested code, just the API is very different from before. The current API was forced by VS2010's limitations and the lack of constexpr in MSVC - now VS2015 RTM has C++ 11 constexpr, I can adopt the custom future based API I always originally wanted. This new API will require C++ 14 in the compiler.
What is your contingency plan if people loudly demand C++11 support (or even C++03 support)? Would it be possible to for the new API to degrade more or less gracefully to C++11, or is it C++14 or nothing? The answers to these questions may prove useful for your final decision.