The source program: // // small.cpp: // A bad call to the insert() method of a multimap... // ...and the fun begins! // #include #include int main() { using namespace std; multimap mm; mm.insert(make_pair(string("Leor Zolman"), 42)); // OK mm.insert(0); // Not so OK return 0; } First, an unfiltered run using MSVC 6: d:\src\cl\demo>cl2 small.cpp Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved. small.cpp small.cpp(17) : error C2664: 'class std::_Tree,class std::allocator >,struct std::pair,class std::allocator > const ,int>,struct std::multimap,class std::allocator >,int,struct std::less,class std::allocator > >,class st d::allocator >::_Kfn,struct std::less,class std::allocator > >,class std::allocator > ::iterator __thiscall std::multimap,class std::allocator >,int,struct std::less,class std::allocator > >,class std::allocator >::insert(const struct std::pair,class std::allocator > const ,int> &)' : cannot convert parameter 1 from 'const int' to 'const struct std::pair,class std::allocator > c onst ,int> &' Reason: cannot convert from 'const int' to 'const struct std::pair,class std::allocator > const ,int>' No constructor could take the source type, or constructor overload resol ution was ambiguous And a filtered run with the MSVC6 Proxy CL: d:\src\cl\demo>cl small.cpp ****** {BD Software Proxy CL v2.29} STL Message Decryption is ON! ****** Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86 Copyright (C) Microsoft Corp 1984-1998. All rights reserved. small.cpp small.cpp(17): error C2664: 'multimap::iter multimap:: insert(const pair &)': cannot convert parameter 1 from 'const int' to 'const pair &' Reason: cannot convert from 'const int' to 'const pair' No constructor could take the source type, or constructor overload resolution was ambiguous [Note: demo runs were performed in an 80-column console window with STLFilt's intelligent line wrapping enabled. Wider consoles yield even better results]