Использовали ли старые версии C ++ оператор `int` класса при оценке условия в операторе` if () `?

Современные версии C ++ пытаются использоватьbool оператор класса при оценке условия вif() заявление. Другие операторы кастинга, такие какint используется, когда нетbool Оператор существует. Это продемонстрировано ниже.

#include <iostream>
using namespace std;

class TwoInts {
  public:
    int a,b;
    operator bool() { cout << "TwoInts to bool" << endl; return 0;}
    operator int()  { cout << "TwoInts to int"  << endl; return 0;}
};

class SixInts {
  public:
    int a[6];
    operator int()  { cout << "SixInts to int" << endl; return 0;}
};

int main(void) {
  TwoInts T;
  SixInts S;
  if (T) cout << "xxx" << endl;
  if (S) cout << "xxx" << endl;
  return 0;
}

Запуск этого кода не вызывает никаких сюрпризов:

TwoInts to bool
SixInts to int

Просматривая некоторый старый код C ++, кажется, есть изменение, которое я хотел бы проверить.
Использовали ли старые версии C ++int оператор класса при оценке условия вif() заявление? Какие версии, если таковые имеются, сделали это?

Предлагаемый результат тогда был бы

TwoInts to int
SixInts to int

Некоторые детали относительно того, почему вопрос: Проблемы с преобразованием старого большого целого классамай быть из-заint противbool вif(), Больше нет доступа к старому компилятору, поэтому нельзя проверять старое поведение.

[Редактировать]
Используя ответы ниже и еще несколько исследований:
Ответ:дамногие версии до C ++ стандарта ISO (середина 1980-х - 1998), в которых не былоbool, использовал броски, чтобыint (или другие числовые типы). Существовали значительные изменения компилятора - это былодо стандарта.

Первый стандарт C ++ ISO вышел в 1998 году (ISO / IEC 14882: 1998 или C ++ 98). Это определилоbool тип. Таким образом, стандарт ISO C ++ всегда использовалbool бросить вif().

Ответы на вопрос(2)

Ваш ответ на вопрос