Код: Выделить всё
template
class Expression
{};
// CRTP (Curiously Recurring Template Pattern)
template
class ExprTimes : public Expression
{
LHS lhs;
RHS rhs;
public:
// Constructor
explicit ExprTimes
(const Expression& l, const Expression& r)
: lhs(static_cast(l)),
rhs(static_cast(r)) {}
double value() const
{
return lhs.value() * rhs.value();
}
enum { numNumbers = LHS::numNumbers + RHS::numNumbers }; // this line leads to error with intel compiler
};
< /code>
дает никакой ошибки с компилятором MSVC C ++, в то время как с компилятором Intel 2024 C ++ он дает «ошибку: неверная арифметика между различными типами перечисления» в комментированной строке. Я попытался разместить оба элемента последней строки в Int Подробнее здесь: https://stackoverflow.com/questions/796 ... -different
Мобильная версия