Template classes for having a dynamic C++ Property system