Visual Studio глючит при печати адреса функции?

Возьмите следующий тестовый пример:

#include <iostream>

void foo()
{}

int main()
{
   std::cout << &foo << std::endl;
}

GCC 4.1.2, GCC 4.8 и GCC 4.9 (C ++ 03 и C ++ 11) вседать следующий вывод при сборке и компиляции:

$ g++ main.cpp -o test && ./test
main.cpp: In function 'int main()':
main.cpp:8:23: warning: the address of 'void foo()' will always evaluate as 'true' [-Waddress]
   std::cout << &foo << std::endl;
                 ^
1

Предположительно это связано с тем, что единственная жизнеспособная вставка потока для указателя функции - это преобразование вbool (и приведение кvoid* потребовалось бы фактически получить адрес в потоке).

Однако Microsoft Visual Studio 2012 и 2013 вместо этого выводит адрес указателя.

Какой набор инструментов соответствует? И документировано ли несоответствие где-либо?

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

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