30 lines · c
1/*===---- __stddef_nullptr_t.h - Definition of nullptr_t -------------------===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 10/*11 * When -fbuiltin-headers-in-system-modules is set this is a non-modular header12 * and needs to behave as if it was textual.13 */14#if !defined(_NULLPTR_T) || \15 (__has_feature(modules) && !__building_module(_Builtin_stddef))16#define _NULLPTR_T17 18#ifdef __cplusplus19#if defined(_MSC_EXTENSIONS) && defined(_NATIVE_NULLPTR_SUPPORTED)20namespace std {21typedef decltype(nullptr) nullptr_t;22}23using ::std::nullptr_t;24#endif25#elif defined(__STDC_VERSION__) && __STDC_VERSION__ >= 202311L26typedef typeof(nullptr) nullptr_t;27#endif28 29#endif30