99namespace cadabra
1010 {
1111 template <class Algo , typename ... Args>
12- Ex_ptr apply_algo (Ex_ptr ex, bool deep, bool repeat, unsigned int depth, Args... args )
12+ Ex_ptr apply_algo (Ex_ptr ex, Args... args, bool deep, bool repeat, unsigned int depth)
1313 {
1414 Algo algo (*get_kernel_from_scope (), *ex, args...);
1515
@@ -25,21 +25,21 @@ namespace cadabra
2525 }
2626
2727 template <class Algo , typename ... Args, typename ... PyArgs>
28- void def_algo (pybind11::module & m, const char * name, bool deep, bool repeat, unsigned int depth, PyArgs... args )
28+ void def_algo (pybind11::module & m, const char * name, bool deep, bool repeat, unsigned int depth, PyArgs... pyargs )
2929 {
3030 m.def (name,
31- &apply_algo<Algo, Args...>,
31+ &apply_algo<Algo, Args...>,
3232 pybind11::arg (" ex" ),
33+ std::forward<PyArgs>(pyargs)...,
3334 pybind11::arg (" deep" ) = deep,
3435 pybind11::arg (" repeat" ) = repeat,
3536 pybind11::arg (" depth" ) = depth,
36- std::forward<PyArgs>(args)...,
3737 pybind11::doc (read_manual (" algorithms" , name).c_str ()),
3838 pybind11::return_value_policy::reference_internal);
3939 }
4040
4141 template <class Algo , typename ... Args>
42- Ex_ptr apply_algo_preorder (Ex_ptr ex, bool deep, bool repeat, unsigned int depth, Args... args )
42+ Ex_ptr apply_algo_preorder (Ex_ptr ex, Args... args, bool deep, bool repeat, unsigned int depth)
4343 {
4444 Algo algo (*get_kernel_from_scope (), *ex, args...);
4545
@@ -55,15 +55,15 @@ namespace cadabra
5555 }
5656
5757 template <class Algo , typename ... Args, typename ... PyArgs>
58- void def_algo_preorder (pybind11::module & m, const char * name, bool deep, bool repeat, unsigned int depth, PyArgs... args )
58+ void def_algo_preorder (pybind11::module & m, const char * name, bool deep, bool repeat, unsigned int depth, PyArgs... pyargs )
5959 {
6060 m.def (name,
6161 &apply_algo_preorder<Algo, Args...>,
6262 pybind11::arg (" ex" ),
63+ std::forward<PyArgs>(pyargs)...,
6364 pybind11::arg (" deep" ) = deep,
6465 pybind11::arg (" repeat" ) = repeat,
6566 pybind11::arg (" depth" ) = depth,
66- std::forward<PyArgs>(args)...,
6767 pybind11::doc (read_manual (" algorithms" , name).c_str ()),
6868 pybind11::return_value_policy::reference_internal);
6969 }
0 commit comments