Russian Qt Forum
Май 02, 2024, 13:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало Форум WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  
  Просмотр сообщений
Страниц: 1 2 [3] 4 5 ... 33
31  Программирование / С/C++ / Re: C++ Object Token Library : Февраль 08, 2020, 18:50

я правильно тебя понял:
ты хочешь унаследоваться от shared, что бы отрубить шаринг?
Совершенно правильно

это типа как...

унаследоваться от торговца, что бы отрубить ему торговлю?
унаследоваться от самолета, что бы отрубить ему возможность летать?
Да, именно так. Возможность летать мне не только не нужна, но даже вредит. Мне нужен только weak т.е. (хочу ползать Улыбающийся) возможность наблюдать не сдох ли. Зияющая дыра в std: почему я не могу получить weak от "юника"?  Это ведь никак не менее usable.

ты никогда не думал о том, почему юник называется "юником" ?

никогда не думал о том, что если тебе не нужно летать,
тогда тебе просто не нужно использовать самолет?


никогда не думал о том,
что для того что бы ползать,
совсем необязательно наследоваться от самолета
и ломать наследнику крылья?

у тебя точно всё впорядке с логикой?
Абсолютно (чувачок)  Улыбающийся

заметно.






32  Программирование / С/C++ / Re: C++ Object Token Library : Февраль 08, 2020, 17:28
Чем спорить, кто shared, а кто ресурс, я бы предложил составить UML диаграмму классов. Но кто ж будет заниматься такой ерундой Улыбающийся.

да не нужны никакие UML,
что бы понимать: shared - это механизм управления ресурсом, а не сам ресурс.

33  Программирование / С/C++ / Re: C++ Object Token Library : Февраль 08, 2020, 17:08
напр унаследоваться от shared и отрубить ему шаринг

я правильно тебя понял:
ты хочешь унаследоваться от shared, что бы отрубить шаринг?

это типа как...

унаследоваться от торговца, что бы отрубить ему торговлю?
унаследоваться от самолета, что бы отрубить ему возможность летать?

у тебя точно всё впорядке с логикой?


34  Программирование / С/C++ / Re: C++ Object Token Library : Февраль 08, 2020, 16:57
Скорее вы присоединились к здравому смыслу, потому что в том абзаце, на который вы отвечаете, написан фигня. Улыбающийся

в каком таком "том" абзаце?

Поэтому, глупо обсуждать эти механизмы в терминах "shared - владелец, а weak - нет", это разные уровни абстракции.

я не понял, почему глупо?

shared - владелец.
weak -  не является владельцем ресурса.

и это - важный факты.

именно этим эти механизмы (отнюдь не абстрактные) и различаются.

35  Программирование / С/C++ / Re: C++ Object Token Library : Февраль 08, 2020, 16:55
Всякий shared - владелец, сделать его НЕ владельцем невозможно (как впрочем и заставить владеть монопольно). Если под "потребителем" имеется ввиду weak - надо так и говорить (а не наводить тень на плетень).

под "потребителем ресурса" я подразумею любого потребителя ресурса.

совершенно не важно, кем он является.
это может быть другой shared, weak, или обычный сырой указатель.

важно что он потребляет ресурс (хочет получать к нему доступ)

"область применения shared - когда предполагается несколько владельцев"

чувак не тупи.
вот с чего ты вообще это взял?

если у меня только 1 владелец, но множество потребителей,
мне ресурс шарить уже не нужно что ли?

как ты вообще себе представляешь доступ к одному ресурсу множества потребителей,
если при этом сам ресурс не расшарен?Непонимающий


Нет, эта конструкция очень дырявая. Для того же простейшего примера. Во-первых, сделать "B" shared не так уж просто, ведь нужно чтобы юзер назначил эту связь, а значит "B" должен предъявляться в UI, иметь имя и.т.п. - какой уж тут shared. Значит придется шарить какие-то  внутренние данные "B", а тогда сразу огребем хотя бы при копировании "B". Чего и следовало ожидать: затыкать одну сущность другой плохо.

я не понимаю, какое вообще отношение shared имеет к проблемам твоего UI Непонимающий

любую связь, которую можно организовать на обычных сырых указателях,
можно организовать и при помощи смартов.

"If nothing could help - it's time to read doc" Улыбающийся

ты даже не можешь сформулировать какая проблема решается.
36  Программирование / С/C++ / Re: C++ Object Token Library : Февраль 08, 2020, 13:58
ты написал про совместное владение так, словно думаешь,
будто бы область применения shared - когда предполагается неколько владельцев.

на самом же деле, область применения shared - когда нужно расшаривать ресурс между несколькими потребителями.
количество владельцев при этом не суть важно.

важно, что если есть несколько потребителей, значит нужен shared.
и он будет. в том или ином виде.
А разве при применении shared Вы как-то можете рулить такими сущностями как "владелец", "потребитель", "клиент" и что-то еще? Нет, просто "ввиду отсутствия таковых". Shared указатель - всегда один из владельцев, и данные живы пока есть хоть один shared - вот и вся любовь. Поэтому нет никакой разницы между "ты думаешь" и "на самом деле" Улыбающийся

