diff options
author | Shoaib Meenai <smeenai@fb.com> | 2017-07-13 21:35:52 +0000 |
---|---|---|
committer | Shoaib Meenai <smeenai@fb.com> | 2017-07-13 21:35:52 +0000 |
commit | 8b58644eda311ca9c166a890ffbeb2b6abf9c0d6 (patch) | |
tree | bc9974548d0943dc46048b98a44cd0a6e88c3a65 /libcxx/docs | |
parent | 5214094eede12e25fd433c6258550217cd5696df (diff) |
[libc++] Mark string operator+ _LIBCPP_FUNC_VIS
It has an extern template instantiation declaration in the headers and a
corresponding instantiation definition in the library, so we must mark
it with _LIBCPP_FUNC_VIS to make it available outside the library.
This doesn't cause any ABI changes as-is since we don't build libc++
with hidden visibility (so the function is exported anyway). It's needed
for building libc++ with hidden visibility, however.
Clarify the Windows behavior for extern function templates while I'm
here, since this exercises that behavior.
Diffstat (limited to 'libcxx/docs')
-rw-r--r-- | libcxx/docs/DesignDocs/VisibilityMacros.rst | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/libcxx/docs/DesignDocs/VisibilityMacros.rst b/libcxx/docs/DesignDocs/VisibilityMacros.rst index 20665cd8021..d02d2dfee12 100644 --- a/libcxx/docs/DesignDocs/VisibilityMacros.rst +++ b/libcxx/docs/DesignDocs/VisibilityMacros.rst @@ -98,7 +98,8 @@ Visibility Macros explicit instantiations themselves are marked as exported. Note that this applies *only* to extern *class* templates. Extern *function* templates obey regular import/export semantics, and applying `dllexport` directly to the - extern template declaration is the correct thing to do for them. + extern template declaration (i.e. using `_LIBCPP_FUNC_VIS`) is the correct + thing to do for them. **_LIBCPP_CLASS_TEMPLATE_INSTANTIATION_VIS** Mark the member functions, typeinfo, and vtable of an explicit instantiation |