[clang] [Clang][RFC] Intrododuce a builtin to determine the structure binding size (PR #131515)

Erich Keane via cfe-commits cfe-commits at lists.llvm.org
Mon Mar 17 06:41:23 PDT 2025


================
@@ -434,6 +434,37 @@ __datasizeof
 ``__datasizeof`` behaves like ``sizeof``, except that it returns the size of the
 type ignoring tail padding.
 
+.. _builtin_structured_binding_size-doc:
+
+__builtin_structured_binding_size (C++)
+---------------------------------------
+``__builtin_structured_binding_size`` returns the *structured binding size*
+([dcl.struct.bind]) of the type ``T`` (or unevaluated expression ``arg``)
----------------
erichkeane wrote:

I wonder how valid the expression form of this is.  The reason `sizeof` needs to take both is because C doesn't have `decltype`.  I quite dislike builtins that take expressions because they aren't as obvious that they are unevaluated, despite being in a `function call` syntax location.

https://github.com/llvm/llvm-project/pull/131515


More information about the cfe-commits mailing list