#ifndef LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_ADD_LVALUE_REFERENCE_H
#define LLVM_LIBC_SRC___SUPPORT_CPP_TYPE_TRAITS_ADD_LVALUE_REFERENCE_H
#include "src/__support/CPP/type_traits/type_identity.h"
#include "src/__support/macros/config.h"
namespace LIBC_NAMESPACE_DECL {
namespace cpp {
namespace detail {
template <class T>
auto try_add_lvalue_reference(int) -> cpp::type_identity<T &>;
template <class T>
auto try_add_lvalue_reference(...) -> cpp::type_identity<T>;
}
template <class T>
struct add_lvalue_reference : decltype(detail::try_add_lvalue_reference<T>(0)) { … };
add_lvalue_reference_t;
}
}
#endif