#### Description
1. Support to create a single object through `new`, as well as, destroy the object through `delete`
2. Support to create an array object through `new`, as well as, destroy the array through `delete []`
3. Support multiple dimension array with the syntax of C++
4. For an array object, if the initializer expressions are less than the size of the created array, the remaining elements are default initialized
5. Notice that all functions/macros in this library are `unsafe`(i.e. use them in unsafe context/block)
#### How to use this library
> Create a single object like the way in C++
````rust
let ptr = new!{ i32 }; let ptr_init = new!{ i32 {10} };
delete!{ ptr };
delete!{ ptr_init };
````
> Create an array object
````rust
let size = 2;
let arr = new!{ i32[size] };
let arr_init = new!{ i32[size]{0,1}};
let mul_dim_arr = new!{ i32[size][3][4] };
let two_dim_arr = new!{ i32[size][3] {[0,0,0], [1,2,3]} };
delete!{ [] arr};
delete!{ [] arr_init};
delete!{ [] mul_dim_arr};
delete!{ [] two_dim_arr};
````