Commit 5a081994 authored by Christopher Dykes's avatar Christopher Dykes Committed by Facebook Github Bot 4

Explicitly reference folly::detail

Summary: Due to some fun with the order MSVC does name lookup in templates, it ends up complaining that these are ambigious between folly::detail and folly::recordio_helpers::detail. The solution is to simply reference folly::detail explicitly.

Reviewed By: yfeldblum

Differential Revision: D3271606

fbshipit-source-id: e599ad8d8fe33b1e4ec0b838ddb5dfacfdf60159
parent ab239ddf
...@@ -281,7 +281,7 @@ FB_GEN(uint16_t, our_bswap16) ...@@ -281,7 +281,7 @@ FB_GEN(uint16_t, our_bswap16)
#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ #if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
template <class T> template <class T>
struct EndianInt : public detail::EndianIntBase<T> { struct EndianInt : public EndianIntBase<T> {
public: public:
static T big(T x) { return EndianInt::swap(x); } static T big(T x) { return EndianInt::swap(x); }
static T little(T x) { return x; } static T little(T x) { return x; }
...@@ -290,7 +290,7 @@ struct EndianInt : public detail::EndianIntBase<T> { ...@@ -290,7 +290,7 @@ struct EndianInt : public detail::EndianIntBase<T> {
#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
template <class T> template <class T>
struct EndianInt : public detail::EndianIntBase<T> { struct EndianInt : public EndianIntBase<T> {
public: public:
static T big(T x) { return x; } static T big(T x) { return x; }
static T little(T x) { return EndianInt::swap(x); } static T little(T x) { return EndianInt::swap(x); }
...@@ -337,13 +337,13 @@ class Endian { ...@@ -337,13 +337,13 @@ class Endian {
#endif /* __BYTE_ORDER__ */ #endif /* __BYTE_ORDER__ */
template <class T> static T swap(T x) { template <class T> static T swap(T x) {
return detail::EndianInt<T>::swap(x); return folly::detail::EndianInt<T>::swap(x);
} }
template <class T> static T big(T x) { template <class T> static T big(T x) {
return detail::EndianInt<T>::big(x); return folly::detail::EndianInt<T>::big(x);
} }
template <class T> static T little(T x) { template <class T> static T little(T x) {
return detail::EndianInt<T>::little(x); return folly::detail::EndianInt<T>::little(x);
} }
#if !defined(__ANDROID__) #if !defined(__ANDROID__)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment