âDêšwu öBipci
Так ему не может быть реально нужно столько памяти. Там цифра заоблачная.
âDêšwu öBipci
Скорее всего. где-то типы сбились.
âDêšwu öBipci
Эхх. Печально.
Nikita
âDêšwu öBipci
Т.е. это точно баг в мейкфайле, а не в моем окружении?
Nikita
âDêšwu öBipci
Мб, линкер попробовать пересобрать?
Nikita
âDêšwu öBipci
Nikita
âDêšwu öBipci
И что он мне даст?
âDêšwu öBipci
Все штатное. Впрочем, другую версию gcc тоже пробовал - то же самое.
âDêšwu öBipci
Может, просто линкер попробовать обновить?
âDêšwu öBipci
А, это поздний трейс, вот как раз когда пробовал с другим. Родной то же самое выдавал.
âDêšwu öBipci
Слооожна. Без этого никак?
âDêšwu öBipci
Просто времени это сожрет кучу, а у меня его мало.
Andrew
Слооожна. Без этого никак?
Если проблема действительно в кривом мусоре по системе, то должна сработать сборка в чистом окружении. Я в этом не особо шарю, на ум из 100% вариантов приходит только виртуалка.
âDêšwu öBipci
ed
Господа, есть вот такая глобальная функция которая призвана полностью заменить "new"
template<typename T, typename... Args> T* Alloc(Args... args);
Так вот, у неё есть надостаток, который я хотел бы устронить..
А именно - если её вызывать для конструкции класса, конструктор которого protected или private, мы закономерно получим ошибку компиляции..
Вопрос в том, как этого избежать? Мб какой-то грязный и не рекомендуемый хак?
Добавлять в каждый класс friend Alloc, что-то не очень хочется :c
Square
Square
Square
Может есть другой путь
Nikita
ed
Расскажи зачем тебе это?
Так я же и говорю, хочу полную замену new..
По факту это конечно не проблема, сейчас пользуюсь new(void*) Type(), но хотелось бы более истетечную механику :c
Square
Хотя
https://t.me/pascal_lang/103
Square
Square
Вообще пилить свой аллокатор в 2к18
ed
Может есть другой путь
Ну и собственно да, пока у меня их 2 - делать так как делаю сейчас и обоссанный friend в каждом классе.
Но оба пути у меня не устраивают с точки зрения дизайна..
Nikita
Square
Square
может то, что ты хочешь решается совершенно другими костылями
Nikita
Знаю что пожалею что спросил..
Но, почему же?
с одной стороны хочешь приватный конструктор, с другой — отовсюду доступную фабрику, которая только проксирует вызов конструктора
вот зачм приватность такому конструктору, тогда, спрашивается?
Square
Nikita
Господа, есть вот такая глобальная функция которая призвана полностью заменить "new"
template<typename T, typename... Args> T* Alloc(Args... args);
Так вот, у неё есть надостаток, который я хотел бы устронить..
А именно - если её вызывать для конструкции класса, конструктор которого protected или private, мы закономерно получим ошибку компиляции..
Вопрос в том, как этого избежать? Мб какой-то грязный и не рекомендуемый хак?
Добавлять в каждый класс friend Alloc, что-то не очень хочется :c
или, как вариант, пусть аллокатор занимается только своим делом — аллоцирует память и никак не взаимодействует с конструктором
Nikita
выдаёт неинициализированную память, в которой уже с помощью placement new другая сущность вызывает конструктор
ed
Nikita
ed
Igor
âDêšwu öBipci
Да
âDêšwu öBipci
Впрочем, я уже забил и собрал осом
âDêšwu öBipci
Хотя вот ещё хотел собрать mpd и он с той же ошибкой вывалился
Square
Он уже сдался
Square
Предполагаю что механизм реализации похож
Square
Я просто предположил что ему это нужно
Square
Он собсно так и не сказал что хотел
Vladislav
даже у "аллокатора" есть как минимум два разных известных мне значения
Aidar
Yura
КЕН Ю ХЕЛП МИ
Yura
в винде у нас у экзешников есть таблица импорта. в ней находятся ВСЕ имена импортируемой функции или нет?
Yura
в плане может ли так оказаться, что в таблице импорта нет каких то функций чужих библиотек, но которые все равно как то "невидимо" подгружаются
Egor
LoadLibrary() GetMessageProc()
Assasin
т.е. все, что подгружается динамически, уже во время выполнения
Alex
Где можно посмотреть сколько тактов занимают операции?
Что-то вроде картинки ниже
Alex
А, не могу картинку залить :)
Alex
https://habrastorage.org/webt/bj/kg/bk/bjkgbk4membnpcf0g4i32vgfy4e.png
Alexander "SonnySlave"
Alexander "SonnySlave"
Агнера почитай
Danil
Alexander
Danil
Alex
спс
Anonymous
Mikhail
Vladislav
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
многобуков