@ProCxx

Страница 2364 из 2477
Александр
20.09.2018
09:15:31
В чем проблема правильно слинковать?
Все вроде правильно делаю, и собирается, но при переносе на другую машину требует opencv dllки

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
Тогда там вообще нет смысла возиться со статической сборкой. Все библиотеки в . - и ок

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; Циклическая ссылка в данных. (поправил)

Egor
20.09.2018
09:22:18
Все вроде правильно делаю, и собирается, но при переносе на другую машину требует opencv dllки
у тебя скорее всего не получилась статическая сборка, а либы это импорт либы , которые содержат ссылки на длл

Google
Kirill
20.09.2018
09:22:20
FooPtr a; FooPtr b; a->next = b; b->next = a; Циклическая ссылка в данных. (поправил)
Я для кого пишу,что в некст будет укладываться уникальный указатель?

Ilia
20.09.2018
09:22:43
Как эту ситуацию получить при условиях выше ?
Сделай чтобы node ссылалась сама на себя, например

Александр
20.09.2018
09:23:05
Должно быть, что-то недонастроил в сборке
Только в "Создании кода->Библиотека времени выполнения" поменял на MT. И подключил статические либы opencv. Этого недостаточно ?

Kirill
20.09.2018
09:23:53
Сделай чтобы node ссылалась сама на себя, например
Такой ситуации тоже не возможно. Еще раз, в next укладывается всегда смарт созданный через new, make etc.

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

yuri
20.09.2018
09:24:31
Только в "Создании кода->Библиотека времени выполнения" поменял на MT. И подключил статические либы opencv. Этого недостаточно ?
Нет, это ортогональные вещи. Возможно, надо еще флаги препроцессора менять. В общем, гуглить, как правильно.

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

Ilia
20.09.2018
09:25:18
Я для кого пишу,что в некст будет укладываться уникальный указатель?
Концепции уникального указателя не существует. Ты либо будешь проверять эту структуру на зацикленности, либо нет. Если второе, и будешь использовать shared_ptr, то в next надо класть weak

Kirill
20.09.2018
09:25:36
Такой ситуации тоже не возможно. Еще раз, в next укладывается всегда смарт созданный через new, make etc.
У меня возможно то,что указатель этот будет уводиться наружу без возможности изменения. Но это под шаредрптр идет.А что на счет вика?

Насибуллин
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
Все указатели, которые shared , обязательно созданны через new...
Достоверно известно, что поле next не будет указывать на какой-либо созданный объект списка или самого себя, вот

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

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

Kirill
20.09.2018
09:40:11
@kvoistinov ты можешь конкретизировать свои требования структуре к данных, которая будет хранить указатель на next? пока по твоим описаниям все вписывается в unique_ptr. если на один и тот же объект может быть ссылка с различных узлов, то shared_ptr.
ок 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

Andrew
20.09.2018
09:41:15
unique

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

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, это не могу понять ситуации, когда могут возникнут циклические зависимости в ДАННОЙ задаче

Александр
20.09.2018
09:51:22
Нет, не перемудрил. Вопрос остается тем же shared или weak. Единственное нет в сторону weak, это не могу понять ситуации, когда могут возникнут циклические зависимости в ДАННОЙ задаче
weak_ptr не удерживают объект от удаления. Построить на них список, который хранит элементы (т.е. никакие shared_ptr на него не ссылаются) не получится (они сразу же будут удаляться).

Если я отдаю наружу shared_ptr, то я не совсем понимаю почему это не будет работать
Это будет уже не список содержащий элементы, ссылки на которые отдаются наружу, а список слабых ссылок на узлы, лежащие снаружи. weak_ptr становятся пустыми, когда shared_ptr хранящие объект удаляются. Т.е. если на какой-то узел все отданные shared_ptr удалятся, кусок списка идущий за ним станет не доступен.

Twilight
20.09.2018
09:59:53
То есть во всех контейнерах это нормально, а тут - ОПАСНО!!
но интервальный конструктор контейнеров копирует все элементы, разве нет? у листа, помнится, копировал

Antony
20.09.2018
10:01:48
@antoshkka Антон, а почему не завезли с самого начала интервальный конструктор в std::basic_string_view?
Причины мне не ведомы. Могу только догадываться, что требуется continious iterator, а вот проверить что итератор именно такого типа в данный момент не возможно

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

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

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

n00b
20.09.2018
10:16:59
преобразование фурье

fftw собственно не подводит, и в openmp пихается, но вдруг есть что-то чего мы с гуглом не знаем

Крис
20.09.2018
10:19:12
Кхм.. а что за fft?
Быстрое преобразование Фурье

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

n00b
20.09.2018
10:22:27
Это странный вопрос)
как я и обозначил в заголовке вопроса

Крис
20.09.2018
10:23:01
как я и обозначил в заголовке вопроса
В таком случае вечное и модное FFTW

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

Ilia
20.09.2018
10:38:22
@antoshkka Вопросик по boost.dll. Оно с c++11 совместимо?
А что за boost.dll, они же все раздельно собираются...

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
А что за boost.dll, они же все раздельно собираются...
Библиотека подгрузки .dll/.so. Причём тут раздельная сборка? У меня есть dll/so, которую нужно грузить в runtime. Вопрос, собственно, в минимально поддерживаемом стандарте.

Yarique
20.09.2018
10:41:31
Yarique
20.09.2018
10:46:17
бедный Антон.. и по библиотекам отвечать, и за стандарт, и за пропозалы..
И за книгу, тоже, наверное Большой популяризатор плюсов. Респект Антону.

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

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

A.D.
20.09.2018
11:40:57
не знаю, не сравнивал)
https://github.com/miloyip/nativejson-benchmark UPD. Где-то в середине Nlohmann

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

Anton
20.09.2018
11:49:09
что, там же uintptr_t
Таки какое именно значение лежит по адресу, который хранится в x и p?

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