void F()
{
puts( "F()" );
}

struct Test
{
typedef boost::function<void()> func_t;

Test( func_t )
{
};

void F()
{
}
};

int main()
{
Test t( Test::func_t( &F ) );
t.F();

return 0;
}

これ通らないんだけど、なんで?
ctorが関数宣言に解釈されてる?