21 #ifndef _libint2_src_bin_libint_util_h_ 22 #define _libint2_src_bin_libint_util_h_ 27 #include <smart_ptr.h> 28 #include <util_types.h> 32 std::string
to_string(FunctionPosition pos);
34 template <
class Target,
class Source> SafePtr<Target> require_dynamic_cast(
const SafePtr<Source>& s) {
35 const SafePtr<Target> t = dynamic_pointer_cast<Target,Source>(s);
37 throw std::runtime_error(
"require_dynamic_cast: dynamic case failed");
40 template <
class Target,
class Source>
const Target* require_dynamic_cast(
const Source* s) {
41 const Target* t = dynamic_cast<Target*>(s);
43 throw std::runtime_error(
"require_dynamic_cast: dynamic case failed");
48 template <
typename T> std::string
class_name(T* ptr=
nullptr) {
50 std::unique_ptr<char, void (*)(
void*)>
51 result { abi::__cxa_demangle(ptr==
nullptr?
typeid(T).name():
typeid(ptr).name(),NULL,NULL,&status),
53 return status == 0 ? result.get() :
"unknown";
std::string class_name(T *ptr=nullptr)
Definition: util.h:48
Defaults definitions for various parameters assumed by Libint.
Definition: algebra.cc:24
std::string to_string(const T &x)
Converts x to its string representation.
Definition: entity.h:74