
Hi, When implementing a library, one might want to neither require nor prevent the library users to also use any version of Boost. I believed that BCP used with namespace renaming would allow the use of (namespace-renamed) Boost in the implementation of such a library without *any* concern about conflict at link time and / or rub-time errors if the library user chooses to also use another Boost version. However, I have been reading that Boost brings some symbols that cannot be renamed because they are out of any namespace, with "C" linkage[*]. This brings the following questions : 1) can a list all such names be found ? 2) To be *completely safe*, must I : 2.1) only avoid using those symbols in my library 2.2) avoid the boost libaries that provide such symbols 2.3) avoid boost libraries that depend on such symbols (how am I to find out which ?) 2.4) avoid boost libraries that depend on the boost libraries providing such symbols (easier to do than 2.3 with bcp, I believe). 2.5) Despair ! (i.e. forgo boost usage under such constraints). Boost is a great set of libraries, I think that it is a pity that a legitimate concern (not imposing a specific Boost version on users) would prevent it's use for implementing libraries : please, help me dispel the Fear, Uncertainty and Doubt over this use case ! Best Regards, Bernard [*] http://stackoverflow.com/questions/2907882/using-concurrently-2-versions-of-...