xref: /llvm-project/libcxx/include/__new/placement_new_delete.h (revision 9474e09459189fbed30f329a669f9c14979c5367)
1*9474e094SLouis Dionne //===----------------------------------------------------------------------===//
2*9474e094SLouis Dionne //
3*9474e094SLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*9474e094SLouis Dionne // See https://llvm.org/LICENSE.txt for license information.
5*9474e094SLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*9474e094SLouis Dionne //
7*9474e094SLouis Dionne //===----------------------------------------------------------------------===//
8*9474e094SLouis Dionne 
9*9474e094SLouis Dionne #ifndef _LIBCPP___NEW_PLACEMENT_NEW_DELETE_H
10*9474e094SLouis Dionne #define _LIBCPP___NEW_PLACEMENT_NEW_DELETE_H
11*9474e094SLouis Dionne 
12*9474e094SLouis Dionne #include <__config>
13*9474e094SLouis Dionne #include <__cstddef/size_t.h>
14*9474e094SLouis Dionne 
15*9474e094SLouis Dionne #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
16*9474e094SLouis Dionne #  pragma GCC system_header
17*9474e094SLouis Dionne #endif
18*9474e094SLouis Dionne 
19*9474e094SLouis Dionne #if defined(_LIBCPP_ABI_VCRUNTIME)
20*9474e094SLouis Dionne #  include <new.h>
21*9474e094SLouis Dionne #else
22*9474e094SLouis Dionne [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void*
23*9474e094SLouis Dionne operator new(std::size_t, void* __p) _NOEXCEPT {
24*9474e094SLouis Dionne   return __p;
25*9474e094SLouis Dionne }
26*9474e094SLouis Dionne [[__nodiscard__]] inline _LIBCPP_HIDE_FROM_ABI _LIBCPP_CONSTEXPR_SINCE_CXX26 void*
27*9474e094SLouis Dionne operator new[](std::size_t, void* __p) _NOEXCEPT {
28*9474e094SLouis Dionne   return __p;
29*9474e094SLouis Dionne }
30*9474e094SLouis Dionne inline _LIBCPP_HIDE_FROM_ABI void operator delete(void*, void*) _NOEXCEPT {}
31*9474e094SLouis Dionne inline _LIBCPP_HIDE_FROM_ABI void operator delete[](void*, void*) _NOEXCEPT {}
32*9474e094SLouis Dionne #endif
33*9474e094SLouis Dionne 
34*9474e094SLouis Dionne #endif // _LIBCPP___NEW_PLACEMENT_NEW_DELETE_H
35