Clang 12.0 bug with boost version 1.74 in date_time module

The compiler is misinterpreting the following code in boost/date_time/time_system_split.hpp:
Code Block
static BOOST_CXX14_CONSTEXPR
bool is_less(const time_rep_type& lhs, const time_rep_type& rhs)
{
if (lhs.day < rhs.day) return true;
if (lhs.day > rhs.day) return false;
return (lhs.time_of_day < rhs.time_of_day);
}

Line 6 is giving the error:

Code Block
/opt/homebrew/include/boost/date_time/time_system_split.hpp:154:48: error: expected '>'
  return (lhs.time_of_day < rhs.time_of_day);
                                            ^
/opt/homebrew/include/boost/date_time/time_system_split.hpp:154:48: error: expected unqualified-id


The workaround is to change the line as follows:
Code Block
return ((lhs.time_of_day) < rhs.time_of_day);

Clang 12.0 bug with boost version 1.74 in date_time module
 
 
Q