いまさらながらの・・

	void operator()(Sender& sender) const
	{
		std::for_each(functionList_.begin(),functionList_.end()
			,boost::bind(&FunctionType::operator(),_1,sender));
	}


この部分の引数のsenderが値渡しになるっぽいので
boost::ref(sender)にしたほうがよいみたい

	void operator()(Sender& sender) const
	{
		std::for_each(functionList_.begin(),functionList_.end()
			,boost::bind(&FunctionType::operator(),_1,boost::ref(sender)));
	}