CppCon 2017: Jonathan Henson “Naivety of Creating Cross-Platform, Modern C++ Libraries...”

preview_player
Показать описание
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.

Jonathan Henson: Senior Software Dev. Engineer, Amazon Web Services, Inc

Jonathan is a Senior Software Engineer at Amazon Web Services. He leads development on the AWS SDK for C++ and is passionate about writing tooling for modern C++ developers and advancing adoption of the latest C++ standards.


*-----*
*-----*
Рекомендации по теме
Комментарии
Автор

Very interesting. Having considered making a bunch of shared libs for our iOS, Android and web clients.
Am I alone in feeling the questions took at the end we’re super snarky in tone? Didn’t like that.

djphillips
Автор

So much background noise...what happened?

bdafeesh
Автор

What means "use STL allocator hooks" ?

sienkobilenko
Автор

After a while i decided to stop using cmake. It's just always years behind the features offered from the major IDE's. I18n in XCode for example just never works. It's too complex and undebuggable too. And what do we gain? After a initial setup time it's so easy. You almost never do anything then renaming and adding/removing files. And this can be done either with a little script or manually. It always raises compile errors so it can be fixed very easily. Writing this after cmake 3.17 in 2020.

llothar
Автор

14:50 I'm one of them :). iostreams with its {verbosity, slowness, bug causing stateful bit manipulators, interleaved output when multiple threads are running, inability to localize by position...} needs to finally die a fiery death. Long live std::format.

fdwr