You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
write_quat_element( Q & q, typename quat_traits<Q>::scalar_type s )
{
quat_traits<Q>::template write_element<I>(q) = s;
}
The conversation in the LLVM issue suggests the solution is to remove the template keyword
Clang is correctly rejecting the boost code. The template keyword must be followed by a template-id (i.e. a name followed by template argument list), except when the name refers to a class or alias template (and this use is deprecated).
From a quick look at the code, the template keyword simply should be removed.
e.g: (untested)
write_quat_element( Q & q, typename quat_traits<Q>::scalar_type s )
{
quat_traits<Q>::write_element<I>(q) = s;
}
The text was updated successfully, but these errors were encountered:
Yes, this is a bug, however you had me confused because you linked the wrong function template. The error is in write_quat_element_idx. Thanks for reporting, will fix.
According to this llvm issue, the
template
keyword should be followed by an argument list.There are a few instances where this is not the case, e.g.
https://github.com/boostorg/qvm/blob/develop/include/boost/qvm/quat_traits.hpp#L62 (and L45 72, 82, 92 in that file)
The conversation in the LLVM issue suggests the solution is to remove the
template
keyworde.g: (untested)
The text was updated successfully, but these errors were encountered: