155263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier//===----------------------------------------------------------------------===// 255263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier// 355263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier// The LLVM Compiler Infrastructure 455263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier// 555263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier// This file is dual licensed under the MIT and the University of Illinois Open 655263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier// Source Licenses. See LICENSE.TXT for details. 755263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier// 855263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier//===----------------------------------------------------------------------===// 955263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier 1055263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier// <map> 1155263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier 1216e2ba19dfffdcf9bba202eb8a27fd79e3d15303Stephan T. Lavavej// Check that std::map and its iterators can be instantiated with an incomplete 1355263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier// type. 1455263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier 1555263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier#include <map> 1655263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier 1755263484af32fca58300eb14107a36fc40c80ce1Eric Fiselierstruct A { 1855263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier typedef std::map<A, A> Map; 1955263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier int data; 2055263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier Map m; 2155263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier Map::iterator it; 2255263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier Map::const_iterator cit; 2355263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier}; 2455263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier 2555263484af32fca58300eb14107a36fc40c80ce1Eric Fiselierinline bool operator==(A const& L, A const& R) { return &L == &R; } 2655263484af32fca58300eb14107a36fc40c80ce1Eric Fiselierinline bool operator<(A const& L, A const& R) { return L.data < R.data; } 2755263484af32fca58300eb14107a36fc40c80ce1Eric Fiselierint main() { 2855263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier A a; 2955263484af32fca58300eb14107a36fc40c80ce1Eric Fiselier} 30