]> granicus.if.org Git - llvm/commit
[StringExtras] Add llvm::to_integer.
authorZachary Turner <zturner@google.com>
Sun, 14 May 2017 17:11:05 +0000 (17:11 +0000)
committerZachary Turner <zturner@google.com>
Sun, 14 May 2017 17:11:05 +0000 (17:11 +0000)
commit1ccd7cfa2bd9d8e035e62af6c420b5d5747dcabb
tree9e27eb9776fd0873ad47a3f831ddd07425a86245
parent90e60b5e9996dd85482e480f6d952bc6782d062b
[StringExtras] Add llvm::to_integer.

This is a very thin wrapper around StringRef::getAsInteger.
It serves three purposes.

1) It allows a cleaner syntax when you have something other than
   a StringRef - for example, a std::string or an llvm::SmallString.
   Previously, in this case you would have to write something like:
      StringRef(MyStr).getAsInteger(0, Result)
   by explicitly constructing a temporary StringRef.  This can be
   done implicitly however with the new function by just writing:
      to_integer(MyStr, ...).
2) Correcting the travesty that is getAsInteger's return value.
   This function returns true on success, and false on failure.
   While this may cause confusion with people familiar with the
   getAsInteger API, there seems to be widespread agreement that
   the return semantics of getAsInteger was a mistake.
3) It allows the Radix to be deduced as a default argument by
   putting it last in the parameter list.  Most uses of getAsInteger
   pass 0 for the first argument.  With this syntax it can just be
   omitted.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@303011 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/ADT/StringExtras.h