У меня есть несколько классов, каждый из которых подкласс оператора.Оператор имеет несколько входов и выходов различных типов: изображение, номер, строка.Каждый подкласс реализует метод run (), который выполняет вычисления.Теперь я хотел бы разработать контейнер для этих операторов, чтобы сделать из них более крупных операторов.Контейнер должен быть максимально эффективным, поэтому я планирую использовать потоки.Я нашел пример в библиотеке графов Boost, который позволяет мне вычислять порядок, в котором я должен выполнять вычисления: http://www.boost.org/doc/libs/1_49_0/libs/graph/doc/file_dependency_example.html, но я думаю, что может быть даже лучший способ сделать это: каждый оператор может ждатьв заблокированном состоянии, пока все его входы не будут готовы.Было бы хорошо, если бы в контейнере был подкласс оператора, позволяющий рекурсивно их объединять.У меня такое ощущение, что это известная схема проектирования.