//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is dual licensed under the MIT and the University of Illinois Open // Source Licenses. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // // Check that std::map and it's iterators can be instantiated with an incomplete // type. #include struct A { typedef std::map Map; int data; Map m; Map::iterator it; Map::const_iterator cit; }; inline bool operator==(A const& L, A const& R) { return &L == &R; } inline bool operator<(A const& L, A const& R) { return L.data < R.data; } int main() { A a; }