On Windows, marking an extern template class declaration as exported
actually forces an instantiation, which is not the desired behavior.
Instead, the actual explicit instantiations need to be exported.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
include/__config | ||
---|---|---|
559 ↗ | (On Diff #71685) | Does it make sense for _LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS to ever be marked as __declspec(dllimport)? The macro is applied on instantiations in the implementation, not the header, so this shouldn't be visible to users. |
include/__config | ||
---|---|---|
559 ↗ | (On Diff #71685) | It doesn't, which is why I always made it expand to either __declspec(dllexport) or empty. |
include/__config | ||
---|---|---|
559 ↗ | (On Diff #71685) | Ugh, I can't match the lines. I misread the two lines and saw the class template instantiation as being defined. |