+Although the standard @code{assert} macro is a runtime test, C11
+specifies a builtin @code{_Static_assert (@var{V},
+@var{STRING-LITERAL})}, its @file{assert.h} header has a similar macro
+named @code{static_assert}, and C++11 has a similar
+@code{static_assert} builtin. These builtins and macros differ
+from @code{verify} in two major ways. First, they can also be used
+within a @code{struct} or @code{union} specifier, in place of an
+ordinary member declaration. Second, they require the programmer to
+specify a compile-time diagnostic as a string literal.
+
+The @file{verify.h} header defines one more macro, @code{assume
+(@var{E})}, which expands to an expression of type @code{void}
+that causes the compiler to assume that @var{E} yields a nonzero
+value. @var{E} should be a scalar expression, and should not
+have side effects; it may or may not be evaluated. The behavior is
+undefined if @var{E} would yield zero. The main use of @code{assume}
+is optimization, as the compiler may be able to generate better code
+if it assumes @var{E}. For best results, @var{E} should be simple
+enough that a compiler can determine that it has no side effects: if
+@var{E} calls an external function or accesses volatile storage the
+compiler may not be able to optimize @var{E} away and @code{assume
+(@var{E})} may therefore slow down the program.
+
+Here are some example uses of these macros.