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
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 ]
;