diff --git a/src/trivia/util.h b/src/trivia/util.h
index da640c9642731b3a5d04a7ca045f77997dce6f4d..3d853f6129689fa6352ba0f9cde961b1a8a684ef 100644
--- a/src/trivia/util.h
+++ b/src/trivia/util.h
@@ -233,6 +233,9 @@ strnindex(const char **haystack, const char *needle, uint32_t len, uint32_t hmax
  *
  * \example struct obuf { int a; int b; alignas(16) int c; };
  */
+#if defined(__cplusplus)
+#  include <stdalign.h>
+#endif
 #if !defined(alignas) && !defined(__alignas_is_defined)
 #  if __has_feature(c_alignas) || (defined(__GNUC__) && __GNUC__ >= 5)
 #    include <stdalign.h>