summaryrefslogtreecommitdiff
path: root/libcxx/test/support/test_basic_format_arg.h
blob: d8547d34b6db43686b7fbbbd25cdf43a074cda0d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//===----------------------------------------------------------------------===//
// 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
//
//===----------------------------------------------------------------------===//

#include <concepts>
#include <format>

#include "test_macros.h"

/// Returns whether the basic_format_arg contains a type T with the expected value.
template <class Context, class T>
bool test_basic_format_arg(std::basic_format_arg<Context> arg, T expected) {
  return std::visit_format_arg(
      [expected](auto a) {
        if constexpr (std::same_as<decltype(a), T>)
          return a == expected;
        else
          return false;
      },
      arg);
}