1 // -*- C++ -*-
2 #pragma GCC system_header
3 
4 using size_t = decltype(sizeof(42));
new(size_t,void * p)5 inline void * operator new (size_t, void *p) noexcept { return p; }
6 
7 template<typename _Up, typename... _Args>
8 void
construct1(_Up * __p,_Args...__args)9 construct1(_Up* __p, _Args... __args)
10   noexcept(noexcept(::new((void *)__p) _Up(__args...)))
11 { ::new((void *)__p) _Up(__args...); }
12 
13 template<typename _Up, typename... _Args>
14 void
construct2(_Up * __p,_Args...__args)15 construct2(_Up* __p, _Args... __args)
16   noexcept(noexcept(::new((void *)__p) _Up(__args...)))
17 { ::new((void *)__p) _Up(__args...); }
18 
19 class Automatic1 {
20 public:
Automatic1(size_t bla)21   Automatic1(size_t bla) : Bla(bla) {};
22 
23 private:
24   size_t Bla;
25 };
26