/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/string_utils.h (3989B)
#pragma once #include #include #include namespace c10 { // to_string, stoi and stod implementation for Android related stuff. // Note(jiayq): Do not use the CAFFE2_TESTONLY_FORCE_STD_STRING_TEST macro // outside testing code that lives under common_test.cc #if defined(__ANDROID__) || defined(CAFFE2_TESTONLY_FORCE_STD_STRING_TEST) #define CAFFE2_TESTONLY_WE_ARE_USING_CUSTOM_STRING_FUNCTIONS 1 template std::string to_string(T value) { std::ostringstream os; os << value; return os.str(); } inline int stoi(const std::string& str, std::size_t* pos = 0) { std::stringstream ss; int n = 0; ss << str; ss >> n; if (ss.fail()) { // To mimic `std::stoi` and to avoid including `Exception.h`, throw // `std::invalid_argument`. // We can't easily detect out-of-range, so we don't use `std::out_of_range`. throw std::invalid_argument("Not an integer"); } if (pos) { if (ss.tellg() == std::streampos(-1)) { *pos = str.size(); } else { *pos = ss.tellg(); } } return n; } inline uint64_t stoull(const std::string& str) { std::stringstream ss; uint64_t n = 0; ss << str; ss >> n; if (ss.fail()) { // To mimic `std::stoull` and to avoid including `Exception.h`, throw // `std::invalid_argument`. // We can't easily detect out-of-range, so we don't use `std::out_of_range`. throw std::invalid_argument("Not an unsigned 64-bit integer"); } return n; } inline double stod(const std::string& str, std::size_t* pos = 0) { std::stringstream ss; ss << str; double val = 0; ss >> val; if (ss.fail()) { // To mimic `std::stod` and to avoid including `Exception.h`, throw // `std::invalid_argument`. // We can't easily detect out-of-range, so we don't use `std::out_of_range`. throw std::invalid_argument("Not a double-precision floating point number"); } if (pos) { if (ss.tellg() == std::streampos(-1)) { *pos = str.size(); } else { *pos = ss.tellg(); } } return val; } inline long long stoll(const std::string& str, std::size_t* pos = 0) { // std::stoll doesn't exist in our Android environment, we need to implement // it ourselves. std::stringstream ss; ss << str; long long result = 0; ss >> result; if (ss.fail()) { // To mimic `std::stoll` and to avoid including `Exception.h`, throw // `std::invalid_argument`. // We can't easily detect out-of-range, so we don't use `std::out_of_range`. throw std::invalid_argument("Not a long long integer"); } if (pos) { if (ss.tellg() == std::streampos(-1)) { *pos = str.size(); } else { *pos = ss.tellg(); } } return result; } inline long long stoll(const std::string& str, size_t pos, int base) { // std::stoll doesn't exist in our Android environment, we need to implement // it ourselves. std::stringstream ss; if (str.size() > 0 && str.at(0) == '0') { if (str.size() > 1 && (str.at(1) == 'x' || str.at(1) == 'X')) { ss << std::hex << str; } else { ss << std::oct << str; } } else { ss << str; } long long result = 0; ss >> result; if (ss.fail()) { // To mimic `std::stoll` and to avoid including `Exception.h`, throw // `std::invalid_argument`. // We can't easily detect out-of-range, so we don't use `std::out_of_range`. throw std::invalid_argument("Not a long long integer"); } return result; } #else #define CAFFE2_TESTONLY_WE_ARE_USING_CUSTOM_STRING_FUNCTIONS 0 using std::stod; using std::stoi; using std::stoll; using std::stoull; using std::to_string; #endif // defined(__ANDROID__) || defined(CAFFE2_FORCE_STD_STRING_FALLBACK_TEST) } // namespace c10 #if defined(__ANDROID__) && __ANDROID_API__ < 21 && defined(__GLIBCXX__) #include // std::strtoll isn't available on Android NDK platform < 21 when building // with libstdc++, so bring the global version into std. namespace std { using ::strtoll; } #endif