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