![]() |
ImFusion SDK 4.3
|
Generic utility classes and helper functions of the ImFusionCore library. More...
Collaboration diagram for Generic Utilities:Generic utility classes and helper functions of the ImFusionCore library.
Namespaces | |
| namespace | ImFusion::Literals |
| Custom literals for classes of the ImFusion SDK. | |
Classes | |
| class | ByteBufferView |
| Const view onto a sized buffer of raw binary data. More... | |
| class | ByteBufferMutableView |
| Specialization of a ByteBufferView that additionally provides non-const access to the underlying data. More... | |
| class | ByteBuffer |
| Specialization of the ByteBufferView class that has ownership of the underlying data. More... | |
| class | ByteBufferStream |
| Specialization of std::istream to easily extract data from a ByteBufferView. More... | |
| class | ByteSize |
| Helper class to facilitate handling byte sizes. More... | |
| class | Flags< Enum > |
| Utility class to store a type-safe combination of enum-based bit fields. More... | |
| class | Timer |
| Stopwatch class to measure execution time. More... | |
| class | LoggingTimer |
| Scope guard-like stopwatch class to automatically log measured execution time on destruction of the guard object. More... | |
| class | MultiTimer |
| This class can be used to help the developer to profile the run time of different parts of the same process. More... | |
| class | NotCopyable |
| Inherit from this class if your class should be neither copy-constructible nor assignable. More... | |
| struct | Overloaded< Ts > |
| Syntactic sugar for easier implementation of visitors of a std::variant or our Utils::Variant. More... | |
| class | ScopeGuard< ReleaseFunc > |
| Templated proxy class to implement generic scope guards. More... | |
| struct | Variant< Types > |
| Specialization of std::variant offering additional convenience member functions for functionality that the standard library only provides in the form of free functions. More... | |
| struct | Version |
| Utility class to work with version information following the SemVer format. More... | |
Functions | |
| template<typename T> | |
| detail::RangeProxy< T > | range (T begin, T end) |
| An iterable wrapper for the half-open interval of integer numbers [begin, end). | |
| template<typename T> | |
| detail::RangeProxy< T > | range (T end) |
| An iterable wrapper for the half-open interval of integer numbers [0, end). | |
| template<typename T> | |
| detail::StepRangeProxy< T > | range (T begin, T end, T step_size) |
| An iterable wrapper for the uniformly numbers in the half-open interval [begin, end). | |
| template<typename T> | |
| detail::ReverseWrapper< T > | reverse (T &&iterable) |
| Iterator wrapper to reverse the iteration order. | |
| template<class ReleaseFunc> | |
| ScopeGuard< std::remove_reference_t< ReleaseFunc > > | makeScopeGuard (ReleaseFunc &&f) |
| Generator function to instantiate a ScopeGuard without writing out the templates. | |
| template<class AcquisitionFunc, class ReleaseFunc> | |
| ScopeGuard< std::remove_reference_t< ReleaseFunc > > | makeScopeGuard (AcquisitionFunc &&acquisitionFunc, ReleaseFunc &&releaseFunc) |
| Generator function to first execute acquisitionFunc and then instantiate a ScopeGuard with releaseFunc. | |
| detail::RangeProxy< T > range | ( | T | begin, |
| T | end ) |
#include <ImFusion/Core/Utils/Range.h>
An iterable wrapper for the half-open interval of integer numbers [begin, end).
| begin | The first element in the range. |
| end | One past the last element in the range. |
is equivalent to
| detail::RangeProxy< T > range | ( | T | end | ) |
#include <ImFusion/Core/Utils/Range.h>
An iterable wrapper for the half-open interval of integer numbers [0, end).
param end One past the last element in the range.
is equivalent to
| detail::StepRangeProxy< T > range | ( | T | begin, |
| T | end, | ||
| T | step_size ) |
#include <ImFusion/Core/Utils/Range.h>
An iterable wrapper for the uniformly numbers in the half-open interval [begin, end).
| begin | The first element in the range. |
| end | The upper bound of the range. |
| step_size | Increment for each iteration step |
is equivalent to
|
nodiscard |
#include <ImFusion/Core/Utils/ScopeGuard.h>
Generator function to instantiate a ScopeGuard without writing out the templates.
|
nodiscard |
#include <ImFusion/Core/Utils/ScopeGuard.h>
Generator function to first execute acquisitionFunc and then instantiate a ScopeGuard with releaseFunc.
Some people prefer this overload since it has the code for acquisition and release at the same place right next to each other.