-
Notifications
You must be signed in to change notification settings - Fork 358
Open
Description
I am very interested in the implementation of the algorithm factory in this framework.It's a wonderfull idea to use templates.Now, I have a doubt about the function Register in class AlgorithmRegister(as you see below),
template <int... Is>
void Register(std::string algorithm_name, int_sequence<Is...>) {
auto function = std::bind(&AlgorithmRegister<AlgorithmBase, Algorithm, Args...>::create,
std::placeholder_template<Is>{}...);
AlgorithmFactory<AlgorithmBase, Args...>::Register(algorithm_name, function);
}Instead of passing the function create directly, it uses bind to wrap it. Such practice leads to a dependency on int_sequence and placeholder_template, making the code complicated. So I rewrite it as follow:
void Register(std::string algorithm_name) {
AlgorithmFactory<AlgorithmBase, Args...>::Register(algorithm_name, &AlgorithmRegister<AlgorithmBase, Algorithm, Args...>::create);
}Would it be better choice?How did the engineer consider it at that time?
Metadata
Metadata
Assignees
Labels
No labels