@ProCxx

Страница 942 из 2477
Constantine
06.06.2017
21:40:22
если Factory паттерн зафигарить таким образом, что при создании обьекта ему от фабрики передаётся callback в форме std::function с его-же адресом, который этот обьект может вызвать чтоб оповестить фабрику о том или ином событии норм?
я примерно такие схемы реализовывал, праблемки со временем жизни вечные, сразу надо ставить встраивать флажок detached на отключение оповещения при дохлой фабрике

Constantine
06.06.2017
21:42:44
в моём случае фабрика обычно не помирает до конца жизни приложения, фарибка "Кощей"
это невозможно, другая такая же фабрика может хочет объект

Google
Constantine
06.06.2017
21:43:25
флаг еще и не спасет, если есть несколько потоков
у меня там отдельная схема работы для многопоточки, вся фабрика строго однопоточные объекты хранит

Vladislav
06.06.2017
21:43:26
флаг еще и не спасет, если есть несколько потоков
можно сделать так: callback держит weak_ptr и лочит его при вызове

Stanislav
06.06.2017
21:44:29
@webreh хм, а чем стд треды не угодили?

Constantine
06.06.2017
21:45:07
можно сделать так: callback держит weak_ptr и лочит его при вызове
Слишком накладно, проще флажок, который деструктор родительский проставляет, родительский все равно все выданные объекты не хранит. Половина инженерного нуля затрат, все вопросы многопоточности там решаются пересылкой данных по запросу

@webreh хм, а чем стд треды не угодили?
например, afx хочет запускать тред сам в некоторых случаях

Evgeniy
06.06.2017
22:03:30
A more useful compile-time quicksort in C++17 https://tristanbrindle.com/posts/a-more-useful-compile-time-quicksort

Vladislav
06.06.2017
22:04:12
Evgeniy
06.06.2017
22:04:45
Vladislav
07.06.2017
00:09:43
enable_shared_from_this нужен
не, тут немного другое

Antony
07.06.2017
05:09:49
таакс... что ты думаешь про return boost::hana::remove_if(seq, boost::hana::compose( boost::hana::traits::is_arithmetic, boost::hana::typeid_)); лучше?
Не, нечитабельно для начинающих. Хотелость return boost::hana::remove_if(seq, is_arithmetic_); изкоробки. Пришлось фигачить constexpr auto is_arithmetic_ = [] (const auto& v) { assert(false); auto type = boost::hana::typeid_(v); return boost::hana::traits::is_arithmetic(type); };

https://nuwen.net/mingw.html Новый mingw подьехал от STL
Я запутался. А какой MinGW нынче самый правильный: https://mingw-w64.org/ или www.mingw.org/ или https://nuwen.net/mingw.html ?

Google
Vergil
07.06.2017
05:36:04
intel c++ compiler

Vladislav
07.06.2017
06:18:38
Stanislav
07.06.2017
06:20:33
а его еще не дропнули?
понятия не имею)

Igor
07.06.2017
06:20:48
Я запутался. А какой MinGW нынче самый правильный: https://mingw-w64.org/ или www.mingw.org/ или https://nuwen.net/mingw.html ?
mingw.org мы пользовали в 2013м на втором курсе в программировании на си, с тех пор он не обновлялся; про mingw-w64 ничего не могу сказать, он у меня тупо не запускается; а на nuwen.net неофициальные сборки от разраба MSVS STL, которые он пытается поддерживать в более-менее актуальном состоянии

Stanislav
07.06.2017
06:21:17
ну MinGW-W64 GCC-7.1.0

последний

Igor
07.06.2017
06:22:50
мне прошлым летом пришлось плясать вокруг него с бубном, а он так и не заработал, как будто что-то в путях поехало и он не видел половину собственных утилит( в итоге забил и взял STLовский

Vladislav
07.06.2017
06:35:15
Tom
07.06.2017
06:35:58
Anatoly
07.06.2017
06:57:57
Я запутался. А какой MinGW нынче самый правильный: https://mingw-w64.org/ или www.mingw.org/ или https://nuwen.net/mingw.html ?
вот что по этому поводу в qt: MinGW distributions and versions There are actually different MinGW toolchains and packages available: MinGW.org is the original project. The latest version gcc 4.7.2. It only compiles for 32 bit binaries. MinGW-w64 [mingw-w64.sourceforge.net] is a fork with the original aim to also support generation of 64 bit binaries. By now it also supports a much larger part of the Win32 API. The MinGW-w64 project does host several different binary packages, done by different people. There are binary installers targetting MinGW for both Qt 4 and Qt 5. Up to Qt 4.8.6, Qt 4 ones are built with a MinGW.org toolchain using gcc 4.4. Newer Qt 4.8 binary packages ship with a mingw-w64 based toolchain. For Qt 5, a newer MinGW-w64 toolchain is actually required.

цитата из https://wiki.qt.io/MinGW

Stanislav
07.06.2017
08:27:11
https://www.youtube.com/watch?v=lO1z-7cuRYI

?

Дед Пегас
07.06.2017
08:28:59
https://www.youtube.com/watch?v=lO1z-7cuRYI
Агрессивный маркетинг!

Antony
07.06.2017
09:12:19
Anatoly
07.06.2017
09:26:44
@antoshkka По поводу "Как делать не надо: C++ велосипедостроение для профессионалов" вопрос. С помощью какого профайлера определяется, что основная задержка идет на ожидании кеша инструкций (пример с B-Tree)?

Antony
07.06.2017
09:39:00
Там вроде пользовались интеловским профайлером

Google
Antony
07.06.2017
09:39:12
Но куда в нем смотреть - не знаю

Evgeniy
07.06.2017
09:39:24
Anatoly
07.06.2017
09:46:28
@antoshkka Спасибо! В том же докладе по поводу совета использовать std::make_shared. Столкнулся недавно с багом касающегося std::make_shared в VS 2015 & 2017 при сборке 32 bit релиза: https://github.com/Reactive-Extensions/RxCpp/pull/368

Visual Studio Team оповещена, но не может пока объснить почему

Berkus
07.06.2017
10:02:41
"ну мы... релизили, вот Кумар релизил, не знаю что могло пойти не так..."

Hannibal
07.06.2017
10:36:13
Доброго времени суток

Нужна консультация

Есть исполняемый win32 файл, если открывать через текстовый редактор, то в конце файла прописан манифест

А после него идёт набор тупо разных слов и цифр

Можете пояснить как оно так ? (Исполняемый файл - вирус)



Stanislav
07.06.2017
10:40:40
манифест это ж кусок ресурсной секции кажется?

Hannibal
07.06.2017
10:41:14
манифест это ж кусок ресурсной секции кажется?
А через что можно сам файл вируса разобрать, и понять что к чему ?

Square
07.06.2017
10:42:03
Hannibal
07.06.2017
10:42:10
ida
Спасибо

Square
07.06.2017
10:42:11
Под отладкой или ещё как

Stanislav
07.06.2017
10:42:59
манифест это ж кусок ресурсной секции кажется?
еслия не ошибаюсь, то мы всегда можем накрафтить доп секцию )

