9#ifndef LLVM_SUPPORT_FORMATVARIADICDETAILS_H
10#define LLVM_SUPPORT_FORMATVARIADICDETAILS_H
33 !std::is_same_v<llvm::Error, std::remove_cv_t<T>>,
34 "llvm::Error-by-value must be wrapped in fmt_consume() for formatv");
38 using DecayedT = std::decay_t<T>;
43 using MemberFormatCheck =
decltype(std::declval<U>().format(
44 std::declval<llvm::raw_ostream &>(), std::declval<llvm::StringRef>()));
48 using StreamCheck = std::is_same<decltype(std::declval<llvm::raw_ostream &>()
49 << std::declval<U>()),
62 "type has no format provider");
This file contains library features backported from future STL versions.
Lightweight error class with error context and mandatory checking.
Represent a constant reference to a string, i.e.
An efficient, type-erasing, non-owning reference to a callable.
This class implements an extremely fast bulk output stream that can only output to a stream.
function_ref< void(llvm::raw_ostream &, StringRef)> FormatFunctorRef
FormatFunctor(T &&) -> FormatFunctor< T >
This is an optimization pass for GlobalISel generic memory operations.
typename detail::detector< void, Op, Args... >::value_t is_detected
Detects if a given trait holds for some set of arguments 'Args'.
Implement std::hash so that hash_code can be used in STL containers.