Date
2021-06-07.16:58:04
Message id
11909

Content

Proposed resolution:

This wording is relative to N4885.

  1. Modify [format.syn], header <format> synopsis, as indicated:

    […]
    // [format.arg.store], class template format-arg-store
    template<class Context, class... Args> structclass format-arg-store; // exposition only
    
    template<class Context = format_context, class... Args>
      format-arg-store<Context, Args...>
        make_format_args(const Args&... fmt_args);
    […]
    
  2. Modify [format.arg.store] as indicated:

    namespace std {
      template<class Context, class... Args>
      structclass format-arg-store { // exposition only
        array<basic_format_arg<Context>, sizeof...(Args)> args; // exposition only
      };
    }
    

    -1- An instance of format-arg-store stores formatting arguments.

    template<class Context = format_context, class... Args>
      format-arg-store<Context, Args...> make_format_args(const Args&... fmt_args);
    

    -2- Preconditions: The type typename Context::template formatter_type<Ti> meets the Formatter requirements ([formatter.requirements]) for each Ti in Args.

    -3- Returns: An object of type format-arg-store<Context, Args...> whose args data member is initialized with {basic_format_arg<Context>(fmt_args)...}.