headmyshoulder / odeint-v2

odeint - solving ordinary differential equations in c++ v2
http://headmyshoulder.github.com/odeint-v2/
Other
341 stars 101 forks source link

Commit ef67c05 breaks Intel C++ 14.0.1 on OS X 10.9 #114

Closed ds283 closed 9 years ago

ds283 commented 10 years ago

I have been successfully using odeint with the Intel C++ compiler, because (at least for my application) it produces markedly more efficient code than clang or gcc.

However, ef67c05 seems to be incompatible with the Intel compiler. I can successfully compile using the Apple-provided clang which ships with Xcode 5.0.1 [Apple LLVM version 5.0 (clang-500.2.79)], and with gcc 4.8.1, but the Intel compiler gives (several copies of)

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/type_traits(2954): error: function "std::__1::__nat::~__nat()" (declared at line 854) cannot be referenced -- it is a deleted function
              __invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...)
              ^
          detected during:
            instantiation of class "std::__1::__invokable_imp<_Fp, _Args...> [with _Fp=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_fehlberg78<std::__1::vector<double, std::__1::allocator<double>>, double, std::__1::vector<double, std::__1::allocator<double>>, double, boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_tag> &, _Args=<const std::__1::vector<double, std::__1::allocator<double>> &>]" at line 2962
            instantiation of class "std::__1::__invokable<_Fp, _Args...> [with _Fp=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_fehlberg78<std::__1::vector<double, std::__1::allocator<double>>, double, std::__1::vector<double, std::__1::allocator<double>>, double, boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_tag> &, _Args=<const std::__1::vector<double, std::__1::allocator<double>> &>]" at line 2981
            instantiation of class "std::__1::__invoke_of<_Fp, _Args...> [with _Fp=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_fehlberg78<std::__1::vector<double, std::__1::allocator<double>>, double, std::__1::vector<double, std::__1::allocator<double>>, double, boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_tag> &, _Args=<const std::__1::vector<double, std::__1::allocator<double>> &>]" at line 2955
            instantiation of class "std::__1::__invokable_imp<_Fp, _Args...> [with _Fp=std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_fehlberg78<std::__1::vector<double, std::__1::allocator<double>>, double, std::__1::vector<double, std::__1::allocator<double>>, double, boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>,
                      boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_tag>> &, _Args=<const std::__1::vector<double, std::__1::allocator<double>> &>]" at line 2962
            instantiation of class "std::__1::__invokable<_Fp, _Args...> [with _Fp=std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_fehlberg78<std::__1::vector<double, std::__1::allocator<double>>, double, std::__1::vector<double, std::__1::allocator<double>>, double, boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>,
                      boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_tag>> &, _Args=<const std::__1::vector<double, std::__1::allocator<double>> &>]" at line 2981

            instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_tag>::try_step(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_tag>::time_type &,
                      boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_fehlberg78<std::__1::vector<double, std::__1::allocator<double>>, double, std::__1::vector<double, std::__1::allocator<double>>, double, boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>,
                      ErrorChecker=boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initially_resizer, System=transport::dquad_background_functor<double>, StateInOut=std::__1::vector<double, std::__1::allocator<double>>]" at line 97 of "/opt/local/include/boost/numeric/odeint/integrate/detail/integrate_times.hpp"
            instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::detail::integrate_times(Stepper, System, State &, TimeIterator, TimeIterator, Time, Observer, boost::numeric::odeint::controlled_stepper_tag) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_fehlberg78<std::__1::vector<double, std::__1::allocator<double>>, double, std::__1::vector<double, std::__1::allocator<double>>, double,
                      boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_tag>, System=transport::dquad_background_functor<double>, State=std::__1::vector<double, std::__1::allocator<double>>,
                      TimeIterator=std::__1::__wrap_iter<const double *>, Time=double, Observer=transport::dquad_background_observer<double>]" at line 47 of "/opt/local/include/boost/numeric/odeint/integrate/integrate_times.hpp"
            instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::integrate_times(Stepper, System, State &, TimeIterator, TimeIterator, Time, Observer) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_fehlberg78<std::__1::vector<double, std::__1::allocator<double>>, double, std::__1::vector<double, std::__1::allocator<double>>, double, boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations,
                      boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::range_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_tag>, System=transport::dquad_background_functor<double>, State=std::__1::vector<double, std::__1::allocator<double>>, TimeIterator=std::__1::__wrap_iter<const double *>, Time=double,
                      Observer=transport::dquad_background_observer<double>]" at line 235 of "/Users/ds283/Documents/Code/CppTransport/CppTransport/examples/dquad-openmp/dq_core.h"
            instantiation of "transport::background<number> transport::dquad<number>::background(const std::__1::vector<number, std::__1::allocator<number>> &, const std::__1::vector<double, std::__1::allocator<double>> &, bool) [with number=double]" at line 281 of "/Users/ds283/Documents/Code/CppTransport/CppTransport/examples/dquad-openmp/dq_core.h"
            instantiation of "std::__1::vector<number, std::__1::allocator<number>> transport::dquad<number>::find_ics(const std::__1::vector<number, std::__1::allocator<number>> &, double, double, double) [with number=double]" at line 82 of "/Users/ds283/Documents/Code/CppTransport/CppTransport/examples/dquad-openmp/main.cpp"

I have to admit that I have not understood in detail exactly what this error indicates. But since everything works with the other compilers, would I be correct in regarding it as a compiler bug?

mariomulansky commented 10 years ago

I just fixed some problem in one test which gave errors with the intel compiler but i don't believe this is related to what you are seeing. With the Linux version of the Intel Compiler 14.01 all tests run smoothly for me now. Are you sure it was introduced by ef67c05 ? can you give a minimal example that fails to compile with icc on OS X?

ds283 commented 10 years ago

Perhaps I am mistaken, but my impression is that the breakage was introduced in ef67c05. I can compile correctly up to 98a7199, which from my reading of the commits seems to include everything prior to ef67c05. On the other hand, it fails with everything subsequent to ef67c05.

Since my first post, I have noticed that the error appears to be caused when I switch the compiler to use the LLVM C++ library using the switch -stdlib=libc++. With this choice I see the failure with everything, even the simplest Lorenz example from the odeint documentation. On the other hand, using the GNU C++ library, this example compiles correctly. Nevertheless, naively, the error does not seem to be with the library because Clang works correctly with libc++.

In my case I am using C++11 features like <array> which are not included with the GNU C++ library shipped by Apple. As a workaround I could try to install a more recent set of GNU headers and try to make the Intel compiler use these, but I have not had much success doing this with the v14 compiler.

mariomulansky commented 10 years ago

I'm not sure I understood everything in your post. So Intel v14.01 works with the GNU stdlibc++, but not with the llvm version? While clang works with both? This (and the error message) looks like if icc doesnt like the llvm stdlib... and not so much a problem of odeint. So you want the llvm version because it has , while the GNU version does not? If is your only problem, you can replace it with <boost/array.hpp> and boost::array (which should fall back to std::array if available)

