diff --git a/doc/headers.html b/doc/headers.html index 7df8cb0..b26fb96 100644 --- a/doc/headers.html +++ b/doc/headers.html @@ -80,6 +80,7 @@
  • facilities.hpp
  • facilities/
  • apply.hpp
  • +
  • check_empty.hpp
  • empty.hpp
  • expand.hpp
  • identity.hpp
  • diff --git a/doc/ref.html b/doc/ref.html index 749e881..e3f78b2 100644 --- a/doc/ref.html +++ b/doc/ref.html @@ -45,6 +45,7 @@
  • BOOL
  • CAT
  • +
  • CHECK_EMPTY
  • COMMA
  • COMMA_IF
  • COMPL
  • diff --git a/doc/ref/variadic_opt.html b/doc/ref/variadic_opt.html index d8c425a..7057cbc 100644 --- a/doc/ref/variadic_opt.html +++ b/doc/ref/variadic_opt.html @@ -16,6 +16,19 @@ Expands to 1 if the __VA_OPT__ construct is supported, otherwise expands to 0.
    None
    +

    Remarks

    +
    + This macro only returns 1 if the compiler is compiling at its own C++20 level and + __VA_OPT__ is supported. It is possible for a compiler to support the __VA_OPT__ + construct when not compiling at its own C++20 level, but this macro will return + 0 in that case even if __VA_OPT__ is normally supported for that level. The reason + for this is that such a compiler may have a compiler switch, enforcing a strict + adherence to a particular C++ standard level, which gives a warning or an error + if __VA_OPT__ is specified below the C++20 level, and the preprocessor library + wants to avoid that happening. Therefore the macro will only test to see whether + or not __VA_OPT__ is supported at the C++20 level, while otherwise always returning + 0 for all lesser C++ standard levels. +

    Requirements

    Header:  <boost/preprocessor/variadic/opt.hpp>
    diff --git a/test/Jamfile.v2 b/test/Jamfile.v2 index 51b6b1c..811e4e2 100644 --- a/test/Jamfile.v2 +++ b/test/Jamfile.v2 @@ -211,6 +211,7 @@ alias preprocessor_isempty : : alias preprocessor_isempty : [ compile isempty.cpp ] + [ compile checkempty.cpp ] [ compile-fail isempty_variadic_standard_failure.cpp : BOOST_PP_VARIADICS=1 ] [ compile-fail isempty_variadic_standard_failure2.cpp : BOOST_PP_VARIADICS=1 ] ;