21#ifndef _libint2_src_bin_libint_util_h_
22#define _libint2_src_bin_libint_util_h_
26#include <util_types.h>
33std::string
to_string(FunctionPosition pos);
35template <
class Target,
class Source>
36std::shared_ptr<Target> require_dynamic_cast(
const std::shared_ptr<Source>& s) {
37 const std::shared_ptr<Target> t =
38 std::dynamic_pointer_cast<Target, Source>(s);
40 throw std::runtime_error(
"require_dynamic_cast: dynamic case failed");
43template <
class Target,
class Source>
44const Target* require_dynamic_cast(
const Source* s) {
45 const Target* t =
dynamic_cast<Target*
>(s);
47 throw std::runtime_error(
"require_dynamic_cast: dynamic case failed");
55 std::unique_ptr<char, void (*)(
void*)> result{
57 ptr ==
nullptr ?
typeid(T).name() :
typeid(ptr).name(), NULL, NULL,
60 return status == 0 ? result.get() :
"unknown";
Defaults definitions for various parameters assumed by Libint.
Definition algebra.cc:24
std::string class_name(T *ptr=nullptr)
Definition util.h:53
std::string to_string(const T &x)
Converts x to its string representation.
Definition entity.h:121