id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 4803,"[function][patch] use a static ""empty"" target",Daniel Walker,Douglas Gregor,"boost::function throws bad_function_call if invoked when empty. Currently, this is implemented by performing a pointer comparison at runtime. Alternatively, boost::function's empty state could be represented by a static vtable object targeting an ""empty"" function which throws bad_function_call when invoked. There has been a lot of interest in this alternative scheme, which would trade the time overhead of a pointer comparison for an increase in space overhead in the initialized static variable section of the executable's data segment. The degree to which this trade-off will improve performance depends on compiler optimization. The attached patch implements a configuration macro, BOOST_FUNCTION_USE_STATIC_EMPTY, which allows the user to make this trade-off. The patch includes updated documentation and tests. I verified that the updated test suite passes on gcc 4.2, 4.5 and msvc 7.1, 10.",Feature Requests,new,To Be Determined,function,Boost 1.44.0,Optimization,,,