headmyshoulder commented 10 years ago

If I see this correctly boost/config.hpp does not work correctly with your setup. Btw. which boost version do you use?

I think we should remove the switch for std::bind or boost::bind and only rely on the boost version since this should work everywhere and will fix your problem.

On 11.11.2013 01:27, ds283 wrote:

Perhaps I am mistaken, but my impression is that the breakage was introduced in ef67c05 https://github.com/headmyshoulder/odeint-v2/commit/ef67c05. I can compile correctly up to df962de https://github.com/headmyshoulder/odeint-v2/commit/df962de, which from my reading of the commits seems to include everything prior to ef67c05 https://github.com/headmyshoulder/odeint-v2/commit/ef67c05. On the other hand, it fails with everything subsequent to ef67c05 https://github.com/headmyshoulder/odeint-v2/commit/ef67c05.

Since my first post, I have noticed that the error appears to be caused when I switch the compiler to use the LLVM C++ library using the switch |-stdlib=libc++|. With this choice I see the failure with everything, even the simplest Lorenz example http://headmyshoulder.github.io/odeint-v2/examples.html#lorenzsystem from the odeint documentation. On the other hand, using the GNU C++ library, this example compiles correctly. Nevertheless, naively, the error does not seem to be with the library because Clang works correctly with libc++.

In my case I am using C++11 features like which are not included with the GNU C++ library shipped by Apple. As a workaround I could try to install a more recent set of GNU headers and try to make the Intel compiler use these, but I have not had much success doing this with the v14 compiler.

— Reply to this email directly or view it on GitHub https://github.com/headmyshoulder/odeint-v2/issues/114#issuecomment-28165529.

ds283 commented 10 years ago

@mariomulansky: I think your summary is correct:

Before ef67c05, Intel v14.0.1 and clang both work with stdlibc++ and libc++. After ef67c05, clang works with both but Intel v14.0.1 gives an error with libc++.

@headmyshoulder: I am using Boost 1.54.0 installed via MacPorts, but I manually move boost/numeric/odeint and boost/numeric/odeint.hpp out of the installed tree and replace these with symlinks to an up-to-date Git repository. This is the only way I've been able to successfully use a later version of odeint than the one packaged with Boost.

mariomulansky commented 10 years ago

@headmyshoulder what would that removal mean? would this also imply that std::ref can not be used anymore (which was the reason why that switch was added, right?)

headmyshoulder commented 10 years ago

No, std::ref and boost::ref are not the problems. We use odeint::bind to bind the resizers, and which is a preprocessor switch to check for std::bind or boost::bind. I think we can remove this switch and only use boost::bind, we only use it internally.

On 11.11.2013 10:50, Mario Mulansky wrote:

@headmyshoulder https://github.com/headmyshoulder what would that removal mean? would this also imply that std::ref can not be used anymore (which was the reason why that switch was added, right?)

— Reply to this email directly or view it on GitHub https://github.com/headmyshoulder/odeint-v2/issues/114#issuecomment-28185212.

mariomulansky commented 10 years ago

ok then i'm perfectly fine with removing the std::bind option, as it's only internally.

headmyshoulder commented 10 years ago

Oh, I am sorry. It is not possible to remove odeint::bind. The reason is, that boost.bind pulls the placeholder _1,_2 into the global namespace which can be avoided with std::bind. There, for C++11 we have to use std::bind and with C++03 we use boost::bind.

On 11.11.2013 10:59, Mario Mulansky wrote:

ok then i'm perfectly fine with removing the std::bind option, as it's only internally.

— Reply to this email directly or view it on GitHub https://github.com/headmyshoulder/odeint-v2/issues/114#issuecomment-28185879.

mariomulansky commented 10 years ago

hrm i see. but i'm a bit confused now. if the bug is not related to std::ref / boost::ref, why was it introduced in ef67c05 ? can we revert the bind related part of ef67c05, but keep the ref - related? (maybe the answer is trivially no, but I dont completely understand the changes there)

headmyshoulder commented 10 years ago

On 11/15/2013 10:05 AM, Mario Mulansky wrote:

hrm i see. but i'm a bit confused now. if the bug is not related to std::ref / boost::ref, why was it introduced in ef67c05 https://github.com/headmyshoulder/odeint-v2/commit/ef67c05 ? can we revert the bind related part of ef67c05 https://github.com/headmyshoulder/odeint-v2/commit/ef67c05, but keep the ref - related? (maybe the answer is trivially no, but I dont completely understand the changes there)

IN principle it is possible. I will check it soon if and how it works in detail...

— Reply to this email directly or view it on GitHub https://github.com/headmyshoulder/odeint-v2/issues/114#issuecomment-28555588.

headmyshoulder commented 10 years ago

I have tried to revert some changes of the bind problem. Can you check if it is working again for you?

ds283 commented 10 years ago

Thanks very much for looking into this.

Unfortunately it still fails, both on my code and the Lorenz example. Using the Lorenz code from your examples and the command line

icpc -I/opt/local/include -L/opt/local/lib -std=c++11 -stdlib=libc++ -o lorenz lorenz.cpp

