Naivety of Creating Cross-Platform, Modern C++ Libraries: A Tour Of Our Challenges and Successes
Play Naivety of Creating Cross-Platform, Modern C++ Libraries: A Tour Of Our Challenges and Successes
The AWS SDK for C++ was designed with a few important tenets. Modern C++ (versions 11 and later), Cross-Platform, User Customization with sane defaults, and no dependencies. A year after launching for general availability, we've been thinking about how these tenets have served us well, and the challenges we've encountered when applying them. In this talk, we will discuss the difficulties we encountered in design and implementation, and then we will cover the aspects of our design that have worked out well. The topics we will cover are: Build System choices, the C++ standard library, Dependency choices, Threading models, Memory models, IO-based programming, ABI compatibility, and packaging.