172 похожих чатов

Здравствуйте 👋 А есть какой-то крейт или какая-то принятая реализация вот

такого?

pub fn do_static<T>(val: T) -> &'static T {
let val = Box::new(val);
let res: &T = val.as_ref();
let res = unsafe { std::mem::transmute::<&T, &'static T>(res) };
mem::forget(val);
res
}

10 ответов

7 просмотров

Box::new().leak()

Stanislav-Sagan Автор вопроса
Пух
Box::new().leak()

Нима там leak ((

Victor
Box::leak(val)

О, а зачем так?

Пух
О, а зачем так?

потому что бокс это смартпоинтер с дерефом

Stanislav-Sagan Автор вопроса
Пух
О, а зачем так?

А есть какой-то тип данных чтоб оборачивать такое? к примеру Static<MyType> И чтоб он работал как Arc или Box. Ну то есть все методы можно было бы дергать из MyType даже если оно в обертке.. Просто я так думаю писать везде &'static MyType Не очень то и красиво... Static<MyType> было бы как-то красивее

Stanislav-Sagan Автор вопроса
red75prime
type Static<T> = &'static T;

АХахахахахааахахахаа

Stanislav-Sagan Автор вопроса
Victor
impl Deref

А, точно, спасибо

Похожие вопросы

Обсуждают сегодня

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
Заметил в ghci 9.4.8: > :t (<*>) @((->)_) (<*>) @((->)_) :: (w -> (a -> b)) -> (w -> a) -> w -> b Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, ил...
Михаил
13
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Any electron dev here?
Sayanth Tezro
12
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Кто-нибудь знает почему SPM клонирует репо целиком? Некоторые репы просто огромные, как та же swift-syntax которая нужна для использования макросов. Сначала подумал, что это...
iMike
6
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Привет. Я верно понимаю, что в определении класса Монад m — зафиксирован (к тому же поскольку это моноид в категории эндофункторов). Т.е. используя байнд я не могу перемещать...
Arseny
5
Карта сайта