Long
====Compiler information====
$ g++ -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,java,f95,objc,ada,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --program-suffix=-4.0 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-java-awt=gtk-default --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.4.2-gcj-4.0-1.4.2.0/jre --enable-mpfr --disable-werror --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.0.3 20051201 (prerelease) (Debian 4.0.2-5)
====Code Begin====
#include <iostream>
using std::cout;
using std::endl;
#include <string>
using std::string;
#include <vector>
using std::vector;
#include <map>
using std::map;
class A{
public:
map<string, vector<string> > MapInA;
};
void f1( const map<string, A> &aaa ){
map<string, A>::const_iterator it = aaa.begin();
while( it != aaa.end() ){
if( it->second.MapInA.count( "ID" ) ){
cout << (*it).second.MapInA[ "ID" ][ 0 ] << endl;
}
it++;
}
}
void f2( const map<string, A> &aaa ){
map<string, A>::const_iterator it = aaa.begin();
map<string, vector<string> >::const_iterator it2;
while( it != aaa.end() ){
if( it->second.MapInA.count( "ID" ) ){
it2 = it->second.MapInA.find( "ID" );
cout << it2->second[ 0 ];
}
it++;
}
}
int main(){
A a;
a.MapInA[ "ID" ].push_back( "001" );
map<string, A> MapInMain;
typedef map<string, A>::value_type MapElement;
MapInMain.insert( MapElement( "key1", a ) );
f1( MapInMain );
f2( MapInMain );
}
====Code End====
====Errro Message====
$ g++ map.cpp
map.cpp: In function 'void f1(const std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, A, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, A> > >&)':
map.cpp:21: error: passing 'const std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > > >' as 'this' argument of '_Tp& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const _Key&) [with _Key = std::basic_string<char, std::char_traits<char>, std::allocator<char> >, _Tp = std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, _Compare = std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, _Alloc = std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > >]' discards qualifiers
_______________________________________________ Help-gplusplus mailing list Help-gplusplus@gnu.org http://lists.gnu.org/mailman/listinfo/help-gplusplus