// semmle-extractor-options: --c++17 namespace std { typedef unsigned long size_t; } void* operator new ( std::size_t count, void* ptr ); namespace placement_new { struct HasTwoArgCtor { int x; HasTwoArgCtor(int a, int b); }; template void make(T *ptr, Args&&... args) { ::new((void *)ptr) HasTwoArgCtor(args...); } void make_HasTwoArgCtor(HasTwoArgCtor *p) { make(p, 1, 2); } }