%description: Test NED sizeof() operators (for zero/nonzero module/gate sizes) in: submodule parameters and module vector sizes %file: test.ned module Foo { } simple Simple { parameters: double p1; double p2; double p3; double p4; double p5; double p6; double p7; double p8; gates: input g1[]; input g2[]; input g3[]; input g4[]; input g5[]; input g6[]; input g7[]; input g8[]; } module Compound { parameters: int a; gates: input in0[]; input in1[]; submodules: foo0[0]: Foo; foo1[5]: Foo; dum1[sizeof(foo0)]: Foo; dum2[sizeof(foo1)]: Foo; dum3[sizeof(in0)]: Foo; dum4[sizeof(in1)]: Foo; dum5[a+sizeof(foo0)]: Foo; dum6[a+sizeof(foo1)]: Foo; dum7[a+sizeof(in0)]: Foo; dum8[a+sizeof(in1)]: Foo; sub: Simple { parameters: p1 = sizeof(foo0); p2 = sizeof(foo1); p3 = sizeof(in0); p4 = sizeof(in1); p5 = a+sizeof(foo0); p6 = a+sizeof(foo1); p7 = a+sizeof(in0); p8 = a+sizeof(in1); gates: g1[sizeof(foo0)]; g2[sizeof(foo1)]; g3[sizeof(in0)]; g4[sizeof(in1)]; g5[a+sizeof(foo0)]; g6[a+sizeof(foo1)]; g7[a+sizeof(in0)]; g8[a+sizeof(in1)]; } connections allowunconnected: } // we need this only because the top-level module cannot // have gates, and we want to test sizeof(gatevector) as well network Test { submodules: c: Compound { parameters: a = 100; gates: in0[0]; in1[8]; } connections allowunconnected: } %file: test.cc #include using namespace omnetpp; namespace @TESTNAME@ { class Simple : public cSimpleModule { public: Simple() : cSimpleModule(16384) { } virtual void activity() override; }; Define_Module(Simple); void Simple::activity() { for (int i=0; i