#object #array #expressions #delete #destroy #created #create-destroy

cpp-like-new

一个库,允许您在Rust中以类似C++中使用new/delete表达式的类似方式创建/销毁对象。

1 个不稳定版本

0.1.0 2023年4月26日

#6 in #destroy

MIT/Apache

7KB
157 代码行(不含注释)

描述

  1. 支持通过new创建单个对象,以及通过delete销毁对象。
  2. 支持通过new创建数组对象,以及通过delete []销毁数组。
  3. 支持使用C++语法创建多维数组。
  4. 对于数组对象,如果初始化表达式少于创建的数组大小,则剩余元素将使用默认初始化。
  5. 请注意,本库中所有函数/宏均为unsafe(即在不可安全上下文/块中使用它们)。

如何使用此库

像C++一样创建单个对象

let ptr = new!{ i32 }; // with default initialization
let ptr_init = new!{ i32 {10} }; // with 10 as its initializer

// destroy the created objects
delete!{ ptr };  
delete!{ ptr_init }; 

创建数组对象

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]} };

// destroy the created objects
delete!{ [] arr};
delete!{ [] arr_init};
delete!{ [] mul_dim_arr};
delete!{ [] two_dim_arr};

无运行时依赖