================ @@ -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``) +passed as argument. + +This is equivalent to the size of the pack ``p`` in ``auto&& [...p] = arg;``. +If the argument is not destructurable (ie not a builtin array, builtin SIMD vector, +builtin complex, *tuple-like* type or destructurable class type), +``__builtin_structured_binding_size(T)`` is not a valid expression +(``__builtin_structured_binding_size`` is SFINEA-friendly). ---------------- erichkeane wrote:
```suggestion (``__builtin_structured_binding_size`` is SFINAE-friendly). ``` https://github.com/llvm/llvm-project/pull/131515 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits