Antony Polukhin wrote:
windows.h is a minor problem of a single platform.
windows.h is not a minor problem at all. It defines one million macros.
It already has an ultimate fix - use the non header-only version of the library.
This is not a decision that a library developer can make. If I'm writing a header-only library (that does nothing Windows-specific), I absolutely CANNOT afford to include <windows.h>, which means that I can't include stacktrace.hpp. Whether BOOST_STACKTRACE_LINK is defined is not up to me.
This makes no sense to me, especially since frame is constructible from void const*. stacktrace is just an array of frames.
It also increases the risk that people will capture the frames in a wrong way:
Not quite seeing that risk, given that the default constructor is much easier to use. You have to go out of your way to capture manually, for which presumably you have reasons.