The source program: #include #include #include const int values[] = { 1,2,3,4,5 }; const int NVALS = sizeof values / sizeof (int); int main() { using namespace std; typedef map valmap; valmap m; for (int i = 0; i < NVALS; i++) m.insert(make_pair(values[i], pow(values[i], .5))); valmap::iterator it = 100; // error valmap::iterator it2(100); // error m.insert(it); // error return 0; } First, an unfiltered run using the Comeau 4.3.0.1 compiler: d:\src\cl\demo>como rtmap.cpp Comeau C/C++ 4.3.0.1 (Aug 21 2002 15:45:32) for MS_WINDOWS_x86 Copyright 1988-2002 Comeau Computing. All rights reserved. MODE:non-strict warnings microsoft C++ "rtmap.cpp", line 19: error: no suitable constructor exists to convert from "int" to "std::_Rb_tree_iterator, std::allocator>::key_type, std::map, std::allocator>::value_type, std::_Select1st, std::allocator>::value_type>, std::map, std::allocator>::key_compare, std::allocator>::value_type, std::_Rb_tree, std::allocator>::key_type, std::map, std::allocator>::value_type, std::_Select1st, std::allocator>::value_type>, std::map, std::allocator>::key_compare, std::allocator>::reference, std::_Rb_tree, std::allocator>::key_type, std::map, std::allocator>::value_type, std::_Select1st, std::allocator>::value_type>, std::map, std::allocator>::key_compare, std::allocator>::pointer>" valmap::iterator it = 100; // error ^ "rtmap.cpp", line 20: error: no instance of constructor "std::_Rb_tree_iterator<_Value, _Ref, _Ptr>::_Rb_tree_iterator [with _Value=std::_Rb_tree, std::allocator>::key_type, std::map, std::allocator>::value_type, std::_Select1st, std::allocator>::value_type>, std::map, std::allocator>::key_compare, std::allocator>::value_type, _Ref=std::_Rb_tree, std::allocator>::key_type, std::map, std::allocator>::value_type, std::_Select1st, std::allocator>::value_type>, std::map, std::allocator>::key_compare, std::allocator>::reference, _Ptr=std::_Rb_tree, std::allocator>::key_type, std::map, std::allocator>::value_type, std::_Select1st, std::allocator>::value_type>, std::map, std::allocator>::key_compare, std::allocator>::pointer]" matches the argument list argument types are: (int) valmap::iterator it2(100); // error ^ "rtmap.cpp", line 21: error: no instance of overloaded function "std::map<_Key, _Tp, _Compare, _Alloc>::insert [with _Key=int, _Tp=double, _Compare=std::less, _Alloc=std::allocator]" matches the argument list argument types are: (std::map, std::allocator>::iterator) object type is: valmap m.insert(it); // error ^ 3 errors detected in the compilation of "rtmap.cpp". And a filtered run using como's --stlfilt option: d:\src\cl\demo>como --stlfilt rtmap.cpp Comeau C/C++ 4.3.0.1 (Aug 21 2002 15:45:32) for MS_WINDOWS_x86 Copyright 1988-2002 Comeau Computing. All rights reserved. BD Software STL Message Decryptor (Release 1.20 for Comeau C++) MODE:non-strict warnings microsoft C++ rtmap.cpp(19): error: no suitable constructor exists to convert from "int" to "map::iter" valmap::iterator it = 100; // error ^ rtmap.cpp(20): error: no instance of constructor "map::iter" matches the argument list argument types are: (int) valmap::iterator it2(100); // error ^ rtmap.cpp(21): error: no instance of overloaded function "map::insert" matches the argument list argument types are: (map::iter) object type is: valmap m.insert(it); // error ^ 3 errors detected in the compilation of "rtmap.cpp".