
Александр
20.09.2018
09:15:31

Ilia
20.09.2018
09:15:54

Александр
20.09.2018
09:16:06
64, вин10
Переношу на 64 вин7

Google

Andrew
20.09.2018
09:16:19
Должно быть, что-то недонастроил в сборке

Kirill
20.09.2018
09:16:56
Ребзяки, у меня есть такая структура:
struct Foo
{
Foo* next;
}
вопрос такой:
Если указатель на Foo поменять на умный, то возможна ли тут ситуация, при которой это будет weak_ptr? Известно, что в эту структуру в поле next вставляется всегда новый уникальный объект.

Ilia
20.09.2018
09:17:24
Переношу на 64 вин7
Тогда там вообще нет смысла возиться со статической сборкой.
Все библиотеки в . - и ок

Firstname
20.09.2018
09:17:32

Ilia
20.09.2018
09:18:19

Kirill
20.09.2018
09:18:53
Я описал условия, которые мне нужны. Хочу понять возможно ли ситуация, когда возникнет потребность в weak_ptr

Ilia
20.09.2018
09:19:42
Переношу на 64 вин7
Утилита depends поможет собрать тебе все нужные тебе .dll.
Тебе нужно использовать 64битную версию

Kirill
20.09.2018
09:20:06
Если да, то как воспроизвести эту ситуацию, при условии что в next всегда уникальный указатель укладывается.

yuri
20.09.2018
09:21:25
FooPtr a; FooPtr b; a->next = b; b->next = a; Циклическая ссылка в данных. (поправил)

Anatoly
20.09.2018
09:21:55

Egor
20.09.2018
09:22:18

Google

Kirill
20.09.2018
09:22:20

yuri
20.09.2018
09:22:33

Ilia
20.09.2018
09:22:43

Александр
20.09.2018
09:23:05

Ilia
20.09.2018
09:23:10

Kirill
20.09.2018
09:23:53

Andrew
20.09.2018
09:24:01
Я не шарю конкретно в VS, я отвечал из общих знаний. Странно, что гугл не помогает.

Egor
20.09.2018
09:24:07

yuri
20.09.2018
09:24:31

Anatoly
20.09.2018
09:25:02

Насибуллин
20.09.2018
09:25:08
По моему он говорил что его устраивает в качестве зависимости опенсв в текущей папочке

Ilia
20.09.2018
09:25:18

Anatoly
20.09.2018
09:25:34

Александр
20.09.2018
09:25:34

Kirill
20.09.2018
09:25:36

Насибуллин
20.09.2018
09:26:07
Так что ему надо динамическую либу с runpath или что там в винде

Ilia
20.09.2018
09:26:50
Это проще ?
Ещё раз....
НЕ ИСПОЛЬЗУЙ СТАТИЧЕСКУЮ СБОРКУ.
Клади все .dll в каталог, откуда запускается приложение или в PATH.

Александр
20.09.2018
09:29:28
Пробую с локальными либами

Google

Anatoly
20.09.2018
09:29:36
@kvoistinov ты можешь конкретизировать свои требования структуре к данных, которая будет хранить указатель на next? пока по твоим описаниям все вписывается в unique_ptr. если на один и тот же объект может быть ссылка с различных узлов, то shared_ptr.

Kirill
20.09.2018
09:30:57

Ilia
20.09.2018
09:33:25

Александр
20.09.2018
09:34:21
Спасибо, локальное подкладывание dll работает

Ilia
20.09.2018
09:35:06
Но я бы использовал. Стоимость ноль.

Kirill
20.09.2018
09:40:11

Andrew
20.09.2018
09:41:15
unique

Anatoly
20.09.2018
09:41:26

Kirill
20.09.2018
09:44:00
почему не unique_ptr?
Wrapper может где-то храниться снаружи, если же тут использовать unique_ptr , то указатель внутри Wrapper точно умрет, здесь идет разделение данных. Одни данные хранятся внутри списка, другие внутри Wrapper.

Anatoly
20.09.2018
09:45:02

Kirill
20.09.2018
09:45:37
Работа идет и со списком( т.е. он должен быть целостным) и снаружи через Wrapper.


