Consistency in namespace-closing comments
[folly.git] / folly / Portability.h
index d0c14dd7e388122d732b9f29fb1ae11c0aebde1c..0f549868bdd0bb0ea4445bce692fbf8c56bbe669 100644 (file)
@@ -33,21 +33,20 @@ constexpr bool kHasUnalignedAccess = true;
 constexpr bool kHasUnalignedAccess = false;
 #endif
 
-namespace detail {
+namespace portability_detail {
+
+template <typename I, I A, I B>
+using integral_max = std::integral_constant<I, (A < B) ? B : A>;
 
 template <typename I, I A, I... Bs>
-struct integral_max
-    : std::integral_constant<
-          I,
-          (A > integral_max<I, Bs...>::value) ? A
-                                              : integral_max<I, Bs...>::value> {
-};
+struct integral_sequence_max
+    : integral_max<I, A, integral_sequence_max<I, Bs...>::value> {};
 
-template <typename I, size_t A>
-struct integral_max<I, A> : std::integral_constant<I, A> {};
+template <typename I, I A>
+struct integral_sequence_max<I, A> : std::integral_constant<I, A> {};
 
 template <typename... Ts>
-using max_alignment = integral_max<size_t, alignof(Ts)...>;
+using max_alignment = integral_sequence_max<size_t, alignof(Ts)...>;
 
 using max_basic_alignment = max_alignment<
     std::max_align_t,
@@ -66,7 +65,7 @@ using max_basic_alignment = max_alignment<
     std::nullptr_t>;
 } // namespace detail
 
-constexpr size_t max_align_v = detail::max_basic_alignment::value;
+constexpr size_t max_align_v = portability_detail::max_basic_alignment::value;
 
 // max_align_t is a type which is aligned at least as strictly as the
 // most-aligned basic type (see the specification of std::max_align_t). This
@@ -240,7 +239,7 @@ constexpr bool kIsSanitizeThread = false;
 # define FOLLY_MSVC_DISABLE_WARNING(warningNumber)
 #endif
 
-#ifdef HAVE_SHADOW_LOCAL_WARNINGS
+#ifdef FOLLY_HAVE_SHADOW_LOCAL_WARNINGS
 #define FOLLY_GCC_DISABLE_NEW_SHADOW_WARNINGS        \
   FOLLY_GCC_DISABLE_WARNING("-Wshadow-compatible-local") \
   FOLLY_GCC_DISABLE_WARNING("-Wshadow-local")
@@ -248,18 +247,6 @@ constexpr bool kIsSanitizeThread = false;
 #define FOLLY_GCC_DISABLE_NEW_SHADOW_WARNINGS /* empty */
 #endif
 
-// portable version check for clang
-#ifndef __CLANG_PREREQ
-# if defined __clang__ && defined __clang_major__ && defined __clang_minor__
-/* nolint */
-#  define __CLANG_PREREQ(maj, min) \
-    ((__clang_major__ << 16) + __clang_minor__ >= ((maj) << 16) + (min))
-# else
-/* nolint */
-#  define __CLANG_PREREQ(maj, min) 0
-# endif
-#endif
-
 /* Platform specific TLS support
  * gcc implements __thread
  * msvc implements __declspec(thread)
@@ -375,7 +362,7 @@ constexpr auto kIsBigEndian = !kIsLittleEndian;
 namespace FOLLY_GFLAGS_NAMESPACE { }
 namespace gflags {
 using namespace FOLLY_GFLAGS_NAMESPACE;
-}  // namespace gflags
+} // namespace gflags
 #endif
 
 // for TARGET_OS_IPHONE