1 // -*- C++ -*- 2 #pragma GCC system_header 3 4 using size_t = decltype(sizeof(42)); new(size_t,void * p)5inline void * operator new (size_t, void *p) noexcept { return p; } 6 7 template<typename _Up, typename... _Args> 8 void construct1(_Up * __p,_Args...__args)9construct1(_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)15construct2(_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