C++ (Qt)#include <deque> struct CItem { std::deque <CItem> mChild;};
C++ (Qt)#include <deque> struct CItem { std::deque <boost::recursive_wrapper<CItem>> mChild;};
C++ (Qt)#include <boost/container/deque.hpp> using namespace boost::container; struct CItem { deque<CItem> mChild;};
C++ (Qt)class X : public Singleton<X>{...};
#define _DEQUESIZ (sizeof (_Ty) <= 1 ? 16 \ : sizeof (_Ty) <= 2 ? 8 \ : sizeof (_Ty) <= 4 ? 4 \ : sizeof (_Ty) <= 8 ? 2 : 1)
class CItem;std::deque <CItem> mChild;
C++ (Qt)class CItem;std::deque <CItem> mChild;
class CItem;// Тип объявлен и доступен всем.// The class-name is also inserted into the scope of the class itself; this is known as the injected-class-name.std::deque <CItem> mChild;// пытается определить размер типа. Фейл -> ошибка -> прерываем компиляцию.class CItem {int a;};// а тут мы видим скобку, которая завершает реализацию класса и по стандарту он определён.//A class is considered defined after the closingbrace of its class-specifier has been seen even though its member functions are in general not yet defined.