Maxim
07.06.2017
10:44:16
Запускать и чекать куда он распакует себя
Запускать вирус под отладкой то ещё занятье

Google
Hannibal
07.06.2017
10:50:12
Запускать вирус под отладкой то ещё занятье
Отладка может ведь быть запрещённой

Square
07.06.2017
10:52:18
Отладка может ведь быть запрещённой
Ну придётся пофакать антиотлалочные трюки

Тебе лучше с этим к реверсёрам в дефкон чат

Admin
ERROR: S client not available

Square
07.06.2017
10:52:51
Товарищ майор ;)

Hannibal
07.06.2017
10:53:53
Спасибо

Berkus
07.06.2017
10:59:39
IDA для этого рулит

Antony
07.06.2017
11:03:50
Для этого рулит Крис Касперски "Искусство дизассемблирования", с подробным описанием инструкментария и кошерными примерами.

Berkus
07.06.2017
11:06:21
я это проходил задолго до публикаций касперски

Stanislav
07.06.2017
11:07:08
Есть линк на pdf?
на трекерах глянь)

http://coolfire.insomnia247.nl/Hacker%20Disassembling%20Uncovered.pdf

Soul
07.06.2017
14:47:53
Всем привет, скажите что лучше для геттеров и сеттеров bankAccount или bankAccount2 ? namespace bankAccount { using std::string; class BankAcc { private: string pass; public: void setName(const string & n) { pass = n; }; const string & getName() const { return pass; }; }; } namespace bankAccount2 { using std::string; class BankAcc { private: string pass; public: void setName(string n) { pass = n; }; string getName() const { return pass; }; }; }

В учебных целях

Vladislav
07.06.2017
14:49:23
void setName(string n) { pass = std::move(n); } и const string & getName() const { return pass; }

Tema
07.06.2017
14:53:33
void setName(string n) { pass = std::move(n); } и const string & getName() const { return pass; }
а при setName(string n) 100% можно не париться? или будет батхёрт при случайно проёбаном контенте?

Soul
07.06.2017
14:54:11
Т.е то что мы возвращаем адрес приватной переменной — это нормально? const string & getName() const { return pass; }

Tema
07.06.2017
14:54:46
Т.е то что мы возвращаем адрес приватной переменной — это нормально? const string & getName() const { return pass; }
ну да но ты должен гарантировать что владелец переживёт тех кто будет эту сылку юзать

если не можеш гарантировать то может сделать метод release и забирать владение

Google
Tema
07.06.2017
14:55:43
string releaseName() const { return std::move(pass); }

Soul
07.06.2017
14:58:25
спасибо)

Antony
07.06.2017
15:00:08
string releaseName() const { return std::move(pass); }
Надеюсь это была издёвка. Не делайте такие move!

Tema
07.06.2017
15:00:45
Надеюсь это была издёвка. Не делайте такие move!
ну можно положиться на RVO но это же нелегально

я то все мемберы запаковываю в std::unique_ptr и делаю такие мувы ?? релизы

Tema
07.06.2017
15:05:00
зачем?
ну не все, ну типа мувать

например у меня есть клас загрузчика настроек, он их читает и заполняет, а есть клас хранения настроек и создания индексов по ним вот я между ними муваю

это сильно зашкварно?

Evgeniy
07.06.2017
15:06:04
ну не все, ну типа мувать
и какая у этого мотивация?

Tema
07.06.2017
15:06:35
и какая у этого мотивация?
? ну типа не копировать то что должно быть в одном экземпляре

Evgeniy
07.06.2017
15:07:42
? ну типа не копировать то что должно быть в одном экземпляре
имхо если это не большой объект лучше скопировать

Страница 942 из 2477