Вы можете поместить эти данные в struct
, а затем использовать ключевое слово new
в этой структуре.
T* copy_to_heap(T)(T value) {
// create the struct with a value inside
struct S {
T value;
}
// new it and copy the value over to the new heap memory
S* s = new S;
s.value = value;
// return the pointer to the value
return &(s.value);
}
void main() {
// example use with a delegate:
auto dg = copy_to_heap(() { import std.stdio; writeln("test"); });
(*dg)();
}
Это предполагает, что у вас уже есть значение для копирования, но это, вероятно, проще икак бы ты это ни делал. Но вы также можете настроить код для удаления этого требования, если хотите (возможно, просто передайте typeof.init, например).