(Discussion) Reducing boiler plate code

Registration of ports and nodes is a pain. So much boiler plate!

// MyNode.hpp
class MyNode : public smgl::Node {
int val_;
public:
    smgl::InputPort<int> p{&val_};
    MyNode() : Node() {
        registerInputPort("p", p);
    }
};

// main.cpp
smgl::RegisterNode<MyNode>();

Suggested solutions:

  • Front-end preprocessor for converting smgl directives into compilable boiler plate (from R. Finkel)
Edited by Seth Parker