46#if defined(TIMEMORY_USE_LIBUNWIND)
47# include <libunwind.h>
78#if defined(TIMEMORY_UNIX)
81# include <sys/types.h>
82#elif defined(TIMEMORY_WINDOWS)
87#if !defined(TIMEMORY_DEFAULT_UMASK)
88# define TIMEMORY_DEFAULT_UMASK 0777
102template <
typename Tp>
106#if defined(TIMEMORY_WINDOWS)
108 return (arg == arg && arg != std::numeric_limits<Tp>::infinity() &&
109 arg != -std::numeric_limits<Tp>::infinity())
125template <
typename Tp,
typename Up = Tp>
127typeid_hash(
int) ->
decltype(demangle<Tp>(),
size_t{})
129 return std::type_index(
typeid(Tp)).hash_code();
132template <
typename Tp,
typename Up = Tp>
140template <
typename Tp>
144 return internal::typeid_hash<Tp>(0);
205TIMEMORY_INLINE
size_t
208 return std::hash<decay_t<T>>()(std::forward<T>(obj));
211TIMEMORY_INLINE
size_t
214 return std::hash<string_view_t>{}(str);
217TIMEMORY_INLINE
size_t
220 return std::hash<string_view_t>{}(cstr);
234#if defined(TIMEMORY_UTILITY_HEADER_MODE)
std::string::size_type size_type
std::string canonical(std::string _path)
_reported insert(_hash_id)
const string_t const string_t & _dir
bool get_bool(const std::string &strbool, bool _default) noexcept
std::string dirname(std::string _fname)
const std::string & string_view_cref_t
bool isfinite(const Tp &arg)
std::vector< std::string > read_command_line(pid_t _pid)
tim::mpl::apply< std::string > string
const std::string std::ostream * os
int makedir(std::string _dir, int umask)
size_t operator()(T &&val) const
size_t operator()(const T &val) const
#define TIMEMORY_UTILITY_INLINE
#define TIMEMORY_DEFAULT_UMASK