return folly::StringPiece(value).size();
}
+template<>
+inline size_t estimateSpaceNeeded(std::nullptr_t value) {
+ return 0;
+}
+
template<class Src>
typename std::enable_if<
std::is_pointer<Src>::value &&
#include <algorithm>
#include <boost/operators.hpp>
#include <climits>
+#include <cstddef>
#include <cstring>
#include <glog/logging.h>
#include <iosfwd>
constexpr Range(Iter start, size_t size)
: b_(start), e_(start + size) { }
+# if !defined(__clang__) || __clang_major__ > 3 || \
+ (__clang_major__ == 3 && __clang_minor__ > 6)
+ // Clang 3.6 crashes on this line
+ /* implicit */ Range(std::nullptr_t) = delete;
+# endif
+
template <class T = Iter, typename detail::IsCharPointer<T>::type = 0>
constexpr /* implicit */ Range(Iter str)
: b_(str), e_(str + constexpr_strlen(str)) {}