flow::tuple Template Class

Some nodes create or use messages that are composites of other messages. The flow::tuple template class is included as part of flow to support this. Multiport nodes use tuples to manage their ports. These include join_node, multifunction_node, split_node, indexer_node and composite_node. Multiport nodes that send or receive tuples are join_node and split_node.

The tuple class is part of the C++11 standard, and earlier implementations of the Standard Library may have a tuple class. If std::tuple is part of the Standard Library, then flow::tuple is typedefed to std::tuple.

If the Standard Library does not contain tuple, an implementation is used that supports a subset of std::tuple's functionality:

  • construction, copy construction and destruction,
  • assignment
  • get<I>(tuple) (the i-th element of tuple, starting from zero),
  • tuple_element<I,T>::type (the type of the i-th element of tuple type T),
  • tuple_size<T>::value (the number of elements of the tuple type T),

CAUTION

Prior releases of flow injected flow's implementation of tuple into the std:: namespace. Users should change flow-specific references to std::tuple to flow::tuple to ensure compatibility with compilers that do not implement std::tuple as part of the Standard Library.

For more complete information about compiler optimizations, see our Optimization Notice.