diff --git a/src/graph/GraphView.cpp b/src/graph/GraphView.cpp index d7a6e27fb1a739bd8b27411cf21b30bf58e2a3ad..c9f3cd14db84dab0faab065278664e68fb577db6 100644 --- a/src/graph/GraphView.cpp +++ b/src/graph/GraphView.cpp @@ -318,6 +318,7 @@ void Aidge::GraphView::setOrderedInputs(const std::vector<std::pair<NodePtr, IOI } void Aidge::GraphView::setOrderedOutputs(const std::vector<std::pair<NodePtr, IOIndex_t>>& outputs) { + // Note: one can specify any node as graph output! size_t nbOutputs = 0; std::vector<std::pair<NodePtr, IOIndex_t>> ignoredOutputs(mOutputNodes); for (auto output : outputs) { @@ -326,14 +327,13 @@ void Aidge::GraphView::setOrderedOutputs(const std::vector<std::pair<NodePtr, IO // it into account. if (output.first != nullptr) { auto it = std::find(ignoredOutputs.begin(), ignoredOutputs.end(), output); - AIDGE_ASSERT(it != ignoredOutputs.end(), "unknown or duplicate output: {} (of type {})", output.first->name(), output.first->type()); - ignoredOutputs.erase(it); + if (it != ignoredOutputs.end()) { + ignoredOutputs.erase(it); + } ++nbOutputs; } } - AIDGE_ASSERT(nbOutputs <= mOutputNodes.size(), "too many specified number of outputs: {} specified vs {} available", nbOutputs, mOutputNodes.size()); - mOutputNodes = outputs; mOutputNodes.insert(mOutputNodes.end(), ignoredOutputs.begin(), ignoredOutputs.end()); }