Chaining and auto bundler generalization #155
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
component::properties<T>::specialized()
component::metadata<T>::specialized()
component::data_tracker
anddata::handler
utility::transient_function
: alternative tostd::function
which never allocates on the heap and takes less time to compileauto_base_bundler
static polymorphic base classoperator()
for various operationstrait::default_runtime_enabled
trait. This can be specialized to have a component default to being disabled at runtimeNew Features
Bundler Chaining
The vast majority of bundler member functions return references to itself, thus, you can now chain member function calls like
.start().store(i).audit(i)
. Additionally, there is aexecute(...)
member function which will execute some function and store the result (w/o copying) so you can return the result after the chain completes. Here is an example:Transient Function
Bug fixes
math::compute<T>::min(...)
andmath::compute<T>::max(...)
that was causing min/max to not get computed correctly in statistics