I get the following failure:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/type_traits(2954): error: function "std::__1::__nat::~__nat()" (declared at line 854) cannot be referenced -- it is a deleted function
              __invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...)
              ^
          detected during:
            instantiation of class "std::__1::__invokable_imp<_Fp, _Args...> [with _Fp=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>,
                      boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag> &, _Args=<const state_type &>]" at line 2962
            instantiation of class "std::__1::__invokable<_Fp, _Args...> [with _Fp=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>,
                      boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag> &, _Args=<const state_type &>]" at line 2981
            instantiation of class "std::__1::__invoke_of<_Fp, _Args...> [with _Fp=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>,
                      boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag> &, _Args=<const state_type &>]" at line 2955
            instantiation of class "std::__1::__invokable_imp<_Fp, _Args...> [with _Fp=std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra,
                      boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>> &, _Args=<const state_type &>]" at line 2962
            instantiation of class "std::__1::__invokable<_Fp, _Args...> [with _Fp=std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra,
                      boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>> &, _Args=<const state_type &>]" at line 2981
            [ 4 instantiation contexts not shown ]
            instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step_v1(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &,
                      boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initially_resizer, System=void (*)(const state_type &, state_type &, double), StateInOut=state_type]" at line 564 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp"
            instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &,
                      boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initially_resizer, System=void (*)(const state_type &, state_type &, double), StateInOut=state_type]" at line 101 of "/opt/local/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp"
            instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State &, Time &, Time, Time &, Observer, boost::numeric::odeint::controlled_stepper_tag) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>,
                      boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 45 of "/opt/local/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp"
            instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::integrate_adaptive(Stepper, System, State &, Time, Time, Time, Observer) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 48 of "/opt/local/include/boost/numeric/odeint/integrate/integrate.hpp"
            instantiation of "boost::enable_if<has_value_type<State, boost::mpl::bool_<false>>::type, size_t={__darwin_size_t={unsigned long}}>::type boost::numeric::odeint::integrate(System, State &, Time, Time, Time, Observer) [with System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 30 of "lorenz.cpp"

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/type_traits(2954): error: function "std::__1::__nat::~__nat()" (declared at line 854) cannot be referenced -- it is a deleted function
              __invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...)
              ^
          detected during:
            instantiation of class "std::__1::__invokable_imp<_Fp, _Args...> [with _Fp=std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra,
                      boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>> &, _Args=<const state_type &>]" at line 2962
            instantiation of class "std::__1::__invokable<_Fp, _Args...> [with _Fp=std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra,
                      boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>> &, _Args=<const state_type &>]" at line 2981
            instantiation of class "std::__1::__invoke_of<_Fp, _Args...> [with _Fp=std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra,
                      boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>> &, _Args=<const state_type &>]" at line 1691 of "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/functional"
            instantiation of "std::__1::__bind_return<_Fp, _BoundArgs, _Args, std::__1::_is_valid_bind_return<_Fp, _BoundArgs, _Args>::value>::type std::__1::__apply_functor(_Fp &, _BoundArgs &, std::__1::__tuple_indices<_Indx...>, _Args &&) [with _Fp=bool (boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations,
                      boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::*)(const state_type &), _BoundArgs=std::__1::tuple<std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double,
                      state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>, std::__1::placeholders::__ph<1>>, _Indx=<0UL, 1UL>, _Args=std::__1::tuple<const state_type
                      &>]" at line 1753 of "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/functional"
            instantiation of "std::__1::__bind_return<std::__1::decay<_Fp>::type, std::__1::tuple<std::__1::decay<_BoundArgs>::type...>, std::__1::tuple<_Args &&...>, std::__1::_is_valid_bind_return<std::__1::decay<_Fp>::type, std::__1::tuple<std::__1::decay<_BoundArgs>::type...>, std::__1::tuple<_Args &&...>>::value>::type std::__1::__bind<_Fp, _BoundArgs...>::operator()(_Args &&...) [with _Fp=bool
                      (boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer,
                      boost::numeric::odeint::explicit_error_stepper_fsal_tag>::*)(const state_type &), _BoundArgs=<std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra,
                      boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>, std::__1::placeholders::__ph<1> &>, _Args=<const state_type &>]" at line 72 of "/opt/local/include/boost/numeric/odeint/util/resizer.hpp"
            instantiation of "bool boost::numeric::odeint::initially_resizer::adjust_size(const State &, ResizeFunction) [with State=state_type, ResizeFunction=std::__1::__bind<bool (boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::*)(const state_type &), std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations,
                      boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>, std::__1::placeholders::__ph<1> &>]" at line 855 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp"
            instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step_v1(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &,
                      boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initially_resizer, System=void (*)(const state_type &, state_type &, double), StateInOut=state_type]" at line 564 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp"
            instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &,
                      boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initially_resizer, System=void (*)(const state_type &, state_type &, double), StateInOut=state_type]" at line 101 of "/opt/local/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp"
            instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State &, Time &, Time, Time &, Observer, boost::numeric::odeint::controlled_stepper_tag) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>,
                      boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 45 of "/opt/local/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp"
            instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::integrate_adaptive(Stepper, System, State &, Time, Time, Time, Observer) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 48 of "/opt/local/include/boost/numeric/odeint/integrate/integrate.hpp"
            instantiation of "boost::enable_if<has_value_type<State, boost::mpl::bool_<false>>::type, size_t={__darwin_size_t={unsigned long}}>::type boost::numeric::odeint::integrate(System, State &, Time, Time, Time, Observer) [with System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 30 of "lorenz.cpp"

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/type_traits(2954): error: function "std::__1::__nat::~__nat()" (declared at line 854) cannot be referenced -- it is a deleted function
              __invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...)
              ^
          detected during:
            instantiation of class "std::__1::__invokable_imp<_Fp, _Args...> [with _Fp=std::__1::placeholders::__ph<1> &, _Args=<const state_type &>]" at line 2962
            instantiation of class "std::__1::__invokable<_Fp, _Args...> [with _Fp=std::__1::placeholders::__ph<1> &, _Args=<const state_type &>]" at line 2981
            instantiation of class "std::__1::__invoke_of<_Fp, _Args...> [with _Fp=std::__1::placeholders::__ph<1> &, _Args=<const state_type &>]" at line 1691 of "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/functional"
            instantiation of "std::__1::__bind_return<_Fp, _BoundArgs, _Args, std::__1::_is_valid_bind_return<_Fp, _BoundArgs, _Args>::value>::type std::__1::__apply_functor(_Fp &, _BoundArgs &, std::__1::__tuple_indices<_Indx...>, _Args &&) [with _Fp=bool (boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations,
                      boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::*)(const state_type &), _BoundArgs=std::__1::tuple<std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double,
                      state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>, std::__1::placeholders::__ph<1>>, _Indx=<0UL, 1UL>, _Args=std::__1::tuple<const state_type
                      &>]" at line 1753 of "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/functional"
            instantiation of "std::__1::__bind_return<std::__1::decay<_Fp>::type, std::__1::tuple<std::__1::decay<_BoundArgs>::type...>, std::__1::tuple<_Args &&...>, std::__1::_is_valid_bind_return<std::__1::decay<_Fp>::type, std::__1::tuple<std::__1::decay<_BoundArgs>::type...>, std::__1::tuple<_Args &&...>>::value>::type std::__1::__bind<_Fp, _BoundArgs...>::operator()(_Args &&...) [with _Fp=bool
                      (boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer,
                      boost::numeric::odeint::explicit_error_stepper_fsal_tag>::*)(const state_type &), _BoundArgs=<std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra,
                      boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>, std::__1::placeholders::__ph<1> &>, _Args=<const state_type &>]" at line 72 of "/opt/local/include/boost/numeric/odeint/util/resizer.hpp"
            instantiation of "bool boost::numeric::odeint::initially_resizer::adjust_size(const State &, ResizeFunction) [with State=state_type, ResizeFunction=std::__1::__bind<bool (boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::*)(const state_type &), std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations,
                      boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>, std::__1::placeholders::__ph<1> &>]" at line 855 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp"
            instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step_v1(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &,
                      boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initially_resizer, System=void (*)(const state_type &, state_type &, double), StateInOut=state_type]" at line 564 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp"
            instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &,
                      boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initially_resizer, System=void (*)(const state_type &, state_type &, double), StateInOut=state_type]" at line 101 of "/opt/local/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp"
            instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State &, Time &, Time, Time &, Observer, boost::numeric::odeint::controlled_stepper_tag) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>,
                      boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 45 of "/opt/local/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp"
            instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::integrate_adaptive(Stepper, System, State &, Time, Time, Time, Observer) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 48 of "/opt/local/include/boost/numeric/odeint/integrate/integrate.hpp"
            instantiation of "boost::enable_if<has_value_type<State, boost::mpl::bool_<false>>::type, size_t={__darwin_size_t={unsigned long}}>::type boost::numeric::odeint::integrate(System, State &, Time, Time, Time, Observer) [with System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 30 of "lorenz.cpp"

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/type_traits(2954): error: function "std::__1::__nat::~__nat()" (declared at line 854) cannot be referenced -- it is a deleted function
              __invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...)
              ^
          detected during:
            instantiation of class "std::__1::__invokable_imp<_Fp, _Args...> [with _Fp=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer> &, _Args=<const state_type &>]" at line 2962
            instantiation of class "std::__1::__invokable<_Fp, _Args...> [with _Fp=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer> &, _Args=<const state_type &>]" at line 2981
            instantiation of class "std::__1::__invoke_of<_Fp, _Args...> [with _Fp=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer> &, _Args=<const state_type &>]" at line 2955
            instantiation of class "std::__1::__invokable_imp<_Fp, _Args...> [with _Fp=std::__1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>> &, _Args=<const state_type &>]" at line 2962
            instantiation of class "std::__1::__invokable<_Fp, _Args...> [with _Fp=std::__1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>> &, _Args=<const state_type &>]" at line 2981
            [ 8 instantiation contexts not shown ]
            instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step_v1(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &,
                      boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initially_resizer, System=void (*)(const state_type &, state_type &, double), StateInOut=state_type]" at line 564 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp"
            instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &,
                      boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initially_resizer, System=void (*)(const state_type &, state_type &, double), StateInOut=state_type]" at line 101 of "/opt/local/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp"
            instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State &, Time &, Time, Time &, Observer, boost::numeric::odeint::controlled_stepper_tag) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>,
                      boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 45 of "/opt/local/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp"
            instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::integrate_adaptive(Stepper, System, State &, Time, Time, Time, Observer) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 48 of "/opt/local/include/boost/numeric/odeint/integrate/integrate.hpp"
            instantiation of "boost::enable_if<has_value_type<State, boost::mpl::bool_<false>>::type, size_t={__darwin_size_t={unsigned long}}>::type boost::numeric::odeint::integrate(System, State &, Time, Time, Time, Observer) [with System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 30 of "lorenz.cpp"

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/type_traits(2954): error: function "std::__1::__nat::~__nat()" (declared at line 854) cannot be referenced -- it is a deleted function
              __invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...)
              ^
          detected during:
            instantiation of class "std::__1::__invokable_imp<_Fp, _Args...> [with _Fp=std::__1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>> &, _Args=<const state_type &>]" at line 2962
            instantiation of class "std::__1::__invokable<_Fp, _Args...> [with _Fp=std::__1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>> &, _Args=<const state_type &>]" at line 2981
            instantiation of class "std::__1::__invoke_of<_Fp, _Args...> [with _Fp=std::__1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>> &, _Args=<const state_type &>]" at line 1691 of "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/functional"
            instantiation of "std::__1::__bind_return<_Fp, _BoundArgs, _Args, std::__1::_is_valid_bind_return<_Fp, _BoundArgs, _Args>::value>::type std::__1::__apply_functor(_Fp &, _BoundArgs &, std::__1::__tuple_indices<_Indx...>, _Args &&) [with _Fp=bool (boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>::*)(const state_type &),
                      _BoundArgs=std::__1::tuple<std::__1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>>, std::__1::placeholders::__ph<1>>, _Indx=<0UL, 1UL>, _Args=std::__1::tuple<const state_type &>]" at line 1753 of
                      "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/functional"
            instantiation of "std::__1::__bind_return<std::__1::decay<_Fp>::type, std::__1::tuple<std::__1::decay<_BoundArgs>::type...>, std::__1::tuple<_Args &&...>, std::__1::_is_valid_bind_return<std::__1::decay<_Fp>::type, std::__1::tuple<std::__1::decay<_BoundArgs>::type...>, std::__1::tuple<_Args &&...>>::value>::type std::__1::__bind<_Fp, _BoundArgs...>::operator()(_Args &&...) [with _Fp=bool (boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>::*)(const state_type &), _BoundArgs=<std::__1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>>, std::__1::placeholders::__ph<1> &>, _Args=<const state_type &>]" at line 72
                      of "/opt/local/include/boost/numeric/odeint/util/resizer.hpp"
            [ 5 instantiation contexts not shown ]
            instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step_v1(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &,
                      boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initially_resizer, System=void (*)(const state_type &, state_type &, double), StateInOut=state_type]" at line 564 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp"
            instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &,
                      boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initially_resizer, System=void (*)(const state_type &, state_type &, double), StateInOut=state_type]" at line 101 of "/opt/local/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp"
            instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State &, Time &, Time, Time &, Observer, boost::numeric::odeint::controlled_stepper_tag) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>,
                      boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 45 of "/opt/local/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp"
            instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::integrate_adaptive(Stepper, System, State &, Time, Time, Time, Observer) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 48 of "/opt/local/include/boost/numeric/odeint/integrate/integrate.hpp"
            instantiation of "boost::enable_if<has_value_type<State, boost::mpl::bool_<false>>::type, size_t={__darwin_size_t={unsigned long}}>::type boost::numeric::odeint::integrate(System, State &, Time, Time, Time, Observer) [with System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 30 of "lorenz.cpp"

