Open
Description
In my experience, having finer control over exported symbols is much better than exporting all of them (either via the default behavior of GCC-and-friends or via WINDOWS_EXPORT_ALL_SYMBOLS
). Among these benefits:
- smaller binary size (internal template instantiation names can be hidden)
- better inlining; if the compiler/LTO knows a symbol isn't exposed at all, it can be more aggressively inlined)
- less chance of someone using a symbol you didn't intend to expose (more a problem in C than C++)
Instead, GenerateExportHeader
should be used to generate a header with _EXPORT
macros to decorate classes, functions, and variables as being available to other libraries.
Metadata
Metadata
Assignees
Labels
No labels