I am trying to compile some code using GCC 9 and get this error:
[build] /usr/include/c++/9/bits/stl_algobase.h(342): error: more than one operator "=" matches these operands:
[build] function "__nv_bfloat16::operator=(float)" (declared at line 305 of /usr/local/cuda/include/cuda_bf16.hpp)
[build] function "__nv_bfloat16::operator=(double)" (declared at line 311 of /usr/local/cuda/include/cuda_bf16.hpp)
[build] function "__nv_bfloat16::operator=(short)" (declared at line 530 of /usr/local/cuda/include/cuda_bf16.hpp)
[build] function "__nv_bfloat16::operator=(unsigned short)" (declared at line 534 of /usr/local/cuda/include/cuda_bf16.hpp)
[build] function "__nv_bfloat16::operator=(int)" (declared at line 538 of /usr/local/cuda/include/cuda_bf16.hpp)
[build] function "__nv_bfloat16::operator=(unsigned int)" (declared at line 542 of /usr/local/cuda/include/cuda_bf16.hpp)
[build] function "__nv_bfloat16::operator=(long long)" (declared at line 546 of /usr/local/cuda/include/cuda_bf16.hpp)
[build] function "__nv_bfloat16::operator=(unsigned long long)" (declared at line 550 of /usr/local/cuda/include/cuda_bf16.hpp)
[build] operand types are: __nv_bfloat16 = const int64_t
[build] *__result = *__first;
As for me,
__nv_bfloat16::operator=(long long)
seems the most suitable overload for
operand types are: __nv_bfloat16 = const int64_t
Am I wrong?