C++ Object Token Library
От: ViTech  
Дата: 26.02.20 07:27
Оценка: 15 (1)
C++ Object Token Library — это эволюция Unified Pointer Library из этой темы
Автор: ViTech
Дата: 17.06.18
.

The C++ Object Token Library (CppOtl) provides a set of tokens that are
designed to manage an object's lifetime, similar to smart pointers from the
C++ standard library. CppOtl contains tokens for unique and shared
ownership of objects, weak observers for them, adds a unified type of
ownership. Also, it introduces tokens with single (not_null) multiplicity,
which can mitigate the "null references: billion-dollar mistake".

Tokens from CppOtl are integrated with smart pointers from the C++ standard
library and can be consistently converted from one to another. CppOtl is
intended for cases when there is not enough functionality of smart pointers
from the C++ standard library and additional capabilities are required.

Features:
1. A set of consistent tokens that can express associative links, function
parameters and variables according to a UML model.
2. `single` tokens that always have a linked object and can not be empty.
3. `trackable` and `untrackable` tokens for appropriate use-case
requirements.
4. The `safe::weak` can be created both from the `safe::unique` and the
`safe::shared`. It will become `expired` (but not `dangling`) when an owner
of a watched object is destroyed.
5. The `safe::unified` can temporarily prolong an object's lifetime in a
given scope that allows finishing work with an object even other tokens is
destroyed.
6. A constructor with the `itself` parameter allows a token itself to
create an object with given attributes.
7. Algorithms for unified access to object tokens.
8. Tokens meet the requirements of `std::ranges::range`, that allows to
pass them to functions that accept `range` argument.
9. Traits allow recognizing characteristics of tokens in compile-time.
10. Focusing on maximum error detection in compile-time, several assertions
in a debug build, minimum overhead in a release build, avoiding exceptions.
11. The ability to create other token classes with required
characteristics.
Пока сам не сделаешь...
Re[2]: C++ Object Token Library
От: flаt  
Дата: 19.03.20 09:20
Оценка: 3 (1)
Здравствуйте, Vain, Вы писали:

VT>>C++ Object Token Library — это эволюция Unified Pointer Library из этой темы
Автор: ViTech
Дата: 17.06.18
.

V>А можно в кратце по-русски, в чём отличие от старой практики со смартпоинтерами из СТЛ/Буста? Что такое новое дают эти токены, что смарт поинтеры или обычные контейнеры не давали?

По-русски (но вкратце не выйдет) был срач в упомянутой теме
Автор: ViTech
Дата: 17.06.18
, из которого по ответам автора можно (попытаться) понять его идею, но практическое её применение и полезность так и остались под вопросом.
Re[3]: C++ Object Token Library
От: Мирный герцог Ниоткуда  
Дата: 21.03.20 09:40
Оценка: -1
Здравствуйте, flаt, Вы писали:


F>По-русски (но вкратце не выйдет) был срач в упомянутой теме
Автор: ViTech
Дата: 17.06.18
, из которого по ответам автора можно (попытаться) понять его идею, но практическое её применение и полезность так и остались под вопросом.


автор в 2020-м угарает по UML, мне кажется этой информации достаточно чтобы не пытаться его понять.
нормально делай — нормально будет
Re: C++ Object Token Library
От: Vain Россия google.ru
Дата: 18.03.20 11:52
Оценка:
Здравствуйте, ViTech, Вы писали:

VT>C++ Object Token Library — это эволюция Unified Pointer Library из этой темы
Автор: ViTech
Дата: 17.06.18
.

А можно в кратце по-русски, в чём отличие от старой практики со смартпоинтерами из СТЛ/Буста? Что такое новое дают эти токены, что смарт поинтеры или обычные контейнеры не давали?
[In theory there is no difference between theory and practice. In
practice there is.]
[Даю очевидные ответы на риторические вопросы]
Re[2]: C++ Object Token Library
От: ViTech  
Дата: 20.03.20 10:18
Оценка:
Здравствуйте, Vain, Вы писали:

V>А можно в кратце по-русски, в чём отличие от старой практики со смартпоинтерами из СТЛ/Буста? Что такое новое дают эти токены, что смарт поинтеры или обычные контейнеры не давали?


Практика осталась та же, можно считать, что токены — это умные указатели и использовать их так же. Токены расширяют возможности умных указателей из STL (дополнительные возможности в списке Features), позволяют писать код более выразительно и безопасно. Есть пример Car, можете попробовать реализовать его с помощью умных указателей из STL и сравнить с решением на токенах.
Пока сам не сделаешь...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.