âDêšwu öBipci
Так ему не может быть реально нужно столько памяти. Там цифра заоблачная.
âDêšwu öBipci
Скорее всего. где-то типы сбились.
âDêšwu öBipci
Эхх. Печально.
âDêšwu öBipci
Т.е. это точно баг в мейкфайле, а не в моем окружении?
âDêšwu öBipci
Мб, линкер попробовать пересобрать?
Nikita
Мб, линкер попробовать пересобрать?
Под дебагом собери и подебажь
âDêšwu öBipci
âDêšwu öBipci
И что он мне даст?
Nikita
И что он мне даст?
Удобнее дебажить сможешь
âDêšwu öBipci
Все штатное. Впрочем, другую версию gcc тоже пробовал - то же самое.
âDêšwu öBipci
Удобнее дебажить сможешь
Я не особо умею дебажить сборку...
âDêšwu öBipci
Может, просто линкер попробовать обновить?
âDêšwu öBipci
А, это поздний трейс, вот как раз когда пробовал с другим. Родной то же самое выдавал.
âDêšwu öBipci
Слооожна. Без этого никак?
âDêšwu öBipci
Просто времени это сожрет кучу, а у меня его мало.
Andrew
Слооожна. Без этого никак?
Если проблема действительно в кривом мусоре по системе, то должна сработать сборка в чистом окружении. Я в этом не особо шарю, на ум из 100% вариантов приходит только виртуалка.
ed
Господа, есть вот такая глобальная функция которая призвана полностью заменить "new" template<typename T, typename... Args> T* Alloc(Args... args); Так вот, у неё есть надостаток, который я хотел бы устронить.. А именно - если её вызывать для конструкции класса, конструктор которого protected или private, мы закономерно получим ошибку компиляции.. Вопрос в том, как этого избежать? Мб какой-то грязный и не рекомендуемый хак? Добавлять в каждый класс friend Alloc, что-то не очень хочется :c
ed
А вот в Паскале есть хаки чтоб к приватными полям получить доступ
Хорошо, в следующий раз когда буду выбирать язык для проекта, обязательно учту. Хотя не, не учту..
Square
Может есть другой путь
Anonymous
#define private public
# define XpUctoc BockPec
ed
Расскажи зачем тебе это?
Так я же и говорю, хочу полную замену new.. По факту это конечно не проблема, сейчас пользуюсь new(void*) Type(), но хотелось бы более истетечную механику :c
Square
Хотя https://t.me/pascal_lang/103
Square
Вообще пилить свой аллокатор в 2к18
ed
Может есть другой путь
Ну и собственно да, пока у меня их 2 - делать так как делаю сейчас и обоссанный friend в каждом классе. Но оба пути у меня не устраивают с точки зрения дизайна..
ed
у тебя дизайн уже убит на этапе проектирования
Знаю что пожалею что спросил.. Но, почему же?
Square
может то, что ты хочешь решается совершенно другими костылями
Nikita
Знаю что пожалею что спросил.. Но, почему же?
с одной стороны хочешь приватный конструктор, с другой — отовсюду доступную фабрику, которая только проксирует вызов конструктора вот зачм приватность такому конструктору, тогда, спрашивается?
ed
ты не понял. я пытаюсь выяснить имеет ли место XY-problem
Да нет, это вы не поняли.. Я не нуждаюсь в совете по реинженерингу проекта. Мне просто нужен ответ на вопрос :) Простите уж, за резкость..
Nikita
выдаёт неинициализированную память, в которой уже с помощью placement new другая сущность вызывает конструктор
Nikita
Я ничего не говорил про конструкцию класса из вне.. Класс будет конструироваться строго там где это нужно.
не говорил, но дизайн уже таков, что это стало позволительным, в этом и проблема
ed
никак.
Хорошо, спасибо!
ed
не говорил, но дизайн уже таков, что это стало позволительным, в этом и проблема
Дак с чего вы это взяли? Мне всего лишь нужна замена class Some { friend Alloc<Some>; } То есть мы по прежнему не можем сконструировать Some вне Some, но внутри могли бы сделать это более красиво - Alloc<Some😠...) а не new(malloc(sizeof(Some))) Some(args..)
ed
У make_unique та же проблема, почитай https://abseil.io/tips/134
Вот, то что было нужно! Спасибо. Раз в stl не сделали элегантнее, значит и у меня есть оправдание..
âDêšwu öBipci
Да
âDêšwu öBipci
Впрочем, я уже забил и собрал осом
âDêšwu öBipci
Хотя вот ещё хотел собрать mpd и он с той же ошибкой вывалился
Square
Он уже сдался
Square
Предполагаю что механизм реализации похож
Square
Я просто предположил что ему это нужно
Square
Он собсно так и не сказал что хотел
Vladislav
даже у "аллокатора" есть как минимум два разных известных мне значения
Yura
КЕН Ю ХЕЛП МИ
Yura
в винде у нас у экзешников есть таблица импорта. в ней находятся ВСЕ имена импортируемой функции или нет?
Yura
в плане может ли так оказаться, что в таблице импорта нет каких то функций чужих библиотек, но которые все равно как то "невидимо" подгружаются
Egor
LoadLibrary() GetMessageProc()
Assasin
т.е. все, что подгружается динамически, уже во время выполнения
Alex
Где можно посмотреть сколько тактов занимают операции? Что-то вроде картинки ниже
Alex
А, не могу картинку залить :)
Alex
https://habrastorage.org/webt/bj/kg/bk/bjkgbk4membnpcf0g4i32vgfy4e.png
Alexander "SonnySlave"
Агнера почитай
Alex
спс
Vladislav
http://ithare.com/infographics-operation-costs-in-cpu-clock-cycles/
TLB miss у них какой-то слишком дешевый, учитывая что он обычно выливается в 2-3 чтения из памяти
Mikhail
http://ithare.com/infographics-operation-costs-in-cpu-clock-cycles/
перевод: https://habrahabr.ru/company/otus/blog/343566/
Vladislav
перевод: https://habrahabr.ru/company/otus/blog/343566/
вот, там в комментах тоже числам по TLB удивляются
Nikita
почему std::is_const<const int&>::valueдаёт false?
Vladislav
потому что const int& - не const-qualified (более того, ссылки вообще не бывают const-qualified)
Nikita
блин а как адекватно проверить является ли ссылка ссылкой на константу?
Nikita
std::is_const<std::remove_reference_t...адекватней этого?
Vladislav
Nikita
многобуков