Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext

Boost.Stacktrace Header Reference

Header <boost/stacktrace/stacktrace.hpp>
Header <boost/stacktrace/const_iterator.hpp>
Header <boost/stacktrace/frame.hpp>
namespace boost {
  namespace stacktrace {
    class stacktrace;

    // Comparison operators that provide platform dependant ordering and have amortized O(1) complexity; O(size()) worst case complexity; are Async-Handler-Safe. 
    bool operator>(const stacktrace & lhs, const stacktrace & rhs);
    bool operator<=(const stacktrace & lhs, const stacktrace & rhs);
    bool operator>=(const stacktrace & lhs, const stacktrace & rhs);
    bool operator!=(const stacktrace & lhs, const stacktrace & rhs);

    // Hashing support, O(1) complexity; Async-Handler-Safe. 
    std::size_t hash_value(const stacktrace & st);

    // Outputs stacktrace in a human readable format to output stream; unsafe to use in async handlers. 
    template<typename CharT, typename TraitsT> 
      std::basic_ostream< CharT, TraitsT > & 
      operator<<(std::basic_ostream< CharT, TraitsT > & os, 
                 const stacktrace & bt);
  }
}
namespace boost {
  namespace stacktrace {
    class const_iterator;
  }
}
namespace boost {
  namespace stacktrace {
    class frame;

    // Comparison operators that provide platform dependant ordering and have O(1) complexity; are Async-Handler-Safe. 
    bool operator<(const frame & lhs, const frame & rhs);
    bool operator>(const frame & lhs, const frame & rhs);
    bool operator<=(const frame & lhs, const frame & rhs);
    bool operator>=(const frame & lhs, const frame & rhs);
    bool operator==(const frame & lhs, const frame & rhs);
    bool operator!=(const frame & lhs, const frame & rhs);

    // Hashing support, O(1) complexity; Async-Handler-Safe. 
    std::size_t hash_value(const frame & f);

    // Outputs stacktrace::frame in a human readable format to output stream; unsafe to use in async handlers. 
    template<typename CharT, typename TraitsT> 
      std::basic_ostream< CharT, TraitsT > & 
      operator<<(std::basic_ostream< CharT, TraitsT > & os, const frame & f);
  }
}

PrevUpHomeNext