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
Berkus
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++ еще можно было быстро сравнить по коду
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
🦥Alex Fails
🦥Alex Fails
А что автор?
Evgenii
И вроде как я умудрился там словить баг в gcc
Evgenii
А что автор?
PR не принимал, на критику не реагировал. Обнов, по крайней мере на гитхабе нет
Evgenii
Вроде как собирается под винду
🦥Alex Fails
Evgenii
Но winsock перепиливать нет ни знаний ни времени
Evgenii
А что автор?
А автор деньжата собирает http://skype-open-source2.blogspot.co.il/2016/09/call-to-donate-2.html
Berkus
Berkus
к тому же имплементировать по реверсеным сорцам нелегально, можно и присесть
Anonymous
было бы неплохо сделать tox2skype
Berkus
да не нужен скайп )
Berkus
там давно уже MSNP и полный MSN Messenger
Anonymous
в нём слишком много людей
Berkus
да-да, когда я в 2004 пересаживался на скайп мне говорили "ты чтоо, в ICQ слишком много людей"
Anonymous
и на что ты предлагаешь переходить?
Anonymous
Berkus
я не предлагаю
Berkus
мне и в телеграме хорошо
Evgenii
Berkus
чем раньше ты будешь тем человеком который перешел, тем раньше перейдут и остальные
Алдар
Вы про голосовое общение или мессенджер?
Berkus
хз
Anonymous
голосовое общение, демонстрация экрана, видеозвонки, групповые звонки
Алдар
И какие опенсорсные альтернативы скайпу?
Evgenii
Anonymous
только tox
Evgenii
только tox
Годен, и даже активно пилится в последнее время
Evgenii
Но разработчиков маловато
Evgenii
И то чуть ли не больше чем юзеров
Anonymous
весьма годно, но подавление шума такое себе
Anonymous
ну и клиенты багованы местами
Anonymous
под андроид звонки вообще не завезли
$continue$
Всем привет.
Есть ли библиотека для работы с .docx/.doc
Sheridan
$continue$
Зачем?
Если есть готовые, обкатанные либы
$continue$
Покурить либраофис имхо надо
$continue$
А вообще поищи еще rtf, там в принципе формат не особо сложен, я как то его напрямую рисовал, без либ. И даже работало.
Andrey