C++ properties and obeserver pattern
conda install gouarin::xproperty
Leveraging C++ template and preprocessor metaprogramming techniques