
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
Are you sure? I thought there would still *possibly* be a definition available in every object file that included that header - even though it would have vague linkage.
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?
No they're extern "C" so they're globally visable (as well as visible in std::tr1), and that's the whole point, they provide an alternative implementation of those std functions if the std lib doesn't provide them. Renaming them would defeat the whole point of them being there.
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.
Fair point. Filed as: https://svn.boost.org/trac/boost/ticket/3809 https://svn.boost.org/trac/boost/ticket/3810 https://svn.boost.org/trac/boost/ticket/3811 https://svn.boost.org/trac/boost/ticket/3812 John.