Как инкапсулировать существующий массив с помощью phobos std.range D2

Я хотел бы инкапсулировать существующий массив данных (созданный Python Numpy Lib) в массив, подобный объекту на языке D2... без необходимости копировать данные массива... Я уже использую Python cTypes Lib для вызова DLL, передача длин массивов и указателей данных. Но я все еще копирую данные массива, чтобы поместить их в собственный массив D2. Похоже, что можно не копировать данные массива, используя класс std.range библиотеки phobos. Этот шаблон инкапсуляции массива был бы довольно распространенным... Я новичок как в D, так и в этой абстракции класса диапазона. ... Было бы здорово иметь пример кода D2 о том, как это будет сделано.


person Peter Li    schedule 15.01.2012    source источник


Ответы (1)


Вы можете разрезать указатель. Эта операция вернет массив D:

int *p = /*some initializer*/;
int[] a = p[0..N];
person Maksim Zholudev    schedule 15.01.2012