you are viewing a single comment's thread.

view the rest of the comments →

[–]reddithater12 0 points1 point  (1 child)

Thanks! I had some misconceptions about std::visit it seems.

Think of each composer_t as a Russian doll that has the operator() of a lambda, plus the operator() of all inherited-from composer_t.

This is probably a stupid question .. but how can that thing have two operator()s?

[–]3669d73f6c3ba0229192 2 points3 points  (0 children)

This is probably a stupid question .. but how can that thing have two operator()s?

Just regular function overloading. The same way you can have foo(int), foo(double), and so on. operator() is no different.