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

Restructure code #18

Merged
merged 6 commits into from Oct 25, 2018

Conversation

@CromwellEnage
Copy link
Collaborator

commented Oct 24, 2018

<boost/parameter/aux_/arg_list.hpp>:

  • Move forward declarations to their own header files.

<boost/parameter/aux_/tagged_argument.hpp>:

  • Move boost::parameter::aux::tagged_argument_base, boost::parameter::aux::is_tagged_argument_aux, and boost::parameter::aux::is_tagged_argument to <boost/parameter/aux_/is_tagged_argument.hpp>
  • Remove unnecessary forward declarations.

<boost/parameter/name.hpp>:

  • Move support metafunction definitions and BOOST_PARAMETER_TAG_PLACEHOLDER_TYPE macro definition to <boost/parameter/aux_/name.hpp>.
  • Move BOOST_PARAMETER_IS_BINARY macro definition to <boost/parameter/aux_/preprocessor/is_binary.hpp>.
  • Use BOOST_PARAMETER_TAG_PLACEHOLDER_TYPE macro.

<boost/parameter/aux_/overloads.hpp> currently works at the preprocessor level, so move to <boost/parameter/aux_/preprocessor/overloads.hpp>.

<boost/parameter/parameters.hpp>:

  • Move boost::parameter::aux::use_default to <boost/parameter/aux_/use_default.hpp>.
  • Move boost::parameter::required, boost::parameter::optional, and boost::parameter::deduced metafunction definitions to their own header files in directory boost/parameter.
  • Move other support metafunction definitions to their own header files in directory boost/parameter/aux_/pack.
  • Move support macro definitions to <boost/parameter/aux_/preprocessor/no_perfect_forwarding_begin.hpp> and their corresponding #undef statements to <boost/parameter/aux_/preprocessor/no_perfect_forwarding_end.hpp>.

<boost/parameter/preprocessor.hpp>:

  • Move voidstar type definition to <boost/parameter/aux_/void.hpp>.
  • Move support metafunctions to their own header files in directory boost/parameter/aux_/pp_impl.
  • Move BOOST_PARAMETER_IS_NULLARY macro definition to <boost/parameter/aux_/preprocessor/is_nullary.hpp>.
  • Move other support macros to header files in directory boost/parameter/aux_/preprocessor/impl.

<boost/parameter/aux_/cast.hpp>

  • Move boost::parameter::aux::use_default_tag type definition to <boost/parameter/aux_/use_default_tag.hpp>.
  • Move BOOST_PARAMETER_FUNCTION_CAST macro definition and its supporting contents to <boost/parameter/aux_/preprocessor/impl/function_cast.hpp> but leave this header as a forwarding header.

<boost/parameter/aux_/parenthesized_type.hpp> currently defines the support macro BOOST_PARAMETER_PARENTHESIZED_TYPE for <boost/parameter/preprocessor.hpp>, so move its contents to <boost/parameter/aux_/preprocessor/impl/parenthesized_type.hpp> but leave this header as a forwarding header.

Merge pull request #2 from boostorg/develop
Merge with boostorg/parameter
Restructure code
<boost/parameter/aux_/arg_list.hpp>:
Move forward declarations to their own header files.

<boost/parameter/aux_/tagged_argument.hpp>:
* Move boost::parameter::aux::tagged_argument_base, boost::parameter::aux::is_tagged_argument_aux, and boost::parameter::aux::is_tagged_argument to <boost/parameter/aux_/is_tagged_argument.hpp>
* Remove unnecessary forward declarations.

<boost/parameter/parameters.hpp>:
* Move support metafunction definitions to their own header files in directory boost/parameter/aux_/pack.
* Move support macro definitions to <boost/parameter/aux_/preprocessor/no_perfect_forwarding_begin.hpp> and their corresponding #undef statements to <boost/parameter/aux_/preprocessor/no_perfect_forwarding_end.hpp>.

<boost/parameter/aux_/overloads.hpp> works at the preprocessor level, so move to <boost/parameter/aux_/preprocessor/overloads.hpp>.

<boost/parameter/preprocessor.hpp>:
* Move voidstar type definition to <boost/parameter/aux_/void.hpp>.
* Move support metafunctions to their own header files in directory boost/parameter/aux_/pp_impl.
* Move support macros to header files in directory boost/parameter/aux_/preprocessor/impl.
Restructure code
<boost/parameter/name.hpp>:
* Move support metafunction definitions and BOOST_PARAMETER_TAG_PLACEHOLDER_TYPE macro definition to <boost/parameter/aux_/name.hpp>.
* Move BOOST_PARAMETER_IS_BINARY macro definition to <boost/parameter/aux_/preprocessor/is_binary.hpp>.
* Use BOOST_PARAMETER_TAG_PLACEHOLDER_TYPE macro.
Update keyword.hpp
Add #include statement for forward declaration.
@eldiener

This comment has been minimized.

Copy link
Collaborator

commented Oct 24, 2018

Some of these constructs which are part of the public interface, such as boost::parameter::required, boost::parameter::optional, and boost::parameter::deduced, are documented as being in boost/parameter/parameters.hpp. If they are moved tot their own header files do we not need to document this ? We do not have to document anything which is not part of the public interface, so I am not worried about all the support constructs which are internal to Parameter.

Update documentation
Document that boost::parameter::required, boost::parameter::optional, and boost::parameter::deduced are defined in their own header files, which are in turn #included by <boost/parameter/parameters.hpp>.
@CromwellEnage

This comment has been minimized.

Copy link
Collaborator Author

commented Oct 24, 2018

I've updated the reference documentation to reflect the structural changes. The additional statements that boost/parameter/parameters.hpp includes these header files (not directly, but by including other header files that in turn include them) should serve as a reassurance that the changes won't break existing code.

@eldiener

This comment has been minimized.

Copy link
Collaborator

commented Oct 24, 2018

Looks good. I am waiting for the CI tests to finish and then will Merge as long as no new problems show up there.

@eldiener eldiener merged commit 3eb4c31 into boostorg:develop Oct 25, 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:more_modular branch Oct 25, 2018

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.