In case like that, because we have to deal with different compilers for multiple platforms, I create AItem_base to use it on both the Struct and as a base class for AItem.
Later I add templated auto casting routines for algorithms that must be members of the AItem class.