On 11/3/18 5:17 AM, Cromwell Enage via Boost wrote:
Hi, everyone.
The end of section 3.2.1 of the current Boost.Parameter home page tutorial notes "that because of the forwarding problem, parameter::parameters::operator() can't accept non-const rvalues". I've submitted a PR to the develop branch on GitHub that would grant Boost.Parameter the ability to support perfect forwarding and eliminate this issue. However, the PR uses rvalue references (in parameter::keyword, parameter::parameters, and the code generation macros) and variadic templates (in parameter::parameters and the code generation macros). With the exception of BOOST_PARAMETER_TEMPLATE_KEYWORD, the PR would make Boost.Parameter a C++11 library. As a result--based on < http://pdimov.github.io/boostdep-report/develop/parameter.html#reverse-dependencies>--the following Boost libraries known to use Boost.Parameter would also become C++11:
Boost.Log
I'd like to hear from everyone else, especially the maintainers and users of these libraries, if it's okay for Boost.Parameter to go C++11 and above only or if C++03 support is still necessary.
I would prefer to keep backward compatibility with C++03, if possible. Is it possible to use Boost.Move or conditionally enable perfect forwarding on C++11 and retain the old code for C++03?