Properties & Bindings for Modern C++

By James Turner

Across different programming languages and environments, the concept of a property as a first-order object occurs very commonly: in Python, Cocoa, Qt, COM and more. When semantic relationships between properties can be defined and enforced structurally, many tasks are simplified, since manual work to update and synchronise values becomes automatic. Ultimately, this can enable large portions of a software system to be expressed as declarative /bindings/, instead of imperative logic.

In this talk, we will present an open-source, header-only implementation of the property concept in modern C++. Standard C++ features are combined to provide efficient, transparent and type-safe properties, which can be dynamically bound together, observed, and coordinated.