As before, it works with the GNU library obtained by dropping --stdlib=libc++ from the command line.

headmyshoulder commented 10 years ago

Are you sure, that it is odeint? For me, the code looks exactly like the code before ef67c05 . Unfortunately I don't have an Intel compiler and OSX at hand. Maybe I can submit another try tomorrow in a separate branch.

On 11/25/2013 11:44 AM, ds283 wrote:

Thanks very much for looking into this.

Unfortunately it still fails, both on my code and the Lorenz example. Using the Lorenz code from your examples http://headmyshoulder.github.io/odeint-v2/examples.html and the command line

icpc -I/opt/local/include -L/opt/local/lib -std=c++11 -stdlib=libc++ -o lorenz lorenz.cpp

I get the following failure:

|/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/type_traits(2954): error: function "std::1::nat::~nat()" (declared at line 854) cannot be referenced -- it is a deleted function invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...) ^ detected during: instantiation of class "std::1::invokable_imp<_Fp, _Args...> [with _Fp=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag> &, _Args=<const state_type &>]" at line 2962 instantiation of class "std::1::invokable<_Fp, _Args...> [with _Fp=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag> &, _Args=<const state_type &>]" at line 2981 instantiation of class "std::1::invoke_of<_Fp, _Args...> [with _Fp=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag> &, _Args=<const state_type &>]" at line 2955 instantiation of class "std::1::invokable_imp<_Fp, _Args...> [with _Fp=std::1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>> &, _Args=<const state_type &>]" at line 2962 instantiation of class "std::1::invokable<_Fp, _Args...> [with _Fp=std::1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>> &, _Args=<const state_type &>]" at line 2981 [ 4 instantiation contexts not shown ] instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step_v1(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initiallyresizer, System=void ()(const state_type &, state_type &, double), StateInOut=state_type]" at line 564 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp" instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initiallyresizer, System=void ()(const state_type &, state_type &, double), StateInOut=state_type]" at line 101 of "/opt/local/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp" instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State &, Time &, Time, Time &, Observer, boost::numeric::odeint::controlled_stepper_tag) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>, System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 45 of "/opt/local/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp" instantiation of "size_t={darwin_size_t={unsigned long}} boost::numeric::odeint::integrate_adaptive(Stepper, System, State &, Time, Time, Time, Observer) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>, System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 48 of "/opt/local/include/boost/numeric/odeint/integrate/integrate.hpp" instantiation of "boost::enable_if<has_valuetype<State, boost::mpl::bool>::type, size_t={darwin_sizet={unsigned long}}>::type boost::numeric::odeint::integrate(System, State &, Time, Time, Time, Observer) [with System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 30 of "lorenz.cpp"

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/type_traits(2954): error: function "std::1::nat::~nat()" (declared at line 854) cannot be referenced -- it is a deleted function invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...) ^ detected during: instantiation of class "std::1::invokable_imp<_Fp, _Args...> [with _Fp=std::1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>> &, _Args=<const state_type &>]" at line 2962 instantiation of class "std::1::invokable<_Fp, _Args...> [with _Fp=std::1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>> &, _Args=<const state_type &>]" at line 2981 instantiation of class "std::1::invoke_of<_Fp, _Args...> [with _Fp=std::1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>> &, _Args=<const state_type &>]" at line 1691 of "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/functional" instantiation of "std::1::bind_return<_Fp, _BoundArgs, _Args, std::__1::_is_valid_bind_return<_Fp, _BoundArgs, _Args>::value>::type std::1::apply_functor(_Fp &, _BoundArgs &, std::1::tuple_indices<_Indx...>, _Args &&) [with _Fp=bool (boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>::)(const state_type &), _BoundArgs=std::1::tuple<std::1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>, std::1::placeholders::ph<1>>, _Indx=<0UL, 1UL>, _Args=std::__1::tuple<const state_type &>]" at line 1753 of "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/functional" instantiation of "std::1::bind_returnstd::__1::decay<_Fp::type, std::1::tuplestd::1::decay<_BoundArgs::type...>, std::__1::tuple<_Args &&...>, std::1::_is_valid_bind_returnstd::1::decay<_Fp::type, std::1::tuplestd::1::decay<_BoundArgs::type...>, std::1::tuple<_Args &&...>>::value>::type std::1::bind<_Fp, _BoundArgs...>::operator()(_Args &&...) [with _Fp=bool (boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>::)(const state_type &), _BoundArgs=<std::1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>, std::1::placeholders::ph<1> &>, _Args=<const state_type &>]" at line 72 of "/opt/local/include/boost/numeric/odeint/util/resizer.hpp" instantiation of "bool boost::numeric::odeint::initially_resizer::adjust_size(const State &, ResizeFunction) [with State=state_type, ResizeFunction=std::1::bind<bool (boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>::)(const state_type &), std::1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>, std::1::placeholders::ph<1> &>]" at line 855 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp" instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step_v1(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initiallyresizer, System=void ()(const state_type &, state_type &, double), StateInOut=state_type]" at line 564 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp" instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initiallyresizer, System=void ()(const state_type &, state_type &, double), StateInOut=state_type]" at line 101 of "/opt/local/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp" instantiation of "size_t={darwin_size_t={unsigned long}} boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State &, Time &, Time, Time &, Observer, boost::numeric::odeint::controlled_stepper_tag) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>, System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 45 of "/opt/local/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp" instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::integrate_adaptive(Stepper, System, State &, Time, Time, Time, Observer) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>, System=void ()(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 48 of "/opt/local/include/boost/numeric/odeint/integrate/integrate.hpp" instantiation of "boost::enable_if<has_valuetype<State, boost::mpl::bool>::type, size_t={darwin_sizet={unsigned long}}>::type boost::numeric::odeint::integrate(System, State &, Time, Time, Time, Observer) [with System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 30 of "lorenz.cpp"

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/type_traits(2954): error: function "std::1::nat::~nat()" (declared at line 854) cannot be referenced -- it is a deleted function invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...) ^ detected during: instantiation of class "std::1::invokable_imp<_Fp, _Args...> [with _Fp=std::1::placeholders::ph<1> &, _Args=<const state_type &>]" at line 2962 instantiation of class "std::1::invokable<_Fp, _Args...> [with _Fp=std::1::placeholders::ph<1> &, _Args=<const state_type &>]" at line 2981 instantiation of class "std::1::invoke_of<_Fp, _Args...> [with _Fp=std::1::placeholders::ph<1> &, _Args=<const state_type &>]" at line 1691 of "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/functional" instantiation of "std::1::bind_return<_Fp, _BoundArgs, _Args, std::1::_is_valid_bind_return<_Fp, _BoundArgs, _Args>::value>::type std::1::apply_functor(_Fp &, _BoundArgs &, std::1::tuple_indices<_Indx...>, _Args &&) [with _Fp=bool (boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>::)(const state_type &), _BoundArgs=std::1::tuple<std::1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>, std::1::placeholders::ph<1>>, _Indx=<0UL, 1UL>, _Args=std::1::tuple<const state_type &>]" at line 1753 of "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/functional" instantiation of "std::1::bind_returnstd::1::decay<_Fp::type, std::1::tuplestd::1::decay<_BoundArgs::type...>, std::1::tuple<_Args &&...>, std::1::_is_valid_bind_returnstd::1::decay<_Fp::type, std::1::tuplestd::1::decay<_BoundArgs::type...>, std::1::tuple<_Args &&...>>::value>::type std::1::bind<_Fp, _BoundArgs...>::operator()(_Args &&...) [with _Fp=bool (boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>::)(const state_type &), _BoundArgs=<std::1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>, std::1::placeholders::ph<1> &>, _Args=<const state_type &>]" at line 72 of "/opt/local/include/boost/numeric/odeint/util/resizer.hpp" instantiation of "bool boost::numeric::odeint::initially_resizer::adjust_size(const State &, ResizeFunction) [with State=state_type, ResizeFunction=std::1::bind<bool (boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>::)(const state_type &), std::1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>, std::1::placeholders::ph<1> &>]" at line 855 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp" instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step_v1(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initiallyresizer, System=void ()(const state_type &, state_type &, double), StateInOut=state_type]" at line 564 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp" instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initiallyresizer, System=void ()(const state_type &, state_type &, double), StateInOut=state_type]" at line 101 of "/opt/local/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp" instantiation of "size_t={darwin_size_t={unsigned long}} boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State &, Time &, Time, Time &, Observer, boost::numeric::odeint::controlled_stepper_tag) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>, System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 45 of "/opt/local/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp" instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::integrate_adaptive(Stepper, System, State &, Time, Time, Time, Observer) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>, System=void ()(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 48 of "/opt/local/include/boost/numeric/odeint/integrate/integrate.hpp" instantiation of "boost::enable_if<has_valuetype<State, boost::mpl::bool>::type, size_t={__darwin_sizet={unsigned long}}>::type boost::numeric::odeint::integrate(System, State &, Time, Time, Time, Observer) [with System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 30 of "lorenz.cpp"

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/type_traits(2954): error: function "std::1::nat::~nat()" (declared at line 854) cannot be referenced -- it is a deleted function invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...) ^ detected during: instantiation of class "std::1::invokable_imp<_Fp, _Args...> [with _Fp=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer> &, _Args=<const state_type &>]" at line 2962 instantiation of class "std::1::invokable<_Fp, _Args...> [with _Fp=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer> &, _Args=<const state_type &>]" at line 2981 instantiation of class "std::1::invoke_of<_Fp, _Args...> [with _Fp=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer> &, _Args=<const state_type &>]" at line 2955 instantiation of class "std::1::invokable_imp<_Fp, _Args...> [with _Fp=std::1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>> &, _Args=<const state_type &>]" at line 2962 instantiation of class "std::1::invokable<_Fp, _Args...> [with _Fp=std::__1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>> &, _Args=<const state_type &>]" at line 2981 [ 8 instantiation contexts not shown ] instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step_v1(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initiallyresizer, System=void ()(const state_type &, state_type &, double), StateInOut=state_type]" at line 564 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp" instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initiallyresizer, System=void ()(const state_type &, state_type &, double), StateInOut=state_type]" at line 101 of "/opt/local/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp" instantiation of "size_t={darwin_size_t={unsigned long}} boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State &, Time &, Time, Time &, Observer, boost::numeric::odeint::controlled_stepper_tag) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>, System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 45 of "/opt/local/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp" instantiation of "size_t={darwin_size_t={unsigned long}} boost::numeric::odeint::integrate_adaptive(Stepper, System, State &, Time, Time, Time, Observer) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>, System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 48 of "/opt/local/include/boost/numeric/odeint/integrate/integrate.hpp" instantiation of "boost::enable_if<has_valuetype<State, boost::mpl::bool>::type, size_t={darwin_sizet={unsigned long}}>::type boost::numeric::odeint::integrate(System, State &, Time, Time, Time, Observer) [with System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 30 of "lorenz.cpp"

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/type_traits(2954): error: function "std::1::nat::~nat()" (declared at line 854) cannot be referenced -- it is a deleted function invoke(_VSTD::declval<_Fp>(), _VSTD::declval<_Args>()...) ^ detected during: instantiation of class "std::1::invokable_imp<_Fp, _Args...> [with _Fp=std::1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>> &, _Args=<const state_type &>]" at line 2962 instantiation of class "std::1::invokable<_Fp, _Args...> [with _Fp=std::1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>> &, _Args=<const state_type &>]" at line 2981 instantiation of class "std::1::invoke_of<_Fp, _Args...> [with _Fp=std::1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>> &, _Args=<const state_type &>]" at line 1691 of "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/functional" instantiation of "std::1::bind_return<_Fp, _BoundArgs, _Args, std::__1::_is_valid_bind_return<_Fp, _BoundArgs, _Args>::value>::type std::1::apply_functor(_Fp &, _BoundArgs &, std::1::tuple_indices<_Indx...>, _Args &&) [with _Fp=bool (boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initiallyresizer>::)(const state_type &), _BoundArgs=std::1::tuple<std::1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>>, std::1::placeholders::ph<1>>, _Indx=<0UL, 1UL>, _Args=std::__1::tuple<const state_type &>]" at line 1753 of "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/c++/v1/functional" instantiation of "std::1::bind_returnstd::__1::decay<_Fp::type, std::1::tuplestd::1::decay<_BoundArgs::type...>, std::__1::tuple<_Args &&...>, std::1::_is_valid_bind_returnstd::1::decay<_Fp::type, std::1::tuplestd::1::decay<_BoundArgs::type...>, std::1::tuple<_Args &&...>>::value>::type std::1::bind<_Fp, _BoundArgs...>::operator()(_Args &&...) [with _Fp=bool (boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initiallyresizer>::)(const state_type &), _BoundArgs=<std::1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>>, std::1::placeholders::ph<1> &>, _Args=<const state_type &>]" at line 72 of "/opt/local/include/boost/numeric/odeint/util/resizer.hpp" [ 5 instantiation contexts not shown ] instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step_v1(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initiallyresizer, System=void ()(const state_type &, state_type &, double), StateInOut=state_type]" at line 564 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp" instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initiallyresizer, System=void ()(const state_type &, state_type &, double), StateInOut=state_type]" at line 101 of "/opt/local/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp" instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State &, Time &, Time, Time &, Observer, boost::numeric::odeint::controlled_stepper_tag) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>, System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 45 of "/opt/local/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp" instantiation of "size_t={darwin_size_t={unsigned long}} boost::numeric::odeint::integrate_adaptive(Stepper, System, State &, Time, Time, Time, Observer) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>, System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 48 of "/opt/local/include/boost/numeric/odeint/integrate/integrate.hpp" instantiation of "boost::enable_if<has_valuetype<State, boost::mpl::bool>::type, size_t={__darwin_sizet={unsigned long}}>::type boost::numeric::odeint::integrate(System, State &, Time, Time, Time, Observer) [with System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 30 of "lorenz.cpp" |

