#ifndef CPR_TYPES_H
#define CPR_TYPES_H

#include <map>
#include <string>

namespace cpr {

    class CaseInsenstiveCompare {
      public:
        bool operator()(const std::string& a, const std::string& b) const;

      private:
        static void char_to_lower(char& c);
        static std::string to_lower(const std::string& a);
    };

    using Header = std::map<std::string, std::string, CaseInsenstiveCompare>;
    using Url = std::string;

}

#endif

#ifndef CPR_TYPES_H
#define CPR_TYPES_H

#include <map>
#include <string>

namespace cpr {

    class CaseInsenstiveCompare {
      public:
        bool operator()(const std::string& a, const std::string& b) const;

      private:
        static void char_to_lower(char& c);
        static std::string to_lower(const std::string& a);
    };

    typedef std::map<std::string, std::string, CaseInsenstiveCompare> Header;
    typedef std::string Url;

}

#endif

--- 
+++ 
@@ -15,8 +15,8 @@
         static std::string to_lower(const std::string& a);
     };
 
-    typedef std::map<std::string, std::string, CaseInsenstiveCompare> Header;
-    typedef std::string Url;
+    using Header = std::map<std::string, std::string, CaseInsenstiveCompare>;
+    using Url = std::string;
 
 }
 
Use C++11 `using` instead of `typedef`