Пусть имеется банальный код:
void foo(){}
int main(){
std::cout << foo;
}
Вывод на консоль: 1. Я не понимаю почему так, ведь foo в данном случае функция и должна вывести адрес, который уж точно не равен единице.
Перегрузки оператора <<
для вывода адреса функций нет. Зато есть перегрузка для вывода bool
. Соответственно адрес функции неявно преобразуется в bool
. Вывести значение адреса можно явно преобразовав указатель на функцию к указателю на void
(перегрузка оператора <<
для которого как раз печатает значение адреса):
std::cout << reinterpret_cast<void *>(&foo);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Microsoft говорит нам, что мы можем модифицировать поток печати посредством разработки плагинов для драйвера печати
Необходимо считать в std::string байты файлаОдно из требований: поддержка юникодных имен файлов