From 167881b7b89547af65278a8ad5ecfbcf876f4421 Mon Sep 17 00:00:00 2001 From: "A. Jiang" Date: Tue, 24 Mar 2026 12:09:35 +0800 Subject: [PATCH] [expr.dynamic.cast] Replace "runtime check" with "dynamic check" Since C++20, such check can happen in constant evaluation, so it's no longer correct to call it "runtime check". This PR changes the phrase to "dynamic check", which is consistent with - the "dynamic" in `dynamic_cast`, and - P3953 - changing `runtime_format` to `dynamic_format`. --- source/expressions.tex | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/expressions.tex b/source/expressions.tex index d113667e6d..8458b964a3 100644 --- a/source/expressions.tex +++ b/source/expressions.tex @@ -4517,12 +4517,12 @@ \pnum If \tcode{T} is ``pointer to \cv{} \keyword{void}'', then the result is a pointer to the most derived object pointed to by \tcode{v}. -Otherwise, a runtime check is applied to see if the object pointed or +Otherwise, a dynamic check is applied to see if the object pointed or referred to by \tcode{v} can be converted to the type pointed or referred to by \tcode{T}. \pnum -Let \tcode{C} be the class type to which \tcode{T} points or refers. The runtime +Let \tcode{C} be the class type to which \tcode{T} points or refers. The dynamic check logically executes as follows: \begin{itemize} @@ -4539,7 +4539,7 @@ \tcode{C} subobject of the most derived object. \item Otherwise, the -runtime check \term{fails}. +dynamic check \term{fails}. \end{itemize} \pnum @@ -4563,7 +4563,7 @@ ap = dynamic_cast(bp); // fails bp = dynamic_cast(ap); // fails ap = dynamic_cast(&d); // succeeds - bp = dynamic_cast(&d); // ill-formed (not a runtime check) + bp = dynamic_cast(&d); // ill-formed (not a dynamic check) } class E : public D, public B { };