void foo(Type &t) {...}void foo(Type *t) {foo(*t); }
struct CBigClass {... QList<CData> mData; QSet<std::reference_wrapper<CData>> mSelection; ...};
struct CBigClass {... QSet<std::reference_wrapper<CData>>& mSelectionAsRefs() { static_assert(sizeof(CData*) == sizeof(std::reference_wrapper<CData>)); return reinterpret_cast<QSet<std::reference_wrapper<CData>>&>(mSelection); }};
return reinterpret_cast<QSet<std::reference_wrapper<CData>>&>(mSelection);
static_assert(sizeof(CData*) == sizeof(std::reference_wrapper<CData>));
vector<bool> bools;auto &chars = reinterpret_cast<vector<char>&>(bools);