diff --git a/include/ceres/internal/port.h b/include/ceres/internal/port.h
index 9aa041a..d69d8c5 100644
--- a/include/ceres/internal/port.h
+++ b/include/ceres/internal/port.h
@@ -32,8 +32,6 @@
 #define CERES_PUBLIC_INTERNAL_PORT_H_
 
 // This file needs to compile as c code.
-#ifdef __cplusplus
-#include <cstddef>
 #include "ceres/internal/config.h"
 
 #if defined(CERES_USE_OPENMP)
@@ -56,33 +54,6 @@
 #  error One of CERES_USE_OPENMP, CERES_USE_TBB,CERES_USE_CXX11_THREADS or CERES_NO_THREADS must be defined.
 #endif
 
-namespace ceres {
-
-// We allocate some Eigen objects on the stack and other places they
-// might not be aligned to X(=16 [SSE], 32 [AVX] etc)-byte boundaries.  If we
-// have C++11, we can specify their alignment (which is desirable, as it means
-// we can safely enable vectorisation on matrices).  However, the standard gives
-// wide lattitude as to what alignments are legal.  It must be the case that
-// alignments up to alignof(std::max_align_t) are valid, but this might be < 16
-// on some platforms, in which case even if using C++11, on these platforms
-// we should not attempt to align to X-byte boundaries.  If using < C++11,
-// we cannot specify the alignment.
-namespace port_constants {
-static constexpr size_t kMaxAlignBytes =
-    // Work around a GCC 4.8 bug
-    // (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56019) where
-    // std::max_align_t is misplaced.
-#if defined (__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ == 8
-    alignof(::max_align_t);
-#else
-    alignof(std::max_align_t);
-#endif
-}  // namespace port_constants
-
-}  // namespace ceres
-
-#endif  // __cplusplus
-
 // A macro to signal which functions and classes are exported when
 // building a DLL with MSVC.
 //
diff --git a/include/ceres/jet.h b/include/ceres/jet.h
index 7eb199a..2106357 100644
--- a/include/ceres/jet.h
+++ b/include/ceres/jet.h
@@ -258,21 +258,28 @@
   // supported is < 16, in which case we do not specify an alignment, as this
   // implies the host is not a modern x86 machine.  If using < C++11, we cannot
   // specify alignment.
+
 #if defined(EIGEN_DONT_VECTORIZE)
-  // Without >= C++11, we cannot specify the alignment so fall back to safe,
-  // unvectorised version.
   Eigen::Matrix<T, N, 1, Eigen::DontAlign> v;
 #else
   // Enable vectorisation iff the maximum supported scalar alignment is >=
   // 16 bytes, as this is the minimum required by Eigen for any vectorisation.
   //
   // NOTE: It might be the case that we could get >= 16-byte alignment even if
-  //       kMaxAlignBytes < 16.  However we can't guarantee that this
+  //       max_align_t < 16.  However we can't guarantee that this
   //       would happen (and it should not for any modern x86 machine) and if it
   //       didn't, we could get misaligned Jets.
   static constexpr int kAlignOrNot =
-      16 <= ::ceres::port_constants::kMaxAlignBytes
-            ? Eigen::AutoAlign : Eigen::DontAlign;
+      // Work around a GCC 4.8 bug
+      // (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56019) where
+      // std::max_align_t is misplaced.
+#if defined (__GNUC__) && __GNUC__ == 4 && __GNUC_MINOR__ == 8
+      alignof(::max_align_t) >= 16
+#else
+      alignof(std::max_align_t) >= 16
+#endif
+      ? Eigen::AutoAlign : Eigen::DontAlign;
+
 #if defined(EIGEN_MAX_ALIGN_BYTES)
   // Eigen >= 3.3 supports AVX & FMA instructions that require 32-byte alignment
   // (greater for AVX512).  Rather than duplicating the detection logic, use
@@ -287,11 +294,13 @@
   // Eigen < 3.3 only supported 16-byte alignment.
 #define CERES_JET_ALIGN_BYTES 16
 #endif
+
   // Default to the native alignment if 16-byte alignment is not guaranteed to
   // be supported.  We cannot use alignof(T) as if we do, GCC 4.8 complains that
   // the alignment 'is not an integer constant', although Clang accepts it.
   static constexpr size_t kAlignment = kAlignOrNot == Eigen::AutoAlign
             ? CERES_JET_ALIGN_BYTES : alignof(double);
+
 #undef CERES_JET_ALIGN_BYTES
   alignas(kAlignment) Eigen::Matrix<T, N, 1, kAlignOrNot> v;
 #endif
