From 0b55fb7d906fcb8b2ac4dcb4f30ec713aeb6be24 Mon Sep 17 00:00:00 2001 From: "Boyarinov, Konstantin" Date: Fri, 3 Oct 2025 18:06:59 +0300 Subject: [PATCH 1/2] Introduce new constructor to key matching join_node --- .../source/flow_graph/join_node_cls.rst | 46 +++---------------- 1 file changed, 6 insertions(+), 40 deletions(-) diff --git a/source/elements/oneTBB/source/flow_graph/join_node_cls.rst b/source/elements/oneTBB/source/flow_graph/join_node_cls.rst index 8b4e0737b4..50274f54df 100644 --- a/source/elements/oneTBB/source/flow_graph/join_node_cls.rst +++ b/source/elements/oneTBB/source/flow_graph/join_node_cls.rst @@ -40,26 +40,8 @@ tuple to all of its successors. explicit join_node( graph &g ); join_node( const join_node &src ); - template - join_node( graph &g, B0 b0, B1 b1 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2, B3 b3 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5, B6 b6 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5, B6 b6, B7 b7 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5, B6 b6, B7 b7 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5, B6 b6, B7 b7, B8 b8 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5, B6 b6, B7 b7, B8 b8, B9 b9 ); + template + join_node( graph &g, B0 b0, BN... bn ); input_ports_type &input_ports( ); @@ -119,32 +101,16 @@ Constructs an empty ``join_node`` that belongs to the graph ``g``. .. code:: cpp - template - join_node( graph &g, B0 b0, B1 b1 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2, B3 b3 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5, B6 b6 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5, B6 b6, B7 b7 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5, B6 b6, B7 b7 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5, B6 b6, B7 b7, B8 b8 ); - template - join_node( graph &g, B0 b0, B1 b1, B2 b2, B3 b3, B4 b4, B5 b5, B6 b6, B7 b7, B8 b8, B9 b9 ); + template + join_node( graph &g, B0 b0, B1 b1, BN... bn ); A constructor only available in the ``key_matching`` specialization of ``join_node``. Creates a ``join_node`` that uses the function objects ``b0``, ``b1``, ... , ``bN`` to determine the tags for the input ports ``0`` through ``N``. +**Constraints:**: only participates in overload resolution if ``std::tuple_size::value`` is ``2 + sizeof...(BN)``. + .. caution:: Function objects passed to the join_node constructor must not From 0b85538c0117499417ad0f2c0fabab82bb62f750 Mon Sep 17 00:00:00 2001 From: "Boyarinov, Konstantin" Date: Thu, 16 Oct 2025 18:27:35 +0300 Subject: [PATCH 2/2] Align description and synopsis --- .../elements/oneTBB/source/flow_graph/join_node_cls.rst | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/source/elements/oneTBB/source/flow_graph/join_node_cls.rst b/source/elements/oneTBB/source/flow_graph/join_node_cls.rst index 50274f54df..9121f93946 100644 --- a/source/elements/oneTBB/source/flow_graph/join_node_cls.rst +++ b/source/elements/oneTBB/source/flow_graph/join_node_cls.rst @@ -101,15 +101,15 @@ Constructs an empty ``join_node`` that belongs to the graph ``g``. .. code:: cpp - template - join_node( graph &g, B0 b0, B1 b1, BN... bn ); + template + join_node( graph &g, B0 b0, BN... bn ); A constructor only available in the ``key_matching`` specialization of ``join_node``. -Creates a ``join_node`` that uses the function objects ``b0``, ``b1``, ... , ``bN`` to determine +Creates a ``join_node`` that uses the function objects ``b0``, ... , ``bN`` to determine the tags for the input ports ``0`` through ``N``. -**Constraints:**: only participates in overload resolution if ``std::tuple_size::value`` is ``2 + sizeof...(BN)``. +**Constraints:**: only participates in overload resolution if ``std::tuple_size::value`` is ``1 + sizeof...(BN)``. .. caution::