https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108053

            Bug ID: 108053
           Summary: std::visit_format_arg should hide __int128 and other
                    extensions behind a handle
           Product: gcc
           Version: 13.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: libstdc++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: redi at gcc dot gnu.org
  Target Milestone: ---

As an extension we store some additional types directly in the basic_format_arg
type, rather than indirection through a handle type. But this is observable to
users because std::visit_format_arg is called with the stored type.

We should have an internal __visit_format_arg which visits the real stored
type, and then a user-facing std::visit_format_arg which only visits the types
that the standard says should be there. The other types should be wrapped in a
temporary handle when passed to the visitor.

Reply via email to