diff --git a/double-conversion/bignum-dtoa.cc b/double-conversion/bignum-dtoa.cc
index bdb06a2..526f96e 100644
--- a/double-conversion/bignum-dtoa.cc
+++ b/double-conversion/bignum-dtoa.cc
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-#include <math.h>
+#include <cmath>
 
 #include <double-conversion/bignum-dtoa.h>
 
diff --git a/double-conversion/bignum.cc b/double-conversion/bignum.cc
index c0aaadb..a7bc86d 100644
--- a/double-conversion/bignum.cc
+++ b/double-conversion/bignum.cc
@@ -31,7 +31,7 @@
 namespace double_conversion {
 
 Bignum::Bignum()
-    : bigits_(bigits_buffer_, kBigitCapacity), used_digits_(0), exponent_(0) {
+    : bigits_buffer_(), bigits_(bigits_buffer_, kBigitCapacity), used_digits_(0), exponent_(0) {
   for (int i = 0; i < kBigitCapacity; ++i) {
     bigits_[i] = 0;
   }
diff --git a/double-conversion/cached-powers.cc b/double-conversion/cached-powers.cc
index 780f527..6f771e9 100644
--- a/double-conversion/cached-powers.cc
+++ b/double-conversion/cached-powers.cc
@@ -25,9 +25,9 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-#include <stdarg.h>
-#include <limits.h>
-#include <math.h>
+#include <climits>
+#include <cmath>
+#include <cstdarg>
 
 #include <double-conversion/utils.h>
 
diff --git a/double-conversion/double-conversion.cc b/double-conversion/double-conversion.cc
index 0fa4cd2..a65fd4d 100644
--- a/double-conversion/double-conversion.cc
+++ b/double-conversion/double-conversion.cc
@@ -25,9 +25,9 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-#include <limits.h>
+#include <climits>
 #include <locale>
-#include <math.h>
+#include <cmath>
 
 #include <double-conversion/double-conversion.h>
 
@@ -417,13 +417,13 @@
 
 namespace {
 
-static inline char ToLower(char ch) {
+inline char ToLower(char ch) {
   static const std::ctype<char>& cType =
       std::use_facet<std::ctype<char> >(std::locale::classic());
   return cType.tolower(ch);
 }
 
-static inline char Pass(char ch) {
+inline char Pass(char ch) {
   return ch;
 }
 
@@ -458,12 +458,12 @@
 }
 
 // Consumes first character of the str is equal to ch
-static inline bool ConsumeFirstCharacter(char ch,
+inline bool ConsumeFirstCharacter(char ch,
                                          const char* str,
                                          bool case_insensibility) {
   return case_insensibility ? ToLower(ch) == str[0] : ch == str[0];
 }
-}
+}  // namespace
 
 // Maximum number of significant digits in decimal representation.
 // The longest possible double in decimal representation is
diff --git a/double-conversion/fixed-dtoa.cc b/double-conversion/fixed-dtoa.cc
index 5b6ca5a..8c111ac 100644
--- a/double-conversion/fixed-dtoa.cc
+++ b/double-conversion/fixed-dtoa.cc
@@ -25,7 +25,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-#include <math.h>
+#include <cmath>
 
 #include <double-conversion/fixed-dtoa.h>
 #include <double-conversion/ieee.h>
diff --git a/double-conversion/strtod.cc b/double-conversion/strtod.cc
index 50eacf0..3a59b69 100644
--- a/double-conversion/strtod.cc
+++ b/double-conversion/strtod.cc
@@ -25,13 +25,13 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-#include <stdarg.h>
-#include <limits.h>
+#include <climits>
+#include <cstdarg>
 
-#include <double-conversion/strtod.h>
 #include <double-conversion/bignum.h>
 #include <double-conversion/cached-powers.h>
 #include <double-conversion/ieee.h>
+#include <double-conversion/strtod.h>
 
 namespace double_conversion {
 
diff --git a/double-conversion/utils.h b/double-conversion/utils.h
index 2c745f3..04af875 100644
--- a/double-conversion/utils.h
+++ b/double-conversion/utils.h
@@ -28,10 +28,10 @@
 #ifndef DOUBLE_CONVERSION_UTILS_H_
 #define DOUBLE_CONVERSION_UTILS_H_
 
-#include <stdlib.h>
-#include <string.h>
+#include <cstdlib>
+#include <cstring>
 
-#include <assert.h>
+#include <cassert>
 #ifndef ASSERT
 #define ASSERT(condition)         \
     assert(condition);