As before, it works with the GNU library obtained by dropping |--stdlib=libc++| from the command line.

— Reply to this email directly or view it on GitHub https://github.com/headmyshoulder/odeint-v2/issues/114#issuecomment-29192091.

ds283 commented 10 years ago

Apologies, this was an operator error. I failed to correctly merge your recent commits.

It still fails, but with a different error: no instance of overloaded function "boost::get_pointer" matches the argument list.

The complete output from the Lorenz example with command line

icpc -I/opt/local/include -L/opt/local/lib -std=c++11 -stdlib=libc++ -o lorenz lorenz.cpp

is

/opt/local/include/boost/bind/mem_fn_template.hpp(156): error: no instance of overloaded function "boost::get_pointer" matches the argument list
            argument types are: (std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer,
                      boost::numeric::odeint::explicit_error_stepper_fsal_tag>>)
          BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1);
                               ^
          detected during:
            instantiation of "R boost::_mfi::mf1<R, T, A1>::call(U &, const void *, B1 &) const [with R=bool, T=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra,
                      boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, A1=const state_type &, U=std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>,
                      boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>, B1=const state_type]" at line 171
            instantiation of "R boost::_mfi::mf1<R, T, A1>::operator()(U &, A1) const [with R=bool, T=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>,
                      boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, A1=const state_type &, U=std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>]" at line 303 of "/opt/local/include/boost/bind/bind.hpp"
            instantiation of "R boost::_bi::list2<A1, A2>::operator()(boost::_bi::type<R>, F &, A &, long) [with A1=boost::_bi::value<std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>>, A2=boost::arg<1>, R=bool, F=boost::_mfi::mf1<bool, boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations,
                      boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, const state_type &>, A=boost::_bi::list1<const state_type &>]" at line 47 of "/opt/local/include/boost/bind/bind_template.hpp"
            instantiation of "boost::_bi::bind_t<R, F, L>::result_type boost::_bi::bind_t<R, F, L>::operator()(const A1 &) [with R=bool, F=boost::_mfi::mf1<bool, boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, const state_type &>, L=boost::_bi::list2<boost::_bi::value<std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra,
                      boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>>, boost::arg<1>>, A1=state_type]" at line 72 of "/opt/local/include/boost/numeric/odeint/util/resizer.hpp"
            instantiation of "bool boost::numeric::odeint::initially_resizer::adjust_size(const State &, ResizeFunction) [with State=state_type, ResizeFunction=boost::_bi::bind_t<bool, boost::_mfi::mf1<bool, boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>,
                      boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, const state_type &>, boost::_bi::list2<boost::_bi::value<std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>>, boost::arg<1>>>]" at line 855 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp"
            instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step_v1(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &,
                      boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initially_resizer, System=void (*)(const state_type &, state_type &, double), StateInOut=state_type]" at line 564 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp"
            instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &,
                      boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initially_resizer, System=void (*)(const state_type &, state_type &, double), StateInOut=state_type]" at line 101 of "/opt/local/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp"
            instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State &, Time &, Time, Time &, Observer, boost::numeric::odeint::controlled_stepper_tag) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>,
                      boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 45 of "/opt/local/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp"
            instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::integrate_adaptive(Stepper, System, State &, Time, Time, Time, Observer) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 48 of "/opt/local/include/boost/numeric/odeint/integrate/integrate.hpp"
            instantiation of "boost::enable_if<has_value_type<State, boost::mpl::bool_<false>>::type, size_t={__darwin_size_t={unsigned long}}>::type boost::numeric::odeint::integrate(System, State &, Time, Time, Time, Observer) [with System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 30 of "lorenz.cpp"

/opt/local/include/boost/bind/mem_fn_template.hpp(156): error: no instance of overloaded function "boost::get_pointer" matches the argument list
            argument types are: (std::__1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>>)
          BOOST_MEM_FN_RETURN (get_pointer(u)->*f_)(b1);
                               ^
          detected during:
            instantiation of "R boost::_mfi::mf1<R, T, A1>::call(U &, const void *, B1 &) const [with R=bool, T=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, A1=const state_type &, U=std::__1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra,
                      boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>>, B1=const state_type]" at line 171
            instantiation of "R boost::_mfi::mf1<R, T, A1>::operator()(U &, A1) const [with R=bool, T=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, A1=const state_type &, U=std::__1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra,
                      boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>>]" at line 303 of "/opt/local/include/boost/bind/bind.hpp"
            instantiation of "R boost::_bi::list2<A1, A2>::operator()(boost::_bi::type<R>, F &, A &, long) [with A1=boost::_bi::value<std::__1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>>>, A2=boost::arg<1>, R=bool, F=boost::_mfi::mf1<bool, boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type,
                      double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, const state_type &>, A=boost::_bi::list1<const state_type &>]" at line 47 of "/opt/local/include/boost/bind/bind_template.hpp"
            instantiation of "boost::_bi::bind_t<R, F, L>::result_type boost::_bi::bind_t<R, F, L>::operator()(const A1 &) [with R=bool, F=boost::_mfi::mf1<bool, boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, const state_type &>,
                      L=boost::_bi::list2<boost::_bi::value<std::__1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>>>, boost::arg<1>>, A1=state_type]" at line 72 of "/opt/local/include/boost/numeric/odeint/util/resizer.hpp"
            instantiation of "bool boost::numeric::odeint::initially_resizer::adjust_size(const State &, ResizeFunction) [with State=state_type, ResizeFunction=boost::_bi::bind_t<bool, boost::_mfi::mf1<bool, boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, const state_type &>,
                      boost::_bi::list2<boost::_bi::value<std::__1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>>>, boost::arg<1>>>]" at line 181 of "/opt/local/include/boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp"
            [ 4 instantiation contexts not shown ]
            instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step_v1(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &,
                      boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initially_resizer, System=void (*)(const state_type &, state_type &, double), StateInOut=state_type]" at line 564 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp"
            instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &,
                      boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initially_resizer, System=void (*)(const state_type &, state_type &, double), StateInOut=state_type]" at line 101 of "/opt/local/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp"
            instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State &, Time &, Time, Time &, Observer, boost::numeric::odeint::controlled_stepper_tag) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>,
                      boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 45 of "/opt/local/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp"
            instantiation of "size_t={__darwin_size_t={unsigned long}} boost::numeric::odeint::integrate_adaptive(Stepper, System, State &, Time, Time, Time, Observer) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double,
                      boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 48 of "/opt/local/include/boost/numeric/odeint/integrate/integrate.hpp"
            instantiation of "boost::enable_if<has_value_type<State, boost::mpl::bool_<false>>::type, size_t={__darwin_size_t={unsigned long}}>::type boost::numeric::odeint::integrate(System, State &, Time, Time, Time, Observer) [with System=void (*)(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 30 of "lorenz.cpp"

Everything still works OK with the libstdc++

headmyshoulder commented 10 years ago

But does it work with a pre ef67c05 version of odeint? Can you tests this. You can checkout an old version via

git checkout 98a71997805603ba17c36a928576e89e43cd653f

On 25.11.2013 23:41, ds283 wrote:

Apologies, this was an operator error. I failed to correctly merge your recent commits.

It still fails, but with a different error: |no instance of overloaded function "boost::get_pointer" matches the argument list|.

The complete output from the Lorenz example with command line

icpc -I/opt/local/include -L/opt/local/lib -std=c++11 -stdlib=libc++ -o lorenz lorenz.cpp

is

|/opt/local/include/boost/bind/mem_fn_template.hpp(156): error: no instance of overloaded function "boost::get_pointer" matches the argument list argument types are: (std::1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>) BOOST_MEM_FN_RETURN (get_pointer(u)->f)(b1); ^ detected during: instantiation of "R boost::_mfi::mf1<R, T, A1>::call(U &, const void *, B1 &) const [with R=bool, T=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, A1=const state_type &, U=std::1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>, B1=const state_type]" at line 171 instantiation of "R boost::_mfi::mf1<R, T, A1>::operator()(U &, A1) const [with R=bool, T=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, A1=const state_type &, U=std::1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>]" at line 303 of "/opt/local/include/boost/bind/bind.hpp" instantiation of "R boost::_bi::list2<A1, A2>::operator()(boost::_bi::type, F &, A &, long) [with A1=boost::_bi::value<std::__1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>>, A2=boost::arg<1>, R=bool, F=boost::_mfi::mf1<bool, boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, const state_type &>, A=boost::_bi::list1<const state_type &>]" at line 47 of "/opt/local/include/boost/bind/bind_template.hpp" instantiation of "boost::_bi::bind_t<R, F, L>::result_type boost::_bi::bind_t<R, F, L>::operator()(const A1 &) [with R=bool, F=boost::_mfi::mf1<bool, boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, const state_type &>, L=boost::_bi::list2<boost::_bi::value<std::1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>>, boost::arg<1>>, A1=state_type]" at line 72 of "/opt/local/include/boost/numeric/odeint/util/resizer.hpp" instantiation of "bool boost::numeric::odeint::initially_resizer::adjust_size(const State &, ResizeFunction) [with State=state_type, ResizeFunction=boost::_bi::bind_t<bool, boost::_mfi::mf1<bool, boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>, const state_type &>, boost::_bi::list2<boost::_bi::value<std::1::reference_wrapper<boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>>>, boost::arg<1>>>]" at line 855 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp" instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step_v1(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initiallyresizer, System=void ()(const state_type &, state_type &, double), StateInOut=state_type]" at line 564 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp" instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initiallyresizer, System=void ()(const state_type &, state_type &, double), StateInOut=state_type]" at line 101 of "/opt/local/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp" instantiation of "size_t={darwin_size_t={unsigned long}} boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State &, Time &, Time, Time &, Observer, boost::numeric::odeint::controlled_stepper_tag) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>, System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 45 of "/opt/local/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp" instantiation of "size_t={darwin_size_t={unsigned long}} boost::numeric::odeint::integrate_adaptive(Stepper, System, State &, Time, Time, Time, Observer) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>, System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 48 of "/opt/local/include/boost/numeric/odeint/integrate/integrate.hpp" instantiation of "boost::enable_if<has_valuetype<State, boost::mpl::bool>::type, size_t={darwin_sizet={unsigned long}}>::type boost::numeric::odeint::integrate(System, State &, Time, Time, Time, Observer) [with System=void ()(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 30 of "lorenz.cpp"

