optimize performance by using function template - it avoids type erasure and heap allocation
This commit is contained in:
parent
07eeac8beb
commit
c98df614c4
4
src/ha.h
4
src/ha.h
@ -401,7 +401,6 @@ namespace Ha {
|
|||||||
|
|
||||||
template <class T>
|
template <class T>
|
||||||
struct Builder : AbstractBuilder {
|
struct Builder : AbstractBuilder {
|
||||||
using factory_builder = std::function<Builder&(Builder&)>;
|
|
||||||
T* cmp;
|
T* cmp;
|
||||||
|
|
||||||
Builder(T* cmp) : AbstractBuilder(), cmp(cmp) {}
|
Builder(T* cmp) : AbstractBuilder(), cmp(cmp) {}
|
||||||
@ -497,7 +496,8 @@ namespace Ha {
|
|||||||
return factoryBuilder(*this);
|
return factoryBuilder(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
Builder& addPreconfigured(factory_builder factoryBuilder) {
|
template <typename Callable>
|
||||||
|
Builder& addPreconfigured(Callable&& factoryBuilder) {
|
||||||
return factoryBuilder(*this);
|
return factoryBuilder(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user