How in the world could the STL precompile for a list of pointers to maps, eahc of which uses an unsigned int for a key value and a pointer to a deque of unsigned longs as the target value? To wit:

\ntypedef list<(map<uint32_t, deque<uint32_t> * >)*>\n


I think you'll agree that that permutation isn't likely to occur as a "standard" one. Yet that would have to be one of them if they have predefined the list code, because the erase() method of a list (for instance) is not in the header.

As far as being dead sure, well...as you are most probably aware, the authors of every STL I've ever seen the headers for are the anti-Dickens of the coding world (i.e. they get paid in inverse proportion to the number of keystrokes used)...It's just plain gawd-awful. I'd summarily fire any programmer who wrote code like that in my shop! Nonetheless, grep is my friend and so searching the entire file for the names of functions that are in the interface, it will occasionally find ones that are not defined. For example, this member function declaration taken from stl_list.h:

\n      iterator\n      erase(iterator __position);\n\n


erase is a function taking an iterator and returning an iterator. But no code...just a declaration.
template<typename _Tp, typename _Alloc = allocator<_Tp> > iterator list<_Tp, _Alloc>::erase (iterator __position) would have to be defined elsewhere, for specific types of both _Tp and _Alloc, or the linker wouldn't find it.