//===----------------------------------------------------------------------===//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//

// UNSUPPORTED: c++03, c++11, c++14, c++17
// UNSUPPORTED: libcpp-has-no-incomplete-format

// <format>

// template<class Context, class... Args>
//   basic_format_args(format-arg-store<Context, Args...>) -> basic_format_args<Context>;

#include <concepts>
#include <format>

#include "test_macros.h"

void test() {
  // Note the Standard way to create a format-arg-store is by using make_format_args.
  static_assert(std::same_as<decltype(std::basic_format_args(std::make_format_args(42))),
                             std::basic_format_args<std::format_context>>);

#ifndef TEST_HAS_NO_WIDE_CHARACTERS
  static_assert(std::same_as<decltype(std::basic_format_args(std::make_wformat_args(42))),
                             std::basic_format_args<std::wformat_context>>);

#endif
}