разница есть.

ты же пишешь так, будто бы если владелец предполагается только один,
тогда shared уже не нужен.
это - не верно.

shared нужен когда у ресурса может быть несколько потребителей.
и не важно, сколько при этом будет владельцев.

Удивляет что Вы незнакомы с этой очень типовой ситуацией и считаете ее "каким-то багом".

может я не правильно понял, чего ты хочешь.
выше ты писал:

"A" при этом НЕ владеет data, не отвечает ни за его создание ни удаление. Естественно экземпляр A получает по рогам при стороннем удалении data, и это надо мучительно отслеживать.

ты считаешь что это нормально?
хотеть получить доступ к ресурсу, которого уже нет, и получить за это по рогам?
на мой взгляд, это противоречит здравому смыслу, не?

бывают такие итуации, когда потребитель не контролирует время жизни ресурса,
и поэтому не может знать заранее,
а ресурс вообще есть в наличии?

но в таких случаях это нужно заранее оговаривать, Бро!
и пояснять что делать, если ресурса нет в наличии.

например:
когда пользовать стучит на сервер, его запрос сначала передается специальному менеджеру.
менеджер проверяет есть ли в наличии юзерская сессия.
если нет - тогда запрашивает создание новой.
если есть - сразу отдаёт запрос юзера объекту его сессии.

для подобной ситуации weak подходит идеально.

резюмируя:
либо у тебя баг из-за невовремя протухающих ресурсов
либо это нормальная ситуация, и тогда weak - то, что доктор прописал.

вот только как это коррелирует с какими то непонятными "токенами"?
какую проблему класса "А" они решают?

37  Программирование / С/C++ / Re: C++ Object Token Library : Февраль 08, 2020, 13:27
Вот уж действительно открытие, что техническую документацию нужно читать внимательно Улыбающийся. Что каждое слово там что-нибудь да значит, а не служит для описания красот и наполнения сцен, как в художественной.

ты всерьёз думаешь, что кто-то придет на страничку с твоим проектом,
и увидев непойми что, станет тратить время на чтение непойми зачем?

для тебя это может быть открытием, но никто вообще не будет читать твою документацию,
если с самого начала не очевидно, на что будет потрачено время.

титульный лист - это трейлер к голивудскому блокбастеру.
если трейлер не цепляет, люди не идут смотреть фильм.

про использование: если вам непонятна фраза "Using otn tokens is similar to using smart pointers from the C++ standard library." или вы не знаете, как пользоваться умными указателями стандартной библиотеки C++, то вам и токены вряд ли понадобятся.

вот ты пишешь:
"Using otn tokens is similar to using smart pointers from the C++ standard library."

пожалуй, это единственное предложение,
которое хоть как то проливает свет на предназначение библиотеки.

токены какие то.
это смарт-поинтеры что ли?
не проще было бы тогда так и писать: "библиотека смартпоинтеров с блэк-джеком и шлюхами"
сразу многие вопросы бы отпали.

и вот здесь мы вполную подходим к главной изюменке любого годного маркеттинга:
совершенно не очевидно, зачем нужны эти твои "токены",
в чем их польза?

где примеры использования?

примеры использование - это первое, что должен увидеть твой потенциальный пользователь,
сразу же после фразы: "предназначение библиотеки..."

другой важный маркеттинговый ход: локализация.
сейчас находишься в русскоязычном секторе.
здесь ты пытаешься пиарить своё детище.

где документация на русском языке?

Это первичная публикация бета-версии библиотеки. И прежде чем писать документацию для новичков, мне интересно мнение более опытных разработчиков.

моё мнение опытного разработчика:
оформи материал по человечески.

сейчас твоя библиотека выглядит как непонятно что, не понятно зачем.



38  Программирование / С/C++ / Re: C++ Object Token Library : Февраль 08, 2020, 02:55
в твоём случае оформление убогое.
Как быстро срабатывает рефлекс "велик, костыль" Улыбающийся

оформление убогое, потому что с таким оформлением
нужно обстоятельно вникать в документацию этой библиотеки,
просто для того, что бы понять, зачем она вообще нужна.

причем тут какие то рефлексы?

выше я приводил пример качественно оформленной библиотеки pugixml.
на самом деле подобных примеров масса.

вполне себе велосипед:
https://github.com/USCiLab/cereal





зачем нужна эта вещь?
как её предполагается использовать?
Пример: до боли простая задача/ситуевина
Код
C++ (Qt)
struct A {
...
B * data;
...
};  
"A" при этом НЕ владеет data, не отвечает ни за его создание ни удаление. Естественно экземпляр A получает по рогам при стороннем удалении data, и это надо мучительно отслеживать. Чтобы автоматом иметь валидность data приходится объявлять его weak, а сами данные создавать shared, никаких др стандартных средств нет. В итоге получается/навязывается липовый shared, ведь никакого совместного владения этими данными не планировалось. Задумка автора (насколько я понимаю) создать такую серию вумных указателей чтобы "легализовать" такое (и др) отношения использлвания.

