1 namespace QHashPrivate { 2 template <typename> int b; 3 struct Data; 4 } // namespace QHashPrivate 5 6 struct QDomNodePrivate {}; 7 template <typename = struct QString> struct QMultiHash { 8 QHashPrivate::Data *d = nullptr; 9 }; 10 11 struct QDomNamedNodeMapPrivate { 12 QMultiHash<> map; 13 }; 14 struct QDomElementPrivate : QDomNodePrivate { 15 QDomElementPrivate(); 16 void importee(); 17 QMultiHash<> *m_attr = nullptr; 18 }; 19 // --------- common part end --------- 20 QDomElementPrivate()21QDomElementPrivate::QDomElementPrivate() : m_attr{new QMultiHash<>} {} importee()22void QDomElementPrivate::importee() { (void)QMultiHash<>{}; } 23 struct foo { 24 QDomElementPrivate m = {}; 25 static const int value = (QHashPrivate::b<foo>, 22); 26 }; 27