arrayfire: Failed to build afopencl x64 target on MSVS 2017

Hi,

Building afopencl target on x64 MSVS 2017 is failing at master d2df83d (5 June 2020) with a bunch of errors relating to “declaration is not allowed in ‘constexpr’ function body”. The culprit appears to be getTypeBuildDefinition() defined in \arrayfire\src\backend\opencl\types.hpp:128.

Full error message…

10>git\arrayfire\src\backend\opencl\types.hpp(137): error C3546: '...': there are no parameter packs available to expand
10>E:\Russ\SwDev\lu_dev\git\arrayfire\src\backend\opencl\kernel/reduce.hpp(139): note: see reference to function template instantiation 'const char *opencl::getTypeBuildDefinition<Ti,To>(void)' being compiled
10>        with
10>        [
10>            Ti=float,
10>            To=char
10>        ]
10>E:\Russ\SwDev\lu_dev\git\arrayfire\src\backend\opencl\kernel/reduce.hpp(232): note: see reference to function template instantiation 'void opencl::kernel::reduceFirstLauncher<Ti,To,af_and_t>(opencl::Param,opencl::Param,const opencl::uint,const opencl::uint,const opencl::uint,int,double)' being compiled
10>        with
10>        [
10>            Ti=float,
10>            To=char
10>        ]
10>git\arrayfire\src\backend\opencl\types.hpp(135): error C3250: 'is_half': declaration is not allowed in 'constexpr' function body
10>git\arrayfire\src\backend\opencl\types.hpp(136): error C3250: 'is_double': declaration is not allowed in 'constexpr' function body
10>git\arrayfire\src\backend\opencl\types.hpp(139): error C3250: 'half_def': declaration is not allowed in 'constexpr' function body
10>git\arrayfire\src\backend\opencl\types.hpp(141): error C3250: 'double_def': declaration is not allowed in 'constexpr' function body
10>git\arrayfire\src\backend\opencl\types.hpp(128): error C3259: 'constexpr' functions can only have one return statement

Russ

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 15 (10 by maintainers)

Most upvoted comments

Sorry, I just spotted that before you posted. I’m evaluating it now.