Files
derek.holloway 7502bf64a4
CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
Flatten subprojects into a single base monorepo
2026-09-02 16:34:47 -07:00

1.8 KiB

C++ Variadic Template Bundlers

Detailed Doxygen Documentation.

Several flavors of variadic template classes for creating a single handle to multiple components are provided. In general, these components all have identical interfaces and the vast majority of their member functions accept any and all arguments. These member functions will take the given arguments and attempt to invoke the member function of the component with a similar name, e.g. component_tuple<wall_clock, cpu_clock>::start() will attempt to invoke wall_clock::start() and cpu_clock::start(). When arguments are provided, these bundlers will go through a series of checks at compile-time:

  1. Attempt to find the component member function that accepts those exact set of arguments
  2. Attempt to find the component member function which accepts a subset of those arguments (requires type-trait configuration)
  3. Attempt to find the component member function which accepts no arguments
  4. Accept the component does not have the member function and invoke no member function

In the event, this workflow require specialization for a particular component, a custom specialization of the struct in the tim::operation namespace can be written.

.. toctree::
   :glob:
   :maxdepth: 3
   :caption: Table of Contents

   templates/auto_bundle
   templates/auto_list
   templates/auto_tuple
   templates/component_bundle
   templates/component_list
   templates/component_tuple
   templates/lightweight_tuple

Static Polymorphic Base Classes

.. doxygenclass:: tim::bundle
   :members:
.. doxygenclass:: tim::auto_base_bundle
   :members:
.. doxygenclass:: tim::bundle< Tag, BundleT, TupleT >
   :members:
.. doxygenclass:: tim::auto_base_bundle< Tag, CompT, BundleT >
   :members: