Boost C++ Libraries: Ticket #12382: nvcc 7.5 unable to compile boost/numeric/odeint example https://svn.boost.org/trac10/ticket/12382 <p> I'm trying to compile the boost example <a class="ext-link" href="https://github.com/headmyshoulder/odeint-v2/blob/master/examples/thrust/lorenz_parameters.cu"><span class="icon">​</span>lorenz_parameters.cu</a> referenced by the <a href="http://www.boost.org/doc/libs/1_60_0/libs/numeric/odeint/doc/html/boost_numeric_odeint/tutorial/using_cuda__or_openmp__tbb_______via_thrust.html">boost tutorial</a>. </p> <p> Changes I made to reduce the number of errors: </p> <pre class="wiki">$ diff lorenz_parameters.cu.orig lorenz_parameters.cu 32c32,34 &lt; typedef double value_type; --- &gt; //typedef double value_type; &gt; typedef float value_type; &gt; 35,38c37,40 &lt; typedef thrust::device_vector&lt; value_type &gt; state_type; &lt; typedef thrust::device_vector&lt; size_t &gt; index_vector_type; &lt; // typedef thrust::host_vector&lt; value_type &gt; state_type; &lt; // typedef thrust::host_vector&lt; size_t &gt; index_vector_type; --- &gt; //typedef thrust::device_vector&lt; value_type &gt; state_type; &gt; //typedef thrust::device_vector&lt; size_t &gt; index_vector_type; &gt; typedef thrust::host_vector&lt; value_type &gt; state_type; &gt; typedef thrust::host_vector&lt; size_t &gt; index_vector_type; </pre><p> compiler output: (same for gcc-4.9 and gcc-5) </p> <pre class="wiki">$ nvcc -std=c++11 -o lorenz_parameters lorenz_parameters.cu lorenz_parameters.cu(279): error: no instance of overloaded function "integrate_adaptive" matches the argument list argument types are: (boost::numeric::odeint::controlled_runge_kutta&lt;boost::numeric::odeint::runge_kutta_dopri5&lt;state_type, value_type, state_type, value_type, boost::numeric::odeint::thrust_algebra, boost::numeric::odeint::thrust_operations, boost::numeric::odeint::initially_resizer&gt;, boost::numeric::odeint::default_error_checker&lt;value_type, boost::numeric::odeint::thrust_algebra, boost::numeric::odeint::thrust_operations&gt;, boost::numeric::odeint::default_step_adjuster&lt;value_type, value_type&gt;, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag&gt;, lorenz_system, std::pair&lt;thrust::detail::normal_iterator&lt;value_type *&gt;, thrust::detail::normal_iterator&lt;value_type *&gt;&gt;, double, double, const value_type) /usr/include/boost/numeric/odeint/integrate/detail/integrate_adaptive.hpp(103): error: no instance of overloaded function "boost::numeric::odeint::controlled_runge_kutta&lt;ErrorStepper, ErrorChecker, StepAdjuster, Resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag&gt;::try_step [with ErrorStepper=boost::numeric::odeint::runge_kutta_dopri5&lt;state_type, value_type, state_type, value_type, boost::numeric::odeint::thrust_algebra, boost::numeric::odeint::thrust_operations, boost::numeric::odeint::initially_resizer&gt;, ErrorChecker=boost::numeric::odeint::default_error_checker&lt;value_type, boost::numeric::odeint::thrust_algebra, boost::numeric::odeint::thrust_operations&gt;, StepAdjuster=boost::numeric::odeint::default_step_adjuster&lt;value_type, value_type&gt;, Resizer=boost::numeric::odeint::initially_resizer]" matches the argument list argument types are: (lorenz_perturbation_system, state_type, double, double) object type is: boost::numeric::odeint::controlled_runge_kutta&lt;boost::numeric::odeint::runge_kutta_dopri5&lt;state_type, value_type, state_type, value_type, boost::numeric::odeint::thrust_algebra, boost::numeric::odeint::thrust_operations, boost::numeric::odeint::initially_resizer&gt;, boost::numeric::odeint::default_error_checker&lt;value_type, boost::numeric::odeint::thrust_algebra, boost::numeric::odeint::thrust_operations&gt;, boost::numeric::odeint::default_step_adjuster&lt;value_type, value_type&gt;, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag&gt; detected during: instantiation of "size_t boost::numeric::odeint::detail::integrate_adaptive(Stepper, System, State &amp;, Time &amp;, Time, Time &amp;, Observer, boost::numeric::odeint::controlled_stepper_tag) [with Stepper=boost::numeric::odeint::controlled_runge_kutta&lt;boost::numeric::odeint::runge_kutta_dopri5&lt;state_type, value_type, state_type, value_type, boost::numeric::odeint::thrust_algebra, boost::numeric::odeint::thrust_operations, boost::numeric::odeint::initially_resizer&gt;, boost::numeric::odeint::default_error_checker&lt;value_type, boost::numeric::odeint::thrust_algebra, boost::numeric::odeint::thrust_operations&gt;, boost::numeric::odeint::default_step_adjuster&lt;value_type, value_type&gt;, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag&gt;, System=lorenz_perturbation_system, State=state_type, Time=double, Observer=boost::numeric::odeint::null_observer]" /usr/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp(45): here instantiation of "size_t boost::numeric::odeint::integrate_adaptive(Stepper, System, State &amp;, Time, Time, Time, Observer) [with Stepper=boost::numeric::odeint::controlled_runge_kutta&lt;boost::numeric::odeint::runge_kutta_dopri5&lt;state_type, value_type, state_type, value_type, boost::numeric::odeint::thrust_algebra, boost::numeric::odeint::thrust_operations, boost::numeric::odeint::initially_resizer&gt;, boost::numeric::odeint::default_error_checker&lt;value_type, boost::numeric::odeint::thrust_algebra, boost::numeric::odeint::thrust_operations&gt;, boost::numeric::odeint::default_step_adjuster&lt;value_type, value_type&gt;, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag&gt;, System=lorenz_perturbation_system, State=state_type, Time=double, Observer=boost::numeric::odeint::null_observer]" /usr/include/boost/numeric/odeint/integrate/integrate_adaptive.hpp(83): here instantiation of "size_t boost::numeric::odeint::integrate_adaptive(Stepper, System, State &amp;, Time, Time, Time) [with Stepper=boost::numeric::odeint::controlled_runge_kutta&lt;boost::numeric::odeint::runge_kutta_dopri5&lt;state_type, value_type, state_type, value_type, boost::numeric::odeint::thrust_algebra, boost::numeric::odeint::thrust_operations, boost::numeric::odeint::initially_resizer&gt;, boost::numeric::odeint::default_error_checker&lt;value_type, boost::numeric::odeint::thrust_algebra, boost::numeric::odeint::thrust_operations&gt;, boost::numeric::odeint::default_step_adjuster&lt;value_type, value_type&gt;, boost::numeric::odeint::initially_resizer, boost::numeric::odeint::explicit_error_stepper_fsal_tag&gt;, System=lorenz_perturbation_system, State=state_type, Time=double]" lorenz_parameters.cu(285): here lorenz_parameters.cu(43): warning: variable "sigma" was declared but never referenced lorenz_parameters.cu(44): warning: variable "b" was declared but never referenced 2 errors detected in the compilation of "/tmp/tmpxft_00000806_00000000-9_lorenz_parameters.cpp1.ii". </pre><p> system details: </p> <ul><li>Linux sid 4.6.0-1-amd64 SMP Debian 4.6.4-1 (2016-07-18) x86_64 GNU/Linux </li><li>libcuda1 361.45.18-2 </li><li>libthrust-dev 1.8.1-1 </li><li>nvidia-cuda-toolkit 7.5.18-2 <ul><li>nvcc V7.5.17 </li></ul></li><li>libboost1.60-all-dev 1.60.0+dfsg-6 </li><li>gcc: <ul><li>5.4.0-6 </li><li>4.9.3-14 </li></ul></li></ul> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/12382 Trac 1.4.3