diff --git a/aos/die.h b/aos/die.h
index 4296881..592fc55 100644
--- a/aos/die.h
+++ b/aos/die.h
@@ -1,23 +1,20 @@
 #ifndef AOS_DIE_H_
 #define AOS_DIE_H_
 
-#include <stdarg.h>
+#include <cstdarg>
 
-#include "aos/macros.h"
 #include "aos/libc/aos_strerror.h"
+#include "aos/macros.h"
 
 namespace aos {
 
 // Terminates the task/process and logs a message (without using the logging
 // framework). Designed for use in code that can't use the logging framework
 // (code that can should LOG(FATAL), which calls this).
-void Die(const char *format, ...)
-    __attribute__((noreturn))
-    __attribute__((format(GOOD_PRINTF_FORMAT_TYPE, 1, 2)));
-void VDie(const char *format, va_list args)
-    __attribute__((noreturn))
-    __attribute__((format(GOOD_PRINTF_FORMAT_TYPE, 1, 0)));
-
+void Die(const char *format, ...) __attribute__((noreturn))
+__attribute__((format(GOOD_PRINTF_FORMAT_TYPE, 1, 2)));
+void VDie(const char *format, va_list args) __attribute__((noreturn))
+__attribute__((format(GOOD_PRINTF_FORMAT_TYPE, 1, 0)));
 
 // The same as Die except appends " because of %d (%s)" (formatted with errno
 // and aos_strerror(errno)) to the message.
