[all-commits] [llvm/llvm-project] 606e28: [libc++][format] Use forwarding references.

mordante via All-commits all-commits at lists.llvm.org
Sun Jul 10 08:19:43 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 606e280811f2e17dd3561968139873857dc0a6f8
      https://github.com/llvm/llvm-project/commit/606e280811f2e17dd3561968139873857dc0a6f8
  Author: Mark de Wever <koraq at xs4all.nl>
  Date:   2022-07-10 (Sun, 10 Jul 2022)

  Changed paths:
    M libcxx/docs/ReleaseNotes.rst
    M libcxx/docs/Status/Cxx20Papers.csv
    M libcxx/docs/Status/Cxx2bIssues.csv
    M libcxx/include/__format/format_arg.h
    M libcxx/include/__format/format_arg_store.h
    M libcxx/include/format
    M libcxx/test/std/utilities/format/format.arguments/format.arg.store/make_format_args.pass.cpp
    M libcxx/test/std/utilities/format/format.arguments/format.arg.store/make_wformat_args.pass.cpp
    A libcxx/test/std/utilities/format/format.functions/P2418.pass.cpp
    M libcxx/test/std/utilities/format/format.functions/format.verify.cpp
    M libcxx/test/std/utilities/format/format.functions/format_tests.h

  Log Message:
  -----------
  [libc++][format] Use forwarding references.

This implements a not accepted LWG issue. Not doing so would require
integral types to use the handle class instead of being directly stored
in the basic_format_arg.

The previous code used `std::forward` in places where it wasn't required
by the Standard. These are now removed.

Implements:
- P2418R2 Add support for std::generator-like types to std::format
- LWG 3631 basic_format_arg(T&&) should use remove_cvref_t<T> throughout

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D127570




More information about the All-commits mailing list