36 lines · c
1//===----------------------------------------------------------------------===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef _LIBCPP___NEW_ALIGN_VAL_T_H10#define _LIBCPP___NEW_ALIGN_VAL_T_H11 12#include <__config>13#include <__cstddef/size_t.h>14 15#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)16# pragma GCC system_header17#endif18 19// <vcruntime_exception.h> defines its own std::align_val_t type,20// which we use in order to be ABI-compatible with other STLs on Windows.21#if _LIBCPP_HAS_LIBRARY_ALIGNED_ALLOCATION && defined(_LIBCPP_ABI_VCRUNTIME)22# include <vcruntime_new.h>23#endif24 25_LIBCPP_BEGIN_UNVERSIONED_NAMESPACE_STD26#if _LIBCPP_HAS_LIBRARY_ALIGNED_ALLOCATION && !defined(_LIBCPP_ABI_VCRUNTIME)27# ifndef _LIBCPP_CXX03_LANG28enum class align_val_t : size_t {};29# else30enum align_val_t { __zero = 0, __max = (size_t)-1 };31# endif32#endif33_LIBCPP_END_UNVERSIONED_NAMESPACE_STD34 35#endif // _LIBCPP___NEW_ALIGN_VAL_T_H36