Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support additional parameter categories #21

Merged
merged 2 commits into from Oct 26, 2018

Conversation

@CromwellEnage
Copy link
Collaborator

commented Oct 25, 2018

Add parameter category qualifier "forward" (current qualifiers are "in", "out", and "in_out") based on http://www.modernescpp.com/index.php/c-core-guidelines-how-to-pass-function-parameters. Add new usage syntax BOOST_PARAMETER_NAME((object-name), namespace-name) qualifier(tag-name)) and BOOST_PARAMETER_NAME(qualifier(name)). (Existing code that uses qualifiers directly and correctly with BOOST_PARAMETER_FUNCTION and other code generation macros should remain unaffected for now, so no breaking changes.) The reason for the change in usage is to enable applying of parameter category constraints to Boost.Parameter-enabled functions and constructors invoked through argument composition. (Otherwise, it is currently possible to use argument composition to bypass parameter category constraints applied in BOOST_PARAMETER_FUNCTION et. al.) See "test/compose.cpp" for example usage.

Support additional parameter categories
Add parameter category qualifier "forward" (current qualifiers are "in", "out", and "in_out") based on http://www.modernescpp.com/index.php/c-core-guidelines-how-to-pass-function-parameters.  Add new usage syntax BOOST_PARAMETER_NAME((object-name), namespace-name) qualifier(tag-name)) and BOOST_PARAMETER_NAME(qualifier(name)).  (Existing code that uses qualifiers directly and correctly with BOOST_PARAMETER_FUNCTION and other code generation macros should remain unaffected for now, so no breaking changes.)  The reason for the change in usage is to enable applying of parameter category constraints to Boost.Parameter-enabled functions and constructors invoked through argument composition.  (Otherwise, it is currently possible to use argument composition to bypass parameter category constraints applied in BOOST_PARAMETER_FUNCTION et. al.) See "test/compose.cpp" for example usage.

@eldiener eldiener merged commit 57e3674 into boostorg:develop Oct 26, 2018

2 checks passed

continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details

@CromwellEnage CromwellEnage deleted the CromwellEnage:qualified_name branch Oct 26, 2018

@eldiener

This comment has been minimized.

Copy link
Collaborator

commented Oct 26, 2018

I have been happy to merge your work to 'develop', and will continue to do so upon checking what you have done. But I want to hold back your changes from the next release of Boost, which will be 1.69, which will be closing for changes on this coming Saturday 10/27/18. After all your changes have been in 'develop' when 1.69 come out, we can plan on merging to 'master' for Boost 1.70, and you can explain your changes in the Parameter release notes of Boost 1.70, and also if you like in the developers mailing list. Boost usually cycles to a new release every 3 months or so.

@CromwellEnage

This comment has been minimized.

Copy link
Collaborator Author

commented Oct 26, 2018

Understood.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.