Skip to content

'J': is not a valid type for non-type template parameter 'J' #89

@BennyRod

Description

@BennyRod

Hello,
I have been facing an issue using Boost Odeint with CUDA in Windows 11then I am going to include a MVCE using a .cu file:

Configurations:
-Microsoft Visual Studio Community 2022 (64-bit) - Current
Version 17.11.0
-Nvidia Driver Version: 560.81
-CUDA Toolkit 12.6
-BOOST 1.86
-MVCE.cu

MVCE.cu:

#include <boost/numeric/odeint.hpp>
int main()
{

}

Output:

Error C2334 unexpected token(s) preceding '{'; skipping apparent function body CudaRuntime1 C:\Users\benny\Downloads\boost_1_86_0\boost\fusion\container\vector\vector.hpp 246
2.Error C2993 'J': is not a valid type for non-type template parameter 'J' CudaRuntime1 C:\Users\benny\Downloads\boost_1_86_0\boost\fusion\container\vector\vector.hpp 236

Error C2062 type 'unknown-type' unexpected CudaRuntime1 C:\Users\benny\Downloads\boost_1_86_0\boost\fusion\container\vector\vector.hpp 236

Error C2334 unexpected token(s) preceding '{'; skipping apparent function body CudaRuntime1 C:\Users\benny\Downloads\boost_1_86_0\boost\fusion\container\vector\vector.hpp 239

5.Error C2993 'J': is not a valid type for non-type template parameter 'J' CudaRuntime1 C:\Users\benny\Downloads\boost_1_86_0\boost\fusion\container\vector\vector.hpp 243

6.Error C4430 missing type specifier - int assumed. Note: C++ does not support default-int CudaRuntime1 C:\Users\benny\Downloads\boost_1_86_0\boost\fusion\container\vector\vector.hpp 243

7.Error C2062 type 'unknown-type' unexpected CudaRuntime1 C:\Users\benny\Downloads\boost_1_86_0\boost\fusion\container\vector\vector.hpp 243

The first error refers to the use of a C++ version prior to C++ 20 but I have used C++ 20 and it is the same error.

On the other hand, if it is replaced "odeint" by "interval" then the code compiles properly.

#include <boost/numeric/odeint.hpp>
int main()
{

}

Output:
========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
========== Build completed at 11:07 AM and took 01.917 seconds ==========

Finally, this code works properly in Ubuntu using CMake then it is not a general incompatibility between CUDA and BOOST.

*I have already published this error in fusion but I was referred to Odeint: boostorg/fusion#269

I hope you can help us with this issue. Thank you so much in advance! Let me know if there is something I can do to help you to fix this error.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions