1// -*- C++ -*- 2//===----------------------------------------------------------------------===// 3// 4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 5// See https://llvm.org/LICENSE.txt for license information. 6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 7// 8//===----------------------------------------------------------------------===// 9 10#ifndef _LIBCPP___FUNCTIONAL_IS_TRANSPARENT 11#define _LIBCPP___FUNCTIONAL_IS_TRANSPARENT 12 13#include <__config> 14#include <type_traits> 15 16#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 17# pragma GCC system_header 18#endif 19 20_LIBCPP_BEGIN_NAMESPACE_STD 21 22#if _LIBCPP_STD_VER > 11 23 24template <class _Tp, class, class = void> 25struct __is_transparent : false_type {}; 26 27template <class _Tp, class _Up> 28struct __is_transparent<_Tp, _Up, __void_t<typename _Tp::is_transparent> > 29 : true_type {}; 30 31#endif 32 33_LIBCPP_END_NAMESPACE_STD 34 35#endif // _LIBCPP___FUNCTIONAL_IS_TRANSPARENT 36