Size: a a a

2020 July 31

MZ

Max Ziua in pro.cxx
Не только для pimpl юзается
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in pro.cxx
Max Ziua
Нет, я про умный указатель для стековой переменной
Зачем тебе умный указатель для стековой переменной, если она и без тебя почиститься
источник

AS

Anatoly Shirokov in pro.cxx
Max Ziua
Нет, я про умный указатель для стековой переменной
а зачем unique_ptr для автоматической переменной?
источник

АК

Александр Караев... in pro.cxx
Max Ziua
Можете подкинуть ссылку на имплементацию unique_ptr на стеке? Не могу найти по поиску в чате
template <class T>
class stack_unique_ptr {
 T value;
};

добавить интерфейс по вкусу
источник

MZ

Max Ziua in pro.cxx
Anatoly Shirokov
а зачем unique_ptr для автоматической переменной?
Для прозрачной имплементации пула, чтобы не нужно было вручную возвращать значение в пул
источник

MZ

Max Ziua in pro.cxx
Да-да, я всегда могу навелосипедить, спасибо
источник

MZ

Max Ziua in pro.cxx
Но не хочется
источник

MZ

Max Ziua in pro.cxx
Max Ziua
Для прозрачной имплементации пула, чтобы не нужно было вручную возвращать значение в пул
Тип в конструкторе вызывается кастомный делитер, который возвращает значение в пул
источник

SH

Serhii Herashchenko in pro.cxx
Max Ziua
Тип в конструкторе вызывается кастомный делитер, который возвращает значение в пул
*деструкторе?
источник

MZ

Max Ziua in pro.cxx
Serhii Herashchenko
*деструкторе?
Еп
источник

S

Spoonson in pro.cxx
Max Ziua
Для прозрачной имплементации пула, чтобы не нужно было вручную возвращать значение в пул
так если есть аллокатор на стеке уже, то просто засунуть в unique_ptr аллокатор надо
источник

MV

Mikhail Voronov in pro.cxx
magras
Моя гипотеза заключалась в том, что речь идет о выражении void *ret = *bin->stack_head; и что в случае success = false было бы необязательно дожидаться загрузки его в кеш. Но это не верно, так как в функции cache_bin_alloc_impl используется значение stack_head в других местах и оно должно уже быть в кеше. Так что у меня теперь тоже нет идей. =(
во всех других местах этой функции stack_head используется без разыменования
источник

m

magras in pro.cxx
Mikhail Voronov
во всех других местах этой функции stack_head используется без разыменования
Для проверки ret == NULL тоже не требуется его разыменовывать. Я говорил о двух разыменованиях необходимых для того чтобы получить stack_head.
источник

m

magras in pro.cxx
Mikhail Voronov
во всех других местах этой функции stack_head используется без разыменования
Ох, черт. Теперь я вижу.
источник

MV

Mikhail Voronov in pro.cxx
ну т.е. то, что Вы написали в том комментарии, afaik верно
источник

m

magras in pro.cxx
Mikhail Voronov
ну т.е. то, что Вы написали в том комментарии, afaik верно
Спасибо. У меня все еще не достаточно квалификации, чтобы с уверенностью сказать что суть этой оптимизации именно в том что я написал, но выглядит похоже на правду.
источник

f

fulcanelly in pro.cxx
а есть в плюсах что-то типа structured binding declaration
только чтобы в variadic массив расскладывало?
источник

f

fulcanelly in pro.cxx
fulcanelly
а есть в плюсах что-то типа structured binding declaration
только чтобы в variadic массив расскладывало?
типа есть
struct hdata {
   string name;
   int age;
}
и чтобы я потом мог это передать в
template<class ...A>
void fun(A... args)
;
источник

f

fulcanelly in pro.cxx
как это можно сделать?
источник

АК

Александр Караев... in pro.cxx
std::apply на tuple-like типах
источник