37 lines
1.3 KiB
Plaintext
37 lines
1.3 KiB
Plaintext
[/============================================================================
|
|
Boost.odeint
|
|
|
|
Copyright 2011-2012 Karsten Ahnert
|
|
Copyright 2011-2012 Mario Mulansky
|
|
|
|
Use, modification and distribution is subject to the Boost Software License,
|
|
Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
|
http://www.boost.org/LICENSE_1_0.txt)
|
|
=============================================================================/]
|
|
|
|
|
|
[section Binding member functions]
|
|
|
|
[import ../examples/bind_member_functions.cpp]
|
|
|
|
Binding member functions to a function objects suitable for odeint system function is not easy, at least in C++03. The usual way of using __boost_bind does not work because of the forwarding problem. odeint provides two `do_step` method which only differ in the const specifiers of the arguments and __boost_bind binders only provide the specializations up to two argument which is not enough for odeint.
|
|
|
|
But one can easily implement the according binders themself:
|
|
|
|
[ode_wrapper]
|
|
|
|
One can use this binder as follows
|
|
|
|
[bind_member_function]
|
|
|
|
[section Binding member functions in C++11]
|
|
|
|
[import ../examples/bind_member_functions_cpp11.cpp]
|
|
In C++11 one can use `std::bind` and one does not need to implement the bind themself:
|
|
|
|
[bind_member_function_cpp11]
|
|
|
|
[endsect]
|
|
|
|
[endsect]
|