Сам такое на макросах делаю для С, примерно
MODULE( mod, MODULE_A )
VARIABLE( mod, var1)
MODULE_END
и три разных доступа set|get - by_id, by_name, by_full_name
"mod"."var1" = 1
На плюсах можно кучу реализации посмотреть.