[cfe-dev] STL run time link problem ( MSVC ABI )

barbara via cfe-dev cfe-dev at lists.llvm.org
Thu Nov 9 21:48:10 PST 2017

We have a contributor who is working on porting CopperSpice to compile 
with MSVC 2017 and/or the clang Windows ABI compatible tool chain. There 
seems to be a potential problem and we are not sure if this is serious. 
Options:  some wonderful person points us to a workaround, there is a 
decent solution using the clang front end, jump up and down and hope MS 
will correct this.

In our library we have a templated class with a data member whose type 
is std::deque<T>. This class is in "lib_a.dll" and is used in 
"lib_b.dll" and the main executable.

We have read/been told the following:  "The only STL container that can 
currently be exported is std::vector. The other containers ( map, set, 
queue, list, deque) all contain nested classes and can not be exported." 
So according to MSDN docs it is impossible to export the  STL 
containers, like deque. Does this limitation exist in clang when using 
the MSVC compatible ABI on Windows?

Something does not add up here and I will admit I am not sure I fully 
understand the problem. Our hope is that someone can see through this 
issue and help us define the real problem and offer a suggestion.

Any ideas or a potential direction is appreciated.


This email has been checked for viruses by Avast antivirus software.

More information about the cfe-dev mailing list