Commit Graph

182 Commits

Author SHA1 Message Date
Cromwell D. Enage
75e9295748
Merge pull request #76 from Mike-Devel/min_cmake
Add minimal cmake support
2019-04-30 08:54:02 -04:00
CromwellEnage
0bb3ba54da Fix compiler errors for MSVC-14.2 2019-04-29 18:07:43 -04:00
Mike Dev
3ced1d1ac8 [CMake] Remove unnecessary dependency for test 2019-04-15 17:12:12 +02:00
Mike Dev
7812625cdd [CMake] Allow running of (some) unit tests from cmake 2019-04-15 11:51:06 +02:00
CromwellEnage
e0b16eb3e9 Improve support for parameter-dependent return types of functions generated by preprocessor macros
The code generation macros are supposed to support parameter-dependent return types, but it turns out that they currently don't really do that.  This commit fixes the issue.
2019-02-02 09:31:15 -05:00
CromwellEnage
7b2d3f6e41 Reinstate MP11 support for ArgumentPacks
Argument packs qualify as Boost.MP11-style maps as well as MPL sequences.  These maps store the keyword tag types as their keys.
2019-01-21 01:14:59 -05:00
CromwellEnage
6bce8119bf Disable MP11 usage for affected tests 2019-01-19 17:42:41 -05:00
CromwellEnage
fe73177b6c Modify MP11 support
These are breaking changes to PR #66.

