#include <string>
struct DeepData_5
{
std::string m_some_text;
DeepData_5() :
m_some_text("Just a test") {}
};
struct DeepData_4
{
DeepData_5 m_child1;
DeepData_5 m_child2;
DeepData_5 m_child3;
};
struct DeepData_3
{
DeepData_4& m_child1;
DeepData_4 m_child2;
DeepData_3() : m_child1(* (new DeepData_4())), m_child2(DeepData_4()) {}
};
struct DeepData_2
{
DeepData_3 m_child1;
DeepData_3 m_child2;
DeepData_3 m_child3;
DeepData_3 m_child4;
};
struct DeepData_1
{
DeepData_2 *m_child1;
DeepData_1() :
m_child1(new DeepData_2())
{}
};
int main()
{
DeepData_1 data1;
DeepData_2 data2;
return 0; }