29 #include <type_traits>
31 #if __has_include(<source_location>)
32 #include <source_location>
34 #include <experimental/source_location>
45 template <
class,
class =
void>
64 return p.get() ==
nullptr;
72 template <
class T,
class ExceptionType = std::inval
id_argument>
79 s <<
"Ptr passed to CheckedDeref is NULL"
80 <<
"\nfile : " << loc.file_name() <<
"\nline : " << loc.line()
81 <<
"\nfunction: " << loc.function_name();
82 throw ExceptionType{
s.str()};
87 template <
class T,
class M,
class ExceptionType = std::inval
id_argument>
96 s <<
"Ptr passed to CheckedDeref is NULL"
97 <<
"\nfile : " << loc.file_name() <<
"\nline : " << loc.line()
98 <<
"\nfunction: " << loc.function_name() <<
"\nmessage :\n"
100 throw ExceptionType{
s.str()};