# make_edge

[flow_graph.make_edge]

A function template for building edges between nodes.

    // Defined in header <oneapi/tbb/flow_graph.h>

    namespace oneapi {
    namespace tbb {
    namespace flow {

        template<typename Message>
        inline void make_edge( sender<Message> &p, receiver<Message> &s );

        template< typename MultiOutputNode, typename MultiInputNode >
        inline void make_edge( MultiOutputNode& output, MultiInputNode& input );

        template<typename MultiOutputNode, typename Message>
        inline void make_edge( MultiOutputNode& output, receiver<Message> input );

        template<typename Message, typename MultiInputNode>
        inline void make_edge( sender<Message> output, MultiInputNode& input );

    } // namespace flow
    } // namespace tbb
    } // namespace oneapi

Requirements:

- The MultiOutputNode type must have a valid `MultiOutputNode::output_ports_type` qualified-id that denotes a type.

- The MultiInputNode type must have a valid `MultiInputNode::input_ports_type` qualified-id that denotes a type.

The common form of `make_edge(sender, receiver)` creates an edge between provided `sender` and `receiver` instances.

Overloads that accept a MultiOutputNode type instance make an edge from port `0` of a multi-output predecessor.

Overloads that accept a MultiInputNode type instance make an edge to port `0` of a multi-input successor.