#include <iostream>
#include <typeinfo>
using namespace std;
template <typename type_1, typename type_2>
bool equal(type_1 const &x, type_2 const &y) {
return (x == y) && (typeid(x) == typeid(y));
}
int main() {
int a[10] = {5};
cout << equal(a[9], 0);
return 0;
}
Подскажите, пожалуйста, почему несуществующий элемент массива равно 0-ю? Я знаю, что false == 0
, но нет ли ни одного способа их различить, чтоб вышеуказанный код вернул false
? Спасибо!
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Почему алгоритм std::swap() определен в 2 заголовочных файлах: <algorithm> и <utility>?