+class BacktraceImpl {
+#if HAVE_BOOST_STACKTRACE_BACKTRACE || HAVE_BOOST_STACKTRACE_ADDR2LINE
+ const boost::stacktrace::stacktrace st = boost::stacktrace::stacktrace();
+#else
+ const char st[1] = ""; // fallback value
+#endif
+public:
+ std::string resolve() const
+ {
+ std::stringstream ss;
+ ss << st;
+ return ss.str();
+ }
+};
+
+Backtrace::Backtrace() : impl_(std::make_shared<BacktraceImpl>()) {}
+
+std::string Backtrace::resolve() const