I would like to start a discussion on the ever present issue that I am sure all programmers must face at some point, the issue or warning of exporting classes that contain standard template library classes; for example std::vector and std::string. What do you think the most efficient, platform agnostic and cost effective solution is?
The first solution that comes to my mind is to just re-write aspects of the STL that you want to use.
- Full control
- Probably faster (But situational)
- No problems exporting your own classes
- Can be thread friendly
- Easier to debug
- Very cost in-effective
- Needs a lot of testing
Another solution is to just ignore it and build different libraries for different implementations, so use msvc, gcc, clang and name your libraries after what they were compiled with. E.g. MyLibWindows64MSVC or MyLibWindows32GCC
- Very cost effective
- Full usage of stl
- Hard for clients to use
How have you solved this problem or how would you solve this problem?