A mais problemática de C ++ novamente

Tirado diretamente dehttp://herbsutter.com/2013/05/09/gotw-1-solution/

Enquantowidget w(); está claro para mim, não tenho idéia de como o código abaixo pode ser uma declaração de função?

// same problem (gadget and doodad are types)
//
widget w( gadget(), doodad() );  // pitfall: not a variable declaration

Como isso é possível?