On 25/05/2017 00:31, Niall Douglas wrote:
The code in question is in a sub-sub-library which is itself completely standalone and reusable. It is Windows only because it implements a common POSIX API for Windows, so such attributes won't be useful. And that code would only ever get used if someone didn't configure a better stack backtrace printer.
Speaking of, now that StackTrace has been accepted into Boost, are you considering migrating that code to use it instead? Somewhat related, the docs for error_code_extended::backtrace() specify that the returned value must be freed. Is that referring only to the array itself or must the individual char* within the returned char** be individually freed as well? Why doesn't this just return std::vectorstd::string or some kind of smart pointer for avoidance of doubt and exception-safety? It feels like this is allowing implementation details to escape unsafely.