22 #include <gtsam/config.h> 24 #include <boost/optional/optional.hpp> 25 #include <gtsam/dllexport.h> 31 #include <tbb/tbb_allocator.h> 32 #include <tbb/scalable_allocator.h> 39 template<
class DERIVED>
44 typedef std::exception
Base;
47 typedef std::basic_string<char, std::char_traits<char>,
48 tbb::tbb_allocator<char> >
String;
65 Base(other), dynamic_(false) {
70 dynamic_(false), description_(
71 String(description.begin(), description.
end())) {
79 const char*
what() const noexcept
override {
80 return description_ ? description_->c_str() :
"";
104 InvalidArgumentThreadsafe> {
boost::optional< String > description_
Optional description.
InvalidArgumentThreadsafe(const std::string &description)
Construct with a string describing the exception.
OutOfRangeThreadsafe(const std::string &description)
Construct with a string describing the exception.
bool dynamic_
Whether this object was moved.
ThreadsafeException(const ThreadsafeException &other)
Copy constructor is protected - may only be created from derived classes.
CholeskyFailed() noexcept
Thread-safe runtime error exception.
Base exception type that uses tbb_allocator if GTSAM is compiled with TBB.
~ThreadsafeException() noexceptoverride
Default destructor doesn't have the noexcept.
RuntimeErrorThreadsafe(const std::string &description)
Construct with a string describing the exception.
Thread-safe invalid argument exception.
ThreadsafeException(const std::string &description)
Construct with description string.
Thread-safe out of range exception.
Indicate Cholesky factorization failure.
ThreadsafeException()
Default constructor is protected - may only be created from derived classes.
~CholeskyFailed() noexceptoverride
const char * what() const noexceptoverride