MSVC bug: '= 0'
От: Юрий Жмеренецкий ICQ 380412032
Дата: 14.08.09 12:49
Оценка: 19 (5) :))) :))) :))) :))) :))) :))) :)
Стандарт про pure virtual function:
pure-specifier:
  = 0

MSVC (15.00.30729.01) пошел дальше и проглатывает выражения (с некоторыми ограничениями):
struct A
{
  virtual void f() = 6 - (2 * 3);
  virtual void g() = false;
  virtual void h() = true ? 0 : 1;
};

template<int a>
struct B
{
  virtual void j() = a + 1;
};

struct C : A, B<-1>  
{
  void f(){}
  void g(){}
  void h(){}
  void j(){}
};

int main()
{
  C c;
}
// 0 error(s)

Наличие/отсутствие /Za не влияет на результат.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.