Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make binary application interface (ABI) more stable #1

Open
crud89 opened this issue Apr 1, 2019 · 0 comments
Open

Make binary application interface (ABI) more stable #1

crud89 opened this issue Apr 1, 2019 · 0 comments
Assignees
Labels
category: architecture Issue regarding the framework architecture priority: medium Normal importance, should be addressed soon
Milestone

Comments

@crud89
Copy link
Owner

crud89 commented Apr 1, 2019

The framework dynamically links the C Runtime Library (CRT) by specifying the /MD or /MDd options. Linking a client application to another version of the CRT can cause problems when calling members that rely on STL types. The framework interface should be redesigned to not emit STL types.

More specifically, the warnings C4275 and C4251 should be treated as errors.

In order to resolve those warnings, the following three steps should be preferred in the order they are listed here:

  • Remove STL types from public interfaces.
  • Export common STL types like std::string. This only works for fully specialized templates.
  • Hide STL-dependant interfaces using the pImpl idom.
@crud89 crud89 added category: architecture Issue regarding the framework architecture priority: medium Normal importance, should be addressed soon labels Apr 1, 2019
@crud89 crud89 added this to the Version 1.3 milestone Apr 1, 2019
@crud89 crud89 self-assigned this Apr 1, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category: architecture Issue regarding the framework architecture priority: medium Normal importance, should be addressed soon
Projects
None yet
Development

No branches or pull requests

1 participant