Properties & Bindings for Modern C++
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.
James is a C++ consultant, developer and teacher, working professionally to help diverse customers with building, maintaining and improving their codebases, especially in the areas of graphics and simulation.
He's also a lead maintainer on FlightGear, an open-source flight-simulator, with a strong interest in software quality, both around code itself (such as automated testing and code analysis) and in user-facing experiences.