1.
твой пример не иллюстриует как так получается,
что в какой то момент классу нужен доступ к ресурсу,
время жизни которого уже завершилось.

однако очевидно, что сама по себе такая ситуация - это какой то баг

2.
это - баг безотносительно к тому, использовал ты raw pointer, или связку shared/weak

допустим ты решил использовать невладеющий weak.
тогда у тебя на руках окажется невалидный weak, и как это тебе поможет?

тебе ресурс нужен, а его нет.
нужно звать программистов и чинить программу.

3.
ты написал про совместное владение так, словно думаешь,
будто бы область применения shared - когда предполагается неколько владельцев.

на самом же деле, область применения shared - когда нужно расшаривать ресурс между несколькими потребителями.
количество владельцев при этом не суть важно.

важно, что если есть несколько потребителей, значит нужен shared.
и он будет. в том или ином виде.

4.
я не понял, какое "такое" использование?
какая вообще проблема решается?




39  Программирование / С/C++ / Re: C++ Object Token Library : Февраль 07, 2020, 11:50
не очевидно, нафига нужна эта библиотека.

Если вы прочитали всё документацию по ссылке и не нашли ничего полезного для себя, значит вам она не нужна. Что не отменяет факта её возможной полезности для других людей Улыбающийся.

конечно же я не читал всю документацию по ссылке.
поскольку не имею привычки тратить время не пойми на что.

нормальные люди на титульном листе пишут зачем нужна библиотека,
с кратенькими примерами использования.

вот например:
https://github.com/zeux/pugixml

титульный лист - отправная точка, глядя на который сразу можно сразу понять:
зачем нужна эта вещь, и стоит ли вообще тратить время на более дательное ознакомление.

в твоём случае оформление убогое.
я решил, что проще спросить у тебя на прямую:
зачем нужна эта вещь?
как её предполагается использовать?



40  Программирование / С/C++ / Re: C++ Object Token Library : Февраль 06, 2020, 13:41
не очевидно, нафига нужна эта библиотека.
41  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Январь 29, 2020, 12:12
Ну только норкоман будет прелагать полечить "старый компилятор" введением фичи в новый стандарт.
Примерно похожая фича, кстати, обсуждается - constexpr!
Не очень, правда, ясно, как фича из 20го\23го стандарта решит проблему древнего msvc2015...

это был лишь пример пример ситуации,
где такая фича была бы очень кстати.

можно привести и другие примеры.

в стандарт, кстати, данную фичу таки утвердили:
https://en.cppreference.com/w/cpp/language/consteval

42  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Январь 29, 2020, 12:08
Но, в свете вашего ответа, довольно развернутого и понятного, попрошу ещё и пункт 5 развенуть.
Боюсь я его тоже не правильно понял "из коробки"

сегодня виртуальные функции не могут быть шаблонными.

однако технически, ничто не мешает сделать поддержку шаблонных.
(с известными ограничениями)

Код:
struct base
{
    template<class t>
    virtual void foo(const t&) = 0;
};

struct der: base
{
    template<class t>
    virtual void foo(const t&) {}
   
};

struct some {};

int main()
{
    der d;
    base& b = d;
   
    some v;
    b.foo(v);
    // --- приводит к инстанцированию
    // virtual void base::foo(const some&) = 0;
    // virtual void der::foo(const some&){}   
    // и так для всех наследников
}



поддержка шаблоно-виртуальных функций позволит реализовать на с++ полноценную динамику
(динамические типы данных любой сложности. как в скриптовых языках)
без приседаний вокруг type erasure





43  Разное / Говорилка / Re: c++ новый стандарт (комитет) : Январь 29, 2020, 12:00
Я понял, _Bers таки норкоман и не в курсе, чем отличается constexpr из с++11 от constexpr из с++14.

ты походу сам там чего то употребляешь.
иначе как ещё ты мог сделать такие выводы?

Вот уж не знаю, зачем сидеть на msvc2015, кроме как если у аффтора до сих пор Windows 2000. Ну или есть контра жмотится на новую лицензию.

судя по тупости вопроса, ты - не профессионал?

бизнес инертный.
он очень медленно модернизируется, и только при необходимости.

в любом случае компоненты должны собираться как старыми компиляторами, так и новыми.
поддержку старых сборок никто не отменял.

44  Программирование / Общий / Re: Обмен данными между независимыми приложениями : Январь 28, 2020, 21:18
Возможно ли нечто подобное сделать, но без привязке к файловой структуре?

реестр windows, например.

или shared memory
45  Программирование / С/C++ / Re: Ненулевые указатели : Декабрь 08, 2019, 15:53
То есть начал ты, а агрессивный я?

эта безобидная реплика вообще не тебе адресованна была.
человек, которому она была адресованна отреагировал адекватно.

ты же ведешь себя как женщина.
или как маленький ребенок.
они такое любят: "он пееееервыыыыый наааачааааал!!!!"

Страниц: 1 2 [3] 4 5 ... 33

Страница сгенерирована за 0.093 секунд. Запросов: 23.