
Kirill
26.10.2016
21:25:05
Нет
Формат у них разный

Ned Ogl
26.10.2016
21:25:27
есть переформатчики?
под винду сейчас спрашиваю

Google

Kirill
26.10.2016
21:25:58
В разделяемых библиотеках сборка идет в режиме PIC (Position Independent Code).
Нет разницы

Ned Ogl
26.10.2016
21:26:16
ибо под линь нашёл statifier.sourceforge.net

Kirill
26.10.2016
21:27:11
Ну, это не совсем то
Это, скорее, упаковка умная.
Т.к. с файлом .so ничего особо не сделаешь.

Penter
26.10.2016
21:28:47
Это люди
Хотя пойду лучше в супу

Ned Ogl
26.10.2016
21:29:53
стоп
а как же явно вызвать ld.so?
в случае с линем (даже в манах пишется), это так и работает. она линкует (пусть и не навеки) и загружает прогу

Penter
26.10.2016
21:30:57
Я в супу написал, но что-то она неживая.

Ned Ogl
26.10.2016
22:28:59
если возникает double free or corruption, дело в операторе =, верно?

Google

Alex Фэils?︙
26.10.2016
22:30:18
Может быть и в нем

Ned Ogl
26.10.2016
22:30:20
#include <iostream>
#include <matrixlib.h>
int main(){
Matrix<int> A(10,11);
A = Matrix<int> (5,6);
}
`
в таком коде
в конструкторе резервируется память, в деструкторе дилит
надо определить оператор =, верно?

Alex Фэils?︙
26.10.2016
22:31:07
Да

Ned Ogl
26.10.2016
22:31:15
спасибо, алекс
а надо ли в этом операторе высвободить память, которая была занята?

Vladislav
26.10.2016
22:32:56
вообще, ownership данных лучше сделать через vector или unique_ptr<T[]>, а не вручную, тогда ты получишь move assignment (и copy assignment для вектора) бесплатно

Ned Ogl
26.10.2016
22:33:02
типа вот объект A, он выделил 110 интов.
когда ему присваивают объект на 30 интов, он должен отпустить 110, занять 30, скопировать. так ле?

Alex Фэils?︙
26.10.2016
22:34:47

Ned Ogl
26.10.2016
22:35:26
переносить нехоцца, надо глубинное копирование
вдруг область данных удалится?

Vladislav
26.10.2016
22:35:38
в эпоху c++11

Alex Фэils?︙
26.10.2016
22:36:16

Ned Ogl
26.10.2016
22:36:40

Vladislav
27.10.2016
08:06:37
загадка: почему так? https://ideone.com/HfM1BP

Dumitru
27.10.2016
08:07:53

Google

Vladislav
27.10.2016
08:08:30

Дед Пегас
27.10.2016
08:09:00
Занятно, что на мелпоне работает http://melpon.org/wandbox/permlink/K11iidyC3CovtsxY
https://ideone.com/YJBOpt
Да походу баг прост.

Vladislav
27.10.2016
08:11:11
зависит от компилятора и уровня оптимизации, но это не баг

Dumitru
27.10.2016
08:11:26
а почему i меняет свое значение ?
перекрывает какой-то кусок памяти ?


Sergey
27.10.2016
08:11:49
”Маркетолог спрашивает программиста: в чём сложность поддержки большого проекта?
Программист: ну представь, что ты писатель и поддерживаешь проект “Война и мир”. У тебя ТЗ — написать главу как Наташа Ростова гуляла под дождём по парку. Ты пишешь “шёл дождь”, сохраняешь, вылетает сообщение об ошибке “Наташа Ростова умерла, продолжение невозможно”. Почему умерла? Начинаешь разбираться. Выясняется, что у Пьера Безухова скользкие туфли, он упал, его пистолет ударился о землю и выстрелил в столб, а пуля от столба срикошетила в Наташу. Что делать? Зарядить пистолет холостыми? Поменять туфли? Решили убрать столб. Получаем сообщение “Поручик Ржевский умер.” Выясняется, что он в следующей главе облокачивается о столб, которого уже нет...”
rol_foster: Сегодня полдня искали ошибку, из-за которой, образно говоря, у Наташи при прогулке с Пьером падают трусы. Одна из функций программы делает то, что делать не должна. Откатили на вчера - трусы на месте. Перелопатили весь код обновления, там вообще ни трусов, ни Наташи, ни даже Ржевского, тупо красят дом Болконских. Чуть ли не пошагово разбираем - все нормально. Но трусы падают. И, чтобы найти причину, придется перелопатить весь код, а это недели две минимум.
В общем, начальник задумчиво посмотрел на девушку и волевым решением выдал Наташе подтяжки.


Дед Пегас
27.10.2016
08:12:16
Да
С -O3 влетает...

Detur
27.10.2016
08:12:27
компилятор как-то по-хитрому разворачивает умножение

Artem
27.10.2016
08:12:36
Оно выносит умножение, лол

Detur
27.10.2016
08:12:37
может через lea

Дед Пегас
27.10.2016
08:12:59
А
UB?

Detur
27.10.2016
08:13:09
надо короче ассемблерный код смотреть

Дед Пегас
27.10.2016
08:13:14
https://godbolt.org/g/fakMyl

Artem
27.10.2016
08:13:20
Назальные демоны

Vladislav
27.10.2016
08:13:46
верно, переполнение signed int - UB, поэтому компилятор имеет право оптимизировать цикл до
#include <iostream>
int main() {
for (int i = 0; i < 4000000000; i += 1000000000) {
std::cout « i « std::endl;
}
}

Дед Пегас
27.10.2016
08:14:34
Жесть какая.

Google

Vladislav
27.10.2016
08:15:20
мораль: будьте осторожнее с переполнениями, если они важны для семантики то делайте их в unsigned типах, для которых это разрешено стандартом

Aldar
27.10.2016
08:17:03
в джаве кстати отказались от unsigned типов

Admin
ERROR: S client not available

Дед Пегас
27.10.2016
08:18:45
Почему?

Vladislav
27.10.2016
08:20:46

Alex Фэils?︙
27.10.2016
08:22:01
Не надо использовать инт для индексов, надо использовать size_t

Aldar
27.10.2016
08:22:18
Почему?
чтобы джавистам было полегче

Alex Фэils?︙
27.10.2016
08:24:22
И дохуя проблем в джаве от этого

Rafael
27.10.2016
08:25:41
Надо использовать либо uint32 или uint64
С size_t заколебешься отлаживать код

Dumitru
27.10.2016
08:27:02

Kirill
27.10.2016
08:27:24
смотря что вам нужно, если внутри куча свичкейсов то size_t, если например как у меня сейчас енум это кокнкретное значение, только именованное, то его тип

Дед Пегас
27.10.2016
08:27:33
Надо юзать auto!
auto — лучший тип

Dumitru
27.10.2016
08:28:14

Kirill
27.10.2016
08:28:22
ага и потом код - ехал auto через auto видит auto в реке auto
и хер пойми что это за тип

Google

Vladislav
27.10.2016
08:28:26

Dumitru
27.10.2016
08:28:37

Vladislav
27.10.2016
08:29:57

Alex Фэils?︙
27.10.2016
08:36:49

Ned Ogl
27.10.2016
08:42:31
Я прост хз

Vladislav
27.10.2016
08:42:46
беззнаковый

Alex Фэils?︙
27.10.2016
08:46:46

Ned Ogl
27.10.2016
08:47:22
По логике

Alex Фэils?︙
27.10.2016
08:47:42