struct register_reflect { template<class type, class m_type> register_reflect( std::string s, m_type (type::*get)() const, void (type::*set)(const m_type&) ) { ... } ... };