* Remove are_tagged_arguments_mp11 and is_argument_pack_mp11.  They were reviewed as redundant.
* Remove MP11 support for ArgumentPack models for now.  (This feature relied on templates that were not supposed to be specialized.)
2019-01-19 15:15:20 -05:00
CromwellEnage
fb5683766b Remove dependency on Boost.TTI
Replace BOOST_TTI_DETAIL_NULLPTR with BOOST_PARAMETER_AUX_PP_NULLPTR.
2019-01-17 15:14:48 -05:00
CromwellEnage
69db508992 Support Boost.MP11 when feasible
* Add are_tagged_arguments_mp11 and is_argument_pack_mp11 metafunctions when Boost.MP11 is usable.
* Predicate requirements can be encoded as Boost.MP11-style quoted metafunctions as well as by MPL binary metafunction classes.
* Argument packs qualify as Boost.MP11-style lists as well as MPL sequences.
* Internal components and test programs use Boost.MP11 and C++11 type traits vice MPL and Boost.TypeTraits when Boost.MP11 is usable.
2019-01-16 12:03:44 -05:00
CromwellEnage
a2f68bea6c Update test suite
* Add "test/literate/parameter-enabled-function-call-operators0.cpp" to test suite under alias 'parameter_literate_tests'.
* Add compose() test routine to "test/compose.cpp"
* Replace LIBS_PARAMETER_TEST_COMPILE_FAILURE_MSVC with LIBS_PARAMETER_TEST_COMPILE_FAILURE_VENDOR_SPECIFIC in case compilers other than MSVC start exhibiting errant behavior.
* Adjust for the fact that BOOST_PARAMETER_MAX_ARITY is defined regardless of whether or not BOOST_PARAMETER_HAS_PERFECT_FORWARDING is defined.
* Use minimal file headers to #include vice <boost/parameter.hpp>.
2019-01-16 03:21:13 -05:00
Edward Diener
515c80fad5
Merge pull request #62 from CromwellEnage/test_deduced_unmatched_arg
Update deduced_unmatched_arg.cpp
2019-01-15 23:09:51 -05:00
Edward Diener
b531b64f7b
Merge pull request #61 from CromwellEnage/feature_compose_max_arity
Add configuration macro BOOST_PARAMETER_COMPOSE_MAX_ARITY
2019-01-15 23:08:22 -05:00
Edward Diener
1fde7ae869
Merge pull request #60 from CromwellEnage/test_fix
Fix typos
2019-01-15 23:07:46 -05:00
Edward Diener
cb267e5125
Merge pull request #58 from CromwellEnage/test_preprocessor_guards
Update BOOST_PARAMETER_*_ARITY preprocessor guard statements
2019-01-15 23:07:17 -05:00
CromwellEnage
c465139bc2 Update deduced_unmatched_arg.cpp
* Normalize license wording.
* Add statements to #include header files that directly define components used in this test.
* Qualify by namespace vice using declarations.
2019-01-14 22:51:12 -05:00
CromwellEnage
e5337e2503 Add configuration macro BOOST_PARAMETER_COMPOSE_MAX_ARITY
Decouple the compose() function and the BOOST_PARAMETER_NO_SPEC_* code generation macros from BOOST_PARAMETER_MAX_ARITY for older compilers so their generated functions can take in more arguments.
2019-01-14 17:05:14 -05:00
CromwellEnage
f2083c84ec Fix typos 2019-01-14 16:55:16 -05:00
CromwellEnage
261819d9bb Update evaluate_category_16.cpp
* Update BOOST_PARAMETER_*_ARITY preprocessor guard statements.
* Use minimal header files to #include.
* Use namespace qualification
2019-01-14 14:46:20 -05:00
CromwellEnage
6451c94720 Update BOOST_PARAMETER_*_ARITY preprocessor guard statements 2019-01-14 14:43:08 -05:00
Edward Diener
cadc4ecbff
Merge pull request #55 from CromwellEnage/test_efficiency
Use minimal header file to #include
2019-01-14 12:53:36 -05:00
Edward Diener
7c9e79aa6e
Merge pull request #54 from CromwellEnage/test_singular
Move #include statement to correct place
2019-01-14 12:50:53 -05:00
Edward Diener
b20458faa0
Merge pull request #53 from CromwellEnage/test_max_arity_preproc_guards
Update BOOST_PARAMETER_*_ARITY preprocessor guard statements
2019-01-14 12:49:33 -05:00
Edward Diener
f28b14e686
Merge pull request #52 from CromwellEnage/feature_compose_and_macros
Add are_tagged_arguments<>, compose(), and code generation macros
2019-01-14 12:47:54 -05:00
Edward Diener
5c3dc99d82
Merge pull request #50 from CromwellEnage/workaround_gcc3_or_less
Add workarounds for GCC 3.x or earlier
2019-01-14 12:46:44 -05:00
Edward Diener
dab935934e
Merge pull request #45 from CromwellEnage/preprocessor_generated_overloads
Upgrade code generation macros
2019-01-14 12:35:37 -05:00
CromwellEnage
d5165a3388 Move #include statement to correct place 2019-01-13 22:58:46 -05:00
CromwellEnage
a9ee94a21b Use minimal header file to #include 2019-01-04 11:43:48 -05:00
CromwellEnage
af65130fa1 Update BOOST_PARAMETER_*_ARITY preprocessor guard statements
Adjust for the fact that BOOST_PARAMETER_MAX_ARITY is defined regardless of whether or not BOOST_PARAMETER_HAS_PERFECT_FORWARDING is defined.
2019-01-04 11:40:07 -05:00
CromwellEnage
a876a4b400 Move #include statement to correct place 2019-01-04 11:32:46 -05:00
CromwellEnage
016f949eba Add are_tagged_arguments<>, compose(), and code generation macros
* Add variadic metafunction boost::parameter::are_tagged_arguments to help improve overload resolution capabilities.  Used by compose() and the new BOOST_PARAMETER_NO_SPEC_* code generation macros.
* Add variadic function template compose() which takes in named arguments and returns them in an argument pack.
* Add code generation macros BOOST_PARAMETER_BASIC_FUNCTION_CALL_OPERATOR, BOOST_PARAMETER_BASIC_CONST_FUNCTION_CALL_OPERATOR, BOOST_PARAMETER_NO_SPEC_FUNCTION, BOOST_PARAMETER_NO_SPEC_MEMBER_FUNCTION, BOOST_PARAMETER_NO_SPEC_CONST_MEMBER_FUNCTION, BOOST_PARAMETER_NO_SPEC_FUNCTION_CALL_OPERATOR, BOOST_PARAMETER_NO_SPEC_CONST_FUNCTION_CALL_OPERATOR, BOOST_PARAMETER_NO_SPEC_CONSTRUCTOR, and BOOST_PARAMETER_NO_SPEC_NO_BASE_CONSTRUCTOR.
2019-01-04 08:39:53 -05:00
CromwellEnage
fe34412116 Add workarounds for GCC 3.x or earlier
* Fix compiler error: base `boost::reference_wrapper<int>' with only non-default constructor in class without a constructor.
* Ignore normalized_argument_types test failures.
2019-01-04 03:57:15 -05:00
CromwellEnage
250de8367d Upgrade code generation macros
Enable preprocessor-generated function call operator overloads & overloads of the same name to coexist even with deduced arguments.  SFINAE required.
2019-01-01 20:12:13 -05:00
CromwellEnage
01be812580 Update literate tests and tutorial documentation
* Fix compiler failures showing up on regression test matrix due to void return type.
* Fix gcc-3.4 failures showing up regression test matrix due to binding string literals to non-const references to char const*.
* Update tutorial documentation to match literate tests.
2019-01-01 05:27:18 -05:00
CromwellEnage
655fb40414 Fix mpl::has_key_impl<parameter::aux::arg_list_tag> specialization
<boost/parameter/aux_/arg_list.hpp>
* Use parameter::value_type vice mpl::find.

"test/compose.cpp"
* Test that mpl::has_key evaluates to mpl::false_ for keyword tags that are not in parameter::aux::arg_list.

"test/singular.cpp"
* Test that mpl::has_key evaluates to mpl::false_ for keyword tags that are not in parameter::aux::tagged_argument or parameter::aux::tagged_argument_rref.
2018-11-29 14:20:36 -05:00
Edward Diener
6a749bcfb1 Change to distinguish parameter_python_test further between 32 and 64 bit Windows builds. 2018-11-23 00:00:07 -05:00
CromwellEnage
4f776ec9cb Move boost::parameter::template_keyword to public interface
Also move BOOST_PARAMETER_TEMPLATE_KEYWORD macro definition to <boost/parameter/template_keyword.hpp>, but #include this new header file in <boost/parameter/name.hpp> for backward compatibility.
2018-11-21 11:51:12 -05:00
CromwellEnage
c65bbf50a3 Upgrade BOOST_PARAMETER_TEMPLATE_KEYWORD; improve documentation
<boost/parameter/aux_/template_keyword.hpp>
* Apply a modified version of David Abrahams' patch from <https://svn.boost.org/trac10/ticket/2793> which eliminates the need to wrap function types in boost::function or std::function instantiations.

"test/function_type_tpl_param.cpp"
* Demonstrate that keyword types generated by BOOST_PARAMETER_TEMPLATE_KEYWORD now store function types as-is without wrapping them in boost::function or std::function instantiations.

"doc/reference.rst"
"doc/html/reference.html"
* Add BOOST_PARAMETER_DISABLE_PERFECT_FORWARDING as a configuration macro.
* Mention by what libraries other macros which are not a part of Parameter itself are defined.
* Mention which non-Boost.Parameter macros can be altered to affect the Boost.Parameter configuration.
2018-11-21 05:48:14 -05:00
Edward Diener
b565d53bf8 Do not run python test for clang-linux under Windows. 2018-11-20 20:46:13 -05:00
CromwellEnage
53fa67da1c Define BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY as 0 by default
User library tests have been reporting numerous failures due to internal compiler errors that occur when perfect forwarding is unsupported.  Setting BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY to zero eliminates these failures.  By doing this in Boost.Parameter, we relieve user code of the burden of doing this in their end.  The trade-off is that our own tests need to define BOOST_PARAMETER_EXPONENTIAL_OVERLOAD_THRESHOLD_ARITY explicitly in order to take advantage of the benefits of not having to wrap boost::ref() or std::ref() around non-const lvalues.  As this was always a C++03 workaround, the change should be worth the trade-off.

On an unrelated note, Travis Cl just deprecated "sudo: false".  See <https://blog.travis-ci.com/2018-10-04-combining-linux-infrastructures>.
2018-11-20 08:51:32 -05:00
CromwellEnage
7f046f4782 Fix test/Jamfile.v2
s/<version>/<toolset-gcc:version>
2018-11-20 01:50:06 -05:00
CromwellEnage
aab40aafd0 Fix test/Jamfile.v2
Ensure unique test names across aliases.
2018-11-19 21:43:56 -05:00
CromwellEnage
9b8a995b56 Update test/Jamfile.v2
Mark python_test failures on mingw as expected.
2018-11-19 14:54:26 -05:00
CromwellEnage
0283ec60df Fix test suite
"test/Jamfile.v2"
* Rearrange aliases to enable turning off certain tests when they fail for specific compiler configurations
* Reinstate test-suite statement until an undeprecated version can be found.

".travis.yml"
"appveyor.yml"
* Remove specification of alias names
2018-11-19 08:44:56 -05:00
CromwellEnage
716ccb9d85 Rename aliases
Make clear that certain tests run only on certain compilers.
2018-11-17 13:04:24 -05:00
CromwellEnage
a93c420fc7 Fix Issue #31, Issue #32, Issue #33
* Change test/evaluate_category.cpp and test/preprocessor_eval_category.cpp so that the tests pass for msvc-8.0, msvc-9.0, msvc-10.0, and msvc-11.0.
* Change test/Jamfile.v2 so that the compose_fail test runs only for msvc-11.0.
* Ensure that file permissions for header and source files do not include execute.
2018-11-17 11:33:48 -05:00
Edward Diener
d5cd72d2fd Remove executable permissions. 2018-11-16 21:42:25 -05:00
Edward Diener
c8549fc46d Turn off python test for mingw(-64)/gcc 2018-11-16 14:32:16 -05:00
Edward Diener
f831585e63 Updated for msvc and particular tests. 2018-11-16 07:19:21 -05:00
Edward Diener
a195406157
Merge pull request #30 from CromwellEnage/tagged_argument_rref
Add missing boost::parameter::aux::tagged_argument_rref::operator[] overloads
2018-11-16 05:10:01 -05:00