fork(1) download
class Module { };

struct Port {
	Module& owner;
	Port(Module& owner) : owner(owner) {}
};

struct InPort    : virtual Port    { InPort(Module& m) : Port(m) { } };
struct OutPort   : virtual Port    { OutPort(Module& m) : Port(m) { } };
struct InOutPort : InPort, OutPort { InOutPort(Module& m) : Port(m), InPort(m), OutPort(m) { } };

int main() {
	Module m;
	InOutPort p(m);
}
Success #stdin #stdout 0s 3092KB
stdin
Standard input is empty
stdout
Standard output is empty