/opt/local/include/boost/bind/mem_fn_template.hpp(156): error: no instance of overloaded function "boost::get_pointer" matches the argument list argument types are: (std::1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>>) BOOST_MEM_FN_RETURN (get_pointer(u)->f)(b1); ^ detected during: instantiation of "R boost::_mfi::mf1<R, T, A1>::call(U &, const void *, B1 &) const [with R=bool, T=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, A1=const state_type &, U=std::1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>>, B1=const state_type]" at line 171 instantiation of "R boost::_mfi::mf1<R, T, A1>::operator()(U &, A1) const [with R=bool, T=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, A1=const state_type &, U=std::1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>>]" at line 303 of "/opt/local/include/boost/bind/bind.hpp" instantiation of "R boost::_bi::list2<A1, A2>::operator()(boost::_bi::type, F &, A &, long) [with A1=boost::_bi::value<std::1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>>>, A2=boost::arg<1>, R=bool, F=boost::_mfi::mf1<bool, boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, const state_type &>, A=boost::_bi::list1<const state_type &>]" at line 47 of "/opt/local/include/boost/bind/bind_template.hpp" instantiation of "boost::_bi::bind_t<R, F, L>::result_type boost::_bi::bind_t<R, F, L>::operator()(const A1 &) [with R=bool, F=boost::_mfi::mf1<bool, boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, const state_type &>, L=boost::_bi::list2<boost::_bi::value<std::1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>>>, boost::arg<1>>, A1=state_type]" at line 72 of "/opt/local/include/boost/numeric/odeint/util/resizer.hpp" instantiation of "bool boost::numeric::odeint::initially_resizer::adjust_size(const State &, ResizeFunction) [with State=state_type, ResizeFunction=boost::_bi::bind_t<bool, boost::_mfi::mf1<bool, boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, const state_type &>, boost::_bi::list2<boost::_bi::value<std::__1::reference_wrapper<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>>>, boost::arg<1>>>]" at line 181 of "/opt/local/include/boost/numeric/odeint/stepper/runge_kutta_dopri5.hpp" [ 4 instantiation contexts not shown ] instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step_v1(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initiallyresizer, System=void ()(const state_type &, state_type &, double), StateInOut=state_type]" at line 564 of "/opt/local/include/boost/numeric/odeint/stepper/controlled_runge_kutta.hpp" instantiation of "boost::numeric::odeint::controlled_step_result={boost::numeric::odeint::controlled_step_result} boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::try_step(System, StateInOut &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &, boost::numeric::odeint::controlled_runge_kutta<ErrorStepper, ErrorChecker, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag>::time_type &) [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, ErrorChecker=boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, Resizer=boost::numeric::odeint::initiallyresizer, System=void ()(const state_type &, state_type &, double), StateInOut=state_type]" at line 101 of "/opt/local/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp" instantiation of "size_t={darwin_size_t={unsigned long}} boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State &, Time &, Time, Time &, Observer, boost::numeric::odeint::controlled_stepper_tag) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>, System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 45 of "/opt/local/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp" instantiation of "size_t={darwin_size_t={unsigned long}} boost::numeric::odeint::integrate_adaptive(Stepper, System, State &, Time, Time, Time, Observer) [with Stepper=boost::numeric::odeint::controlled_runge_kutta<boost::numeric::odeint::runge_kutta_dopri5<state_type, double, state_type, double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations, boost::numeric::odeint::initially_resizer>, boost::numeric::odeint::default_error_checker<double, boost::numeric::odeint::array_algebra, boost::numeric::odeint::default_operations>, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsaltag>, System=void ()(const state_type &, state_type &, double), State=statetype, Time=double, Observer=void ()(const state_type &, double)]" at line 48 of "/opt/local/include/boost/numeric/odeint/integrate/integrate.hpp" instantiation of "boost::enable_if<has_valuetype<State, boost::mpl::bool>::type, size_t={darwin_sizet={unsigned long}}>::type boost::numeric::odeint::integrate(System, State &, Time, Time, Time, Observer) [with System=void ()(const state_type &, state_type &, double), State=state_type, Time=double, Observer=void (*)(const state_type &, double)]" at line 30 of "lorenz.cpp" |

Everything still works OK with the |libstdc++|

— Reply to this email directly or view it on GitHub https://github.com/headmyshoulder/odeint-v2/issues/114#issuecomment-29250194.

ds283 commented 10 years ago

Yes, it certainly works up to 98a7199 as I reported initially. It breaks from ef67c05 onwards. I am using 98a7199 on a daily basis for my own development work.

As I mentioned above, ff69c57 seems to improve the situation by changing the error reported by icpc.

headmyshoulder commented 10 years ago

Ok, I reverted the changes. Can you test if it works?

On 26.11.2013 10:03, ds283 wrote:

Yes, it certainly works up to 98a7199 https://github.com/headmyshoulder/odeint-v2/commit/98a7199 as I reported initially. It breaks from ef67c05 https://github.com/headmyshoulder/odeint-v2/commit/ef67c05 onwards.

— Reply to this email directly or view it on GitHub https://github.com/headmyshoulder/odeint-v2/issues/114#issuecomment-29276479.

ds283 commented 10 years ago

I've just made a quick check to see if the code builds - but yes, this does seem to fix the problem. Thanks for looking into this!