/* * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ struct pod { int a; }; struct cpplike { int a; int b; pod c; cpplike() : a(10), b(2) {} cpplike(int a, int b) : a(a), b(b) {} }; void test() { auto *i = new int(2); auto *i_a = new int[10]; auto *p = new pod; auto *p_a = new pod[10]; auto *c = new cpplike(1, 2); auto *c_a = new cpplike[10]; delete i; delete[] i_a; delete p; delete[] p_a; delete c; delete[] c_a; } // This isn't exported quite right yet void test_c11() { auto *i = new int[3]{1, 2, 3}; auto *c = new cpplike{1, 2}; auto *c_a = new cpplike[4]{{1, 2}, {3, 4}, {5, 6}}; // initializer list is one // too short } void *operator new(unsigned long size, void *ptr, void *ptr2) noexcept { return ptr2; }; void test_placement(void *ptr) { int i = 1; auto *p = new (ptr, &i) pod; }