Compiler projects using llvm
namespace std {
  template <typename, typename Container> struct normal_iterator {
    normal_iterator() {}

    template <typename I>
    normal_iterator(normal_iterator<I, typename Container::iterator>) {}
  };

  template <typename pointer> struct basic_string {
    typedef normal_iterator<pointer, basic_string> iterator;
  };

  typedef basic_string<wchar_t *> wstring;
}