Stanislav
😐молодцы
Крылатый
http://gittrends.io/#/explore?page=1&language=C%2B%2B&domain=All&growth=All
Aidar
#include <vector> class A{ std::vector<int> a; public: A(int b) : a(b) { } bool operator<(const A &b) const{return a<b.a;} }; int main(){ const A test1(5); } Можно как нибудь заставить компилятор вырезать ненужные new и delete?
Aidar
main: sub rsp, 8 mov edi, 20 call operator new(unsigned long) mov QWORD PTR [rax], 0 mov QWORD PTR [rax+8], 0 mov rdi, rax mov DWORD PTR [rax+16], 0 call operator delete(void*) xor eax, eax add rsp, 8 ret
Andrei
Как он их вырезать должен по-твоему?
Aidar
просто выбросить
Aidar
-fno-exceptions включен еще
Andrei
с++ не умеет в такую оптимизацию
Richard
эм, так вектор же. Для статики std::array
Andrei
clang может умеет, но не факт.
Andrei
Я пишу язык, который точно умеет так.
Aidar
нет
Richard
а, там вообще не юзается вектор
Aidar
main: # @main push rax mov edi, 20 call operator new(unsigned long) mov rdi, rax call operator delete(void*) xor eax, eax pop rcx ret
Aidar
clang
Aidar
ну понятно почему это
Aidar
но типа и проифать можно было специально в компиляторе
Cuno
https://www.youtube.com/watch?v=FWD1msG8YU4
Aidar
https://www.youtube.com/watch?v=FWD1msG8YU4
да реально такое clang оптимайзит, но не вектор
Aidar
странно
Aidar
да работает только с их libc++
Berkus
-std=c++1z -O3 -stdlib=libc++ вот так сработало
Berkus
это значит в гнусном либц есть out-of-line new в имплементации вектора скорее всего
Berkus
ну собсно я не удивлен даже, libstdc++ давно пора в помойку
Aidar
да не прикол не в этом
Aidar
код прям явно показывает что после New сразу delete
Aidar
из регистра никуда не пишется
Aidar
почему бы не соптимайзить
Aidar
даже clangу
Berkus
если там out-of-line code он не будет оптимайзить этот вызов по идее, но тут что-то еще порылось, если б сраный libstdc++ еще можно было быстро сравнить по коду
Cuno
код прям явно показывает что после New сразу delete
Это на уровне твоего кода так всё выглядит. В реализации new и delete может быть код, мешающий соптимизировать.
Berkus
https://godbolt.org/g/jWo696
Berkus
а, вот, нашел
Berkus
как я и подозревал это аллокатор
Berkus
Richard Smith1 month ago The lack of heap elision in the std::vector case is a consequence of libstdc++ using a non-elidable allocation in its implementation of std::allocator. With libc++, the heap allocation is elided in that case too: https://godbolt.org/g/uQqqIM
Evgenii
Кстати, если кому-то охото поковыряться в дерьмовом С-коде, у меня есть вот это: https://github.com/Randl/skypeopensource2
Evgenii
Ой. Это же отреверсенный скайп?
Да. Я начал допиливать, но автор повёл себя по блядски, я добрался до winsock и забил
🦥Alex Fails
А что автор?
Evgenii
И вроде как я умудрился там словить баг в gcc
Evgenii
А что автор?
PR не принимал, на критику не реагировал. Обнов, по крайней мере на гитхабе нет
Evgenii
Вроде как собирается под винду
Evgenii
Го в своем форке пелить
Да я начал, почти собрал под линь
Evgenii
Но winsock перепиливать нет ни знаний ни времени
Evgenii
А что автор?
А автор деньжата собирает http://skype-open-source2.blogspot.co.il/2016/09/call-to-donate-2.html
Berkus
к тому же имплементировать по реверсеным сорцам нелегально, можно и присесть
Anonymous
было бы неплохо сделать tox2skype
Berkus
да не нужен скайп )
Berkus
там давно уже MSNP и полный MSN Messenger
Anonymous
в нём слишком много людей
Berkus
да-да, когда я в 2004 пересаживался на скайп мне говорили "ты чтоо, в ICQ слишком много людей"
Anonymous
и на что ты предлагаешь переходить?
Berkus
я не предлагаю
Berkus
мне и в телеграме хорошо
Evgenii
да-да, когда я в 2004 пересаживался на скайп мне говорили "ты чтоо, в ICQ слишком много людей"
То что когда нибудь люди перейдут со скайпа куда-то не меняет ничего сейчас
Berkus
чем раньше ты будешь тем человеком который перешел, тем раньше перейдут и остальные
Алдар
Вы про голосовое общение или мессенджер?
Berkus
хз
Anonymous
голосовое общение, демонстрация экрана, видеозвонки, групповые звонки
Алдар
И какие опенсорсные альтернативы скайпу?
Anonymous
только tox
Evgenii
только tox
Годен, и даже активно пилится в последнее время
Evgenii
Но разработчиков маловато
Evgenii
И то чуть ли не больше чем юзеров
Anonymous
весьма годно, но подавление шума такое себе
Anonymous
ну и клиенты багованы местами
Anonymous
под андроид звонки вообще не завезли
Berkus
Годен, и даже активно пилится в последнее время
когда я смотрел в его сетевой код "годен" это было самое последнее что можно было про него сказать
$continue$
Всем привет. Есть ли библиотека для работы с .docx/.doc
Sheridan
Всем привет. Есть ли библиотека для работы с .docx/.doc
А вообще поищи еще rtf, там в принципе формат не особо сложен, я как то его напрямую рисовал, без либ. И даже работало.
$continue$
Зачем? Если есть готовые, обкатанные либы
$continue$
Покурить либраофис имхо надо
$continue$
А вообще поищи еще rtf, там в принципе формат не особо сложен, я как то его напрямую рисовал, без либ. И даже работало.