Александр
20.09.2018
09:47:04
ок
class foo
{
Foo* next;
Callback func;
}
заметим, что поля приватные. Доступ через френд класс. Когда мы делаем добавление в список, вызывается примерно такой код:
Wrapper add( Foo ...abc)
{
next = make_shared(abc);
return Wrapper(next);
}
В next всегда лежит объект, который еще не укладывался в список, работа ведется через Wrapper. Wrapper не дает пользователю на прямую менять данные ( в частности наш shared_ptr). Обратите внимание на то, что внутри содержится callback. И возникает вопрос - какой умный указатель выбрать для Foo, shsred или weak
Разница между shared_ptr и weak_ptr во владении. Кто является хозяином объекта, на который ссылается next? Когда он должен удаляться?
Напомню, если все shared_ptr уничтожатся, объект тоже уничтожится, не смотря на то, что на него ссылаются weak_ptr.
Получается, что если цель - список из которого можно выдавать "наружу" указатели на узлы, при этом не переживая, что может быть доступ к уже удалённому объекту, то внутри списка должны быть shared_ptr, а отдавать наружу нужно weak_ptr.


Kirill
20.09.2018
09:47:58
ты не перемудрил?
Нет, не перемудрил. Вопрос остается тем же shared или weak. Единственное нет в сторону weak, это не могу понять ситуации, когда могут возникнут циклические зависимости в ДАННОЙ задаче
Разница между shared_ptr и weak_ptr во владении. Кто является хозяином объекта, на который ссылается next? Когда он должен удаляться?
Напомню, если все shared_ptr уничтожатся, объект тоже уничтожится, не смотря на то, что на него ссылаются weak_ptr.
Получается, что если цель - список из которого можно выдавать "наружу" указатели на узлы, при этом не переживая, что может быть доступ к уже удалённому объекту, то внутри списка должны быть shared_ptr, а отдавать наружу нужно weak_ptr.
Вот это ближе к задаче.
Разница между shared_ptr и weak_ptr во владении. Кто является хозяином объекта, на который ссылается next? Когда он должен удаляться?
Напомню, если все shared_ptr уничтожатся, объект тоже уничтожится, не смотря на то, что на него ссылаются weak_ptr.
Получается, что если цель - список из которого можно выдавать "наружу" указатели на узлы, при этом не переживая, что может быть доступ к уже удалённому объекту, то внутри списка должны быть shared_ptr, а отдавать наружу нужно weak_ptr.
Если я отдаю наружу shared_ptr, то я не совсем понимаю почему это не будет работать


Александр
20.09.2018
09:51:22

Twilight
20.09.2018
09:59:53

Antony
20.09.2018
10:01:48

Anatoly
20.09.2018
10:02:28

Google

n00b
20.09.2018
10:14:03
господа, возможно странный вопрос. А чем сейчас модно делать fft? dlib, fftw или руками по старинке?

Antony
20.09.2018
10:15:42
Модно делать блокчейн и машинное обучение
А если нужно что-то, что работает - то fft самое то!

n00b
20.09.2018
10:16:10

Ilia
20.09.2018
10:16:38
Кхм.. а что за fft?

n00b
20.09.2018
10:16:59
преобразование фурье
fftw собственно не подводит, и в openmp пихается, но вдруг есть что-то чего мы с гуглом не знаем

Крис
20.09.2018
10:19:12

n00b
20.09.2018
10:20:39
я собственно оттого и спрашиваю, вдруг есть что модное

Крис
20.09.2018
10:21:21

n00b
20.09.2018
10:22:27

Крис
20.09.2018
10:23:01

n00b
20.09.2018
10:23:42

Александр
20.09.2018
10:29:59

Anton
20.09.2018
10:34:33
@antoshkka Вопросик по boost.dll. Оно с c++11 совместимо?

Ilia
20.09.2018
10:38:22

Stanislav
20.09.2018
10:40:04
которую Антон и писал

Ilia
20.09.2018
10:41:00
Ладно...

Google

Александр
20.09.2018
10:41:04
бедный Антон.. и по библиотекам отвечать, и за стандарт, и за пропозалы..

Anton
20.09.2018
10:41:10

Yarique
20.09.2018
10:41:31

Anatoly
20.09.2018
10:41:58

Yarique
20.09.2018
10:46:17

Igor
20.09.2018
11:33:59
Это странный вопрос)
ну речь про то как "всю жизнь юзали rapidjson, а потом пришёл нил ломанн и запилил modern json, и все 'ооо удобно стильно с++шно меньше строчек'"

A.D.
20.09.2018
11:38:46

Igor
20.09.2018
11:40:31
не знаю, не сравнивал)

A.D.
20.09.2018
11:40:57

Aleksey
20.09.2018
11:43:29
Вопрос про компиляцию шланга как кросс компилятора куда лучше задать? Третий день на дебине пытаюсь собрать шланг как кросскомпилятор для arm-none-eabi и че то не выходит нормально, библиотеки не собираются. Курил доки на английском, шерстил инет, голова пухнет, а ясности и понимания не добавляется. Ткните на толковый мануал или зотя бы канал по теме

Anton
20.09.2018
11:49:09