The GetValueBaseAddress() may get called on foreign objects too (e.g. object templates), and if property indirection is used it should not rely on other values cached in the provider. class FMyStructProvider : public IStructureDataProvider { public: ...