Почему компилятор C++ не ругается, когда я использую функции без круглых скобок?

Я смотрел код, который прислал мне друг, и он сказал: "Он компилируется, но не работает". Я видел, что он использовал функции без круглых скобок, что-то вроде этого:

void foo(){
  cout<< "Hello world\n";
}

int main(){
  foo; //function without parentheses
  return 0;
}

Первое, что я сказал, было "используйте круглые скобки, вы должны". Затем я проверил этот код - он компилируется, но при выполнении не работает (не отображается "Hello world").

Итак, почему он компилируется (вообще нет предупреждения от компилятора GCC 4.7), но не работает?

]
7
задан Bo Persson 21 June 2012 в 18:33
поделиться