or [data model](https://doc.qt.io/qt-5/model-view-programming.html) and generic data types (containers, QVariant, QMetaObject, etc.).
It would greatly simplify writing/reading custom C++ data to/from them while providing more performance than existing approaches.
QBind requirements below are useful for most (de)serialization use cases. They would be mandatory to implement in Qt a tracing facility
allowing to analyse how software is used in the field and diagnose complex issues. Effectively:
...
...
@@ -14,9 +13,9 @@ allowing to analyse how software is used in the field and diagnose complex issue
high-performance and structured data. But analysing unexpected uses and issues in the field requires a lot more
tracepoints than can be conveniently defined statically.
> **DISLAIMER** QBind is not currently unit-tested but provided with a [sample and benchmark](main.cpp).
> **DISLAIMER:** QBind is not currently unit-tested but provided with a [sample and benchmark](main.cpp).
> Also, the implementation is written in a concise style that supported the multiple refactorings but does not help explaining it.
> This is especially true for the various IBind implementations. The README and [design](design.md) documentation should be read
> This is especially true for the various IBind implementations. The README and [DESIGN](DESIGN.md) documentation should be read
> before trying to understand the implementation.
See:
...
...
@@ -24,7 +23,7 @@ See:
-[Some examples](#examples)
-[The results](#results)
-[Our conclusion](#conclusion)
-[The design](design.md)
-[The design](DESIGN.md)
## The requirements
...
...
@@ -325,7 +324,7 @@ By convention:
-`qmName` allows naming data items for, e.g. XML root element and sequence items
- ...
The latest customized binds require using ad-hoc std::function like `flatten` or lambda below (mimicking Python list comprehensions):
The latest customized binds require using ad-hoc std::function like [flatten](tests/QBind/main.cpp#L996) or lambda below (mimicking Python list comprehensions):