/usr/local/lib64/python3.6/site-packages/torch/include/c10/util
NameSizeModeActions
accumulate.h42050644editdlrm
AlignOf.h48350644editdlrm
Array.h113540644editdlrm
ArrayRef.h90580644editdlrm
Backtrace.h3640644editdlrm
BFloat16-inl.h92220644editdlrm
BFloat16-math.h52170644editdlrm
BFloat16.h23720644editdlrm
Bitset.h34140644editdlrm
C++17.h133290644editdlrm
complex.h175420644editdlrm
complex_math.h109020644editdlrm
complex_utils.h9580644editdlrm
ConstexprCrc.h66330644editdlrm
copysign.h8660644editdlrm
DeadlockDetection.h19200644editdlrm
Deprecated.h35790644editdlrm
either.h64230644editdlrm
env.h8350644editdlrm
Exception.h247230644editdlrm
ExclusivelyOwned.h47590644editdlrm
Flags.h100560644editdlrm
flat_hash_map.h616550644editdlrm
FunctionRef.h23010644editdlrm
Half-inl.h86740644editdlrm
Half.h189650644editdlrm
hash.h50840644editdlrm
IdWrapper.h23480644editdlrm
intrusive_ptr.h355630644editdlrm
in_place.h3500644editdlrm
irange.h26790644editdlrm
LeftRight.h60160644editdlrm
llvmMathExtras.h291680644editdlrm
Logging.h112560644editdlrm
logging_is_google_glog.h20310644editdlrm
logging_is_not_google_glog.h82710644editdlrm
MathConstants.h8580644editdlrm
math_compat.h72960644editdlrm
MaybeOwned.h66890644editdlrm
Metaprogramming.h152880644editdlrm
numa.h6960644editdlrm
Optional.h355920644editdlrm
order_preserving_flat_hash_map.h654820644editdlrm
overloaded.h7090644editdlrm
python_stub.h560644editdlrm
qint8.h4720644editdlrm
qint32.h3190644editdlrm
quint4x2.h3660644editdlrm
quint8.h3200644editdlrm
Registry.h122420644editdlrm
reverse_iterator.h87960644editdlrm
ScopeExit.h13450644editdlrm
signal_handler.h31540644editdlrm
SmallBuffer.h12430644editdlrm
SmallVector.h344560644editdlrm
sparse_bitset.h265110644editdlrm
StringUtil.h45380644editdlrm
string_utils.h39890644editdlrm
string_view.h201890644editdlrm
tempfile.h60290644editdlrm
ThreadLocal.h38830644editdlrm
ThreadLocalDebugInfo.h26030644editdlrm
thread_name.h1480644editdlrm
Type.h6070644editdlrm
TypeCast.h69720644editdlrm
typeid.h187930644editdlrm
TypeIndex.h52510644editdlrm
TypeList.h169010644editdlrm
TypeTraits.h53680644editdlrm
Unicode.h2950644editdlrm
UniqueVoidPtr.h41170644editdlrm
Unroll.h6670644editdlrm
variant.h951820644editdlrm
win32-headers.h8580644editdlrm
Edit: /usr/local/lib64/python3.6/site-packages/torch/include/c10/util/StringUtil.h (4538B)
#ifndef C10_UTIL_STRINGUTIL_H_ #define C10_UTIL_STRINGUTIL_H_ #include #include #include #include #include #include #include #include namespace c10 { namespace detail { // Obtains the base name from a full path. C10_API std::string StripBasename(const std::string& full_path); C10_API std::string ExcludeFileExtension(const std::string& full_path); struct CompileTimeEmptyString { operator const std::string&() const { static const std::string empty_string_literal; return empty_string_literal; } operator const char*() const { return ""; } }; template struct CanonicalizeStrTypes { using type = const T&; }; template struct CanonicalizeStrTypes { using type = const char*; }; inline std::ostream& _str(std::ostream& ss) { return ss; } template inline std::ostream& _str(std::ostream& ss, const T& t) { // NOLINTNEXTLINE(clang-analyzer-core.CallAndMessage) ss << t; return ss; } template <> inline std::ostream& _str( std::ostream& ss, const CompileTimeEmptyString&) { return ss; } template inline std::ostream& _str(std::ostream& ss, const T& t, const Args&... args) { return _str(_str(ss, t), args...); } template struct _str_wrapper final { static std::string call(const Args&... args) { std::ostringstream ss; _str(ss, args...); return ss.str(); } }; // Specializations for already-a-string types. template <> struct _str_wrapper final { // return by reference to avoid the binary size of a string copy static const std::string& call(const std::string& str) { return str; } }; template <> struct _str_wrapper final { static const char* call(const char* str) { return str; } }; // For c10::str() with an empty argument list (which is common in our assert // macros), we don't want to pay the binary size for constructing and // destructing a stringstream or even constructing a string. template <> struct _str_wrapper<> final { static CompileTimeEmptyString call() { return CompileTimeEmptyString(); } }; } // namespace detail // Convert a list of string-like arguments into a single string. template inline decltype(auto) str(const Args&... args) { return detail::_str_wrapper< typename detail::CanonicalizeStrTypes::type...>::call(args...); } template inline std::string Join(const std::string& delimiter, const Container& v) { std::stringstream s; int cnt = static_cast(v.size()) - 1; for (auto i = v.begin(); i != v.end(); ++i, --cnt) { s << (*i) << (cnt ? delimiter : ""); } return s.str(); } // Replace all occurrences of "from" substring to "to" string. // Returns number of replacements size_t C10_API ReplaceAll(std::string& s, const char* from, const char* to); /// Represents a location in source code (for debugging). struct C10_API SourceLocation { const char* function; const char* file; uint32_t line; }; std::ostream& operator<<(std::ostream& out, const SourceLocation& loc); // unix isprint but insensitive to locale inline static bool isPrint(char s) { return s > 0x1f && s < 0x7f; } inline void printQuotedString(std::ostream& stmt, const string_view str) { stmt << "\""; for (auto s : str) { switch (s) { case '\\': stmt << "\\\\"; break; case '\'': stmt << "\\'"; break; case '\"': stmt << "\\\""; break; case '\a': stmt << "\\a"; break; case '\b': stmt << "\\b"; break; case '\f': stmt << "\\f"; break; case '\n': stmt << "\\n"; break; case '\r': stmt << "\\r"; break; case '\t': stmt << "\\t"; break; case '\v': stmt << "\\v"; break; default: if (isPrint(s)) { stmt << s; } else { // C++ io has stateful formatting settings. Messing with // them is probably worse than doing this manually. char buf[4] = "000"; buf[2] += s % 8; s /= 8; buf[1] += s % 8; s /= 8; buf[0] += s; stmt << "\\" << buf; } break; } } stmt << "\""; } } // namespace c10 #endif // C10_UTIL_STRINGUTIL_H_