The restriction is mentioned in in this section of the ARC specification:
However, nontrivally ownership-qualified types are considered non-POD:
in C++11 terms, they are not trivially default constructible, copy
constructible, move constructible, copy assignable, move assignable,
or destructible. It is a violation of C++’s One Definition Rule to use
a class outside of ARC that, under ARC, would have a nontrivially
ownership-qualified member.
The reason for it is this: In ARC, when you use an Objective-C object as a field of a C++ struct or class, ARC implicitly adds code to the default constructor, copy constructor, destructor, etc. to manage the memory for the fields. And if the struct or class doesn't have these constructors/destructors, ARC automatically adds them.
This means that if such a struct or class was considered "POD" (a C++ term meaning it has no special constructors/destructors) originally, ARC makes it non-POD by implicitly adding these special constructors/destructors. However, C++ treats POD and non-POD types differently in some places. If such an originally POD struct or class declaration was seen from both non-ARC and ARC code, then the non-ARC code might think that it is still a POD type. But this is wrong (ARC added methods to make it non-POD), and will allow the non-ARC code to do wrong things and bypass the memory management. As a result, it must be disallowed.