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; }