
Indeed, however your script would still miss (all?) of the extern "C" callbacks in current Trunk.
You right, my script does not handle them. I've checked some of them:
asio_detail_posix_thread_function
Even it is defined as extern "C" it is inline function thus it should not even appear in object file. Not a probem
free_static_mutex at_thread_exit on_process_exit on_process_enter on_thread_enter on_thread_exit
Indeed, bad, but this is specific library bug and should be reported to their maintiainers. Library developers should make sure to use proper namespaces in "C like" functions: i.e. add "boost_" prefix as it is done with #define's
Plus all of the TR1 math functions (which should definitely not be renamed IMO).
What do you mean? It is still under boost::tr1:: or am I wrong?
Obviously these could be renamed as special cases easily enough... but maintaining a manual list of API's to rename is a maintainance nightmare.
Any better ideas?
Report bugs to developers and fix them. If someone declares extern "C" void my_func(); It pollutes global namespace -- rename it to boost_my_func Artyom