Avatar ·

Разница между == и === в C++

Всем привет! Подскажите, пожалуйста, в чём разница между операторами == и === в C++? Я только начинаю изучать язык, и в некоторых туториалах видел упоминание тройного равенства, но нигде нет чёткого объяснения.

Я пробовал следующий код:

#include <iostream>

int main() {
    int a = 5;
    int b = 5;
    
    if (a == b) {
        std::cout << "a == b" << std::endl;
    }
    
    // Пытался использовать ===
    // if (a === b) { ... }  // Это не компилируется
    
    return 0;
}

При попытке использовать === компилятор выдаёт ошибку: 'expected expression' или 'token is not a valid binary operator' в зависимости от версии компилятора.

Ожидаю, что === может быть каким-то строгим сравнением (как в JavaScript или PHP), но в C++ такого оператора, видимо, нет. Может быть, это какой-то макрос или расширение? Или я что-то путаю?

Подскажите, существует ли вообще === в стандартном C++? Если нет, то как правильно сравнивать значения с учётом типов? Заранее спасибо!