On Sat, 2015-01-24 at 01:43 -0500, Braden McDaniel wrote:
> On Sat, 2015-01-24 at 13:41 +1000, Adam wrote:
> 
> > The library contains a static which registers itself in its
> > constructor. This problem is described here
> > http://stackoverflow.com/a/842770
> 
> As something of an aside to your question, I don't know that I accept
> that as a sane use case.  C++ doesn't guarantee that (in that example) m
> will be constructed before h.  If m is not constructed first,
> construction of h calls operator[] on an uninitialized object.
> 

I agree.  The actually legacy library I'm using has wrapped the global
map 'm' inside a singleton which I believe resolves the static ordering
issue. 

I currently have to specify something like the following for every
application that wants to use this library

target_link_libraries(
   Application
   -Wl,--whole-archive -llegacyLib -Wl,--no-whole-archive
   libA
   libB )

I was hoping there might have been a better way to do this with target
properties of legacyLib.

~Adam


-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